グリッドコンピューティングとは、広く分散されたコンピュータ資源を使用して共通の目標を達成することです。コンピューティンググリッドは、多数のファイルを含む非対話型ワークロードを持つ分散システムと考えることができます。グリッドコンピューティングは、クラスタコンピューティングなどの従来の高性能コンピューティングシステムとは異なり、グリッドコンピュータの各ノードが異なるタスク/アプリケーションを実行するように設定されています。また、グリッドコンピュータは、クラスタコンピュータよりも異質で地理的に分散している傾向があります(つまり、物理的に結合されていません)。[ 1 ]単一のグリッドを特定のアプリケーションに専用することもできますが、一般的には、グリッドはさまざまな目的で使用されます。グリッドは、汎用グリッドミドルウェアソフトウェアライブラリを使用して構築されることがよくあります。グリッドのサイズは非常に大きくなる可能性があります。[ 2 ]
グリッドは、多数のネットワーク接続された疎結合コンピュータが連携して大規模なタスクを実行する分散コンピューティングの一形態です。特定のアプリケーションでは、分散コンピューティングまたはグリッドコンピューティングは、イーサネットなどの従来のネットワークインターフェースによってコンピュータネットワーク(プライベートまたはパブリック)に接続された完全なコンピュータ(オンボードCPU、ストレージ、電源、ネットワークインターフェースなど)に依存する特殊なタイプの並列コンピューティングと見なすことができます。これは、ローカルの高速コンピュータバスによって接続された多数のプロセッサを持つ従来のスーパーコンピュータの概念とは対照的です。この技術は、ボランティアコンピューティングを通じて計算集約型の科学、数学、学術の問題に適用されており、創薬、経済予測、地震解析、電子商取引やWebサービスをサポートするバックオフィスデータ処理など、さまざまなアプリケーションで商業企業で使用されています。
グリッドコンピューティングは、複数の管理ドメインのコンピュータを組み合わせて共通の目標を達成し、単一のタスクを解決し、その後すぐに消滅する可能性があります。 [ 3 ]グリッドの規模は、たとえば企業内のコンピュータワークステーションのネットワークに限定された小規模なものから、多くの企業やネットワークにまたがる大規模な公開コラボレーションまで様々です。「限定されたグリッドの概念はノード内協力とも呼ばれ、より大きく広いグリッドの概念はノード間協力を指す場合があります。」[ 4 ]
グリッド上でアプリケーションを調整することは、特に分散コンピューティングリソース間で情報フローを調整する場合、複雑な作業となる可能性があります。グリッドワークフローシステムは、グリッド環境において一連の計算処理やデータ操作の手順、すなわちワークフローを構成および実行するために特別に設計されたワークフロー管理システムの特殊な形態として開発されました。
一般的に「分散」または「グリッド」コンピューティングは、CPU、ストレージ、電源、ネットワークインターフェースなどを搭載した完全なコンピュータを、従来のネットワークインターフェースを介してネットワーク(プライベート、パブリック、またはインターネット)に接続し、汎用ハードウェアを生成する特殊なタイプの並列コンピューティングです。これは、少数のカスタムスーパーコンピュータを設計および構築する効率の低さと比較したものです。主なパフォーマンス上の欠点は、さまざまなプロセッサとローカルストレージ領域が高速接続されていないことです。したがって、この構成は、プロセッサ間で中間結果を通信する必要なく、複数の並列計算を独立して実行できるアプリケーションに適しています。[ 5 ]地理的に分散したグリッドのハイエンドのスケーラビリティは、一般的に、パブリックインターネットの容量に比べてノード間の接続の必要性が低いため、好ましいです。 [ 6 ]
スーパーコンピュータ向けプログラミングとグリッドコンピューティングシステム向けプログラミングには、いくつかの違いがあります。スーパーコンピュータの環境で動作するプログラムを作成するのは、コストがかかり、困難な場合があります。スーパーコンピュータは独自のオペレーティングシステムを使用している場合があり、プログラムが並行処理の問題に対処する必要があるからです。問題が適切に並列化できる場合、「グリッド」インフラストラクチャの「薄い」レイヤーによって、同じ問題の異なる部分を与えられた従来のスタンドアロンプログラムを複数のマシンで実行できます。これにより、単一の従来のマシンでプログラムの作成とデバッグが可能になり、同じプログラムの複数のインスタンスが同じ共有メモリとストレージスペースで同時に実行されることによる複雑さを解消できます。
分散型グリッドの特徴の一つは、1つまたは複数の個人や組織(複数の管理ドメインと呼ばれる)に属するコンピューティングリソースから構成できることである。これは、ユーティリティコンピューティングのように商業取引を円滑にしたり、ボランティアによるコンピューティングネットワークの構築を容易にしたりするのに役立つ。
この機能の欠点の1つは、実際に計算を実行するコンピュータが完全に信頼できるとは限らないことです。そのため、システムの設計者は、誤動作や悪意のある参加者が誤った、誤解を招く、または誤った結果を生成したり、システムを攻撃ベクトルとして利用したりすることを防ぐための対策を講じる必要があります。これには多くの場合、異なるノード(おそらく異なる所有者)にランダムに作業を割り当て、特定の作業単位に対して少なくとも2つの異なるノードが同じ結果を報告することを確認することが含まれます。不一致があれば、誤動作しているノードや悪意のあるノードを特定できます。しかし、ハードウェアに対する中央制御がないため、ノードがランダムなタイミングでネットワークから切断されないことを保証する方法はありません。一部のノード(ラップトップやダイヤルアップインターネットのユーザーなど)は、予測不可能な期間、計算は可能でもネットワーク通信はできない場合があります。これらの変動は、大きな作業単位を割り当てる(これにより、継続的なネットワーク接続の必要性を減らす)ことと、特定のノードが期待される時間内に結果を報告しない場合に作業単位を再割り当てすることによって対応できます。
グリッドコンピューティングの初期には、グリッド開発者が自分たちのイノベーションを高性能コンピューティングという本来の分野を超えて、高エネルギー物理学のような新しい分野へと学際的な境界を越えて展開しようとする目標に関連して、社会的適合性の問題とも言える別の問題が生じた。[ 7 ]
信頼性と可用性がパフォーマンスと開発難易度に与える影響は、専用クラスタ、開発組織内の遊休マシン、またはボランティアや請負業者からなるオープンな外部ネットワークのいずれにデプロイするかという選択に影響を与える可能性があります。多くの場合、参加ノードは、中央システムが他のプログラムの動作を妨害したり、保存されている情報を改ざんしたり、プライベートデータを送信したり、新たなセキュリティホールを作成したりすることによって、付与されたアクセス権を悪用しないことを信頼する必要があります。他のシステムでは、アプリケーションを仮想マシンに配置するなど、「クライアント」ノードが中央システムに抱く信頼の量を減らすための対策を採用しています。
公共システムや複数の管理領域(同一組織内の異なる部門を含む)にまたがるシステムでは、異なるオペレーティングシステムやハードウェアアーキテクチャを使用する異種システム上で実行する必要が生じることがよくあります。多くの言語では、ソフトウェア開発への投資とサポート可能なプラットフォームの数(ひいては結果として得られるネットワークの規模)の間にはトレードオフが存在します。クロスプラットフォーム言語は、このトレードオフの必要性を軽減できますが、実行時解釈や特定のプラットフォームへの最適化の欠如により、特定のノードでの高いパフォーマンスを犠牲にする可能性があります。さまざまなミドルウェアプロジェクトは、さまざまな科学プロジェクトや商業プロジェクトが特定の関連グリッドを利用したり、新しいグリッドを構築したりできるように、汎用的なインフラストラクチャを作成してきました。BOINC は、一般のボランティアを募集するさまざまな学術プロジェクトでよく利用されているものです。その他のプロジェクトについては、記事の最後に記載されています。
実際、ミドルウェアはハードウェアとソフトウェアの間のレイヤーと見なすことができます。ミドルウェアの上には、考慮すべき多くの技術分野があり、これらはミドルウェアに依存しない場合もあれば、依存する場合もあります。例としては、SLA管理、信頼性とセキュリティ、仮想組織管理、ライセンス管理、ポータル、データ管理などが挙げられます。これらの技術分野は商用ソリューションで対応できる場合もありますが、各分野の最先端技術は、その分野を研究する特定のプロジェクトの中に見出されることが多いです。
グリッドコンピューティング市場のセグメンテーションにおいては、プロバイダー側とユーザー側の2つの視点を考慮する必要がある。
グリッド市場全体は、いくつかの特定の市場から構成されています。それらは、グリッドミドルウェア市場、グリッド対応アプリケーション市場、ユーティリティコンピューティング市場、およびサービスとしてのソフトウェア(SaaS)市場です。
グリッドミドルウェアは、異種リソースや仮想組織の共有を可能にする特定のソフトウェア製品です。これは、関係する企業または複数の企業の既存のインフラストラクチャにインストールおよび統合され、異種インフラストラクチャと特定のユーザーアプリケーションの間に特別なレイヤーを提供します。主要なグリッドミドルウェアには、Globus Toolkit、gLite、およびUNICOREがあります。
ユーティリティコンピューティングとは、オープングリッドユーティリティとして、あるいは特定の組織や仮想組織(VO)向けのホスティングソリューションとして、グリッドコンピューティングとアプリケーションをサービスとして提供することを指します。ユーティリティコンピューティング市場の主要プレーヤーは、サン・マイクロシステムズ、IBM、HPです。
グリッド対応アプリケーションとは、グリッドインフラストラクチャを利用できる特定のソフトウェアアプリケーションのことです。これは、前述のように、グリッドミドルウェアを使用することで可能になります。
サービスとしてのソフトウェア(SaaS)とは、「1つまたは複数のプロバイダーによってリモートで所有、提供、管理されるソフトウェア」です(Gartner 2007)。さらに、SaaSアプリケーションは、共通のコードとデータ定義の単一のセットに基づいています。これらは1対多のモデルで利用され、SaaSは従量課金(PAYG)モデルまたは使用量に基づくサブスクリプションモデルを使用します。SaaSプロバイダーは、SaaSを実行するために必要なコンピューティングリソースを必ずしも所有しているわけではありません。そのため、SaaSプロバイダーはユーティリティコンピューティング市場を利用する場合があります。ユーティリティコンピューティング市場は、SaaSプロバイダーにコンピューティングリソースを提供します。
グリッドコンピューティング市場の需要側またはユーザー側の企業にとって、異なるセグメントはIT導入戦略に大きな影響を与えます。IT導入戦略とIT投資の種類は、潜在的なグリッドユーザーにとって重要な要素であり、グリッドの普及において重要な役割を果たします。
CPUスカベンジング、サイクルスカベンジング、または共有コンピューティングは、参加者ネットワーク(世界規模または組織内部)内のアイドル状態のリソースから「グリッド」を作成します。通常、この手法は、夜間、昼休み、あるいは現代のデスクトップCPUが一日を通して経験する(比較的に微々たるものの、数多く存在する)アイドル状態の待機時間(コンピュータがユーザー、ネットワーク、またはストレージからのI/Oを待っている時間)など、断続的な非活動状態から生じる「余剰」命令サイクルを活用します。実際には、参加コンピュータは、生のCPUパワーに加えて、ディスクストレージ容量、RAM、およびネットワーク帯域幅も一定量提供します。
BOINCなどの多くのボランティアコンピューティングプロジェクトは、 CPUスカベンジングモデルを採用しています。ノードは、所有者が本来の目的でリソースを使用する際に、時折「オフライン」になる可能性があるため、このモデルはそのような事態に対応できるように設計する必要があります。
機会主義的な環境の構築は、CPU スカベンジングのもう 1 つの実装であり、特別なワークロード管理システムがアイドル状態のデスクトップ コンピュータを計算負荷の高いジョブに利用します。これは、エンタープライズ デスクトップ グリッド (EDG) とも呼ばれます。たとえば、HTCondor [ 8 ] (計算負荷の高いタスクの粗粒度分散合理化のためのオープンソースの高スループット コンピューティング ソフトウェア フレームワーク) は、キーボードとマウスがアイドル状態のデスクトップ マシンのみを使用するように構成でき、アイドル状態のデスクトップ ワークステーションから無駄になっている CPU パワーを効果的に活用できます。他のフル機能のバッチ システムと同様に、HTCondor はジョブ キューイング メカニズム、スケジューリング ポリシー、優先度スキーム、リソース モニタリング、およびリソース管理を提供します。専用のコンピュータ クラスタ上のワークロードを管理するためにも使用できます。また、専用リソース (ラック マウント クラスタ) と非専用デスクトップ マシン (サイクル スカベンジング) の両方を 1 つのコンピューティング 環境にシームレスに統合することもできます。
グリッドコンピューティングという用語は、1990年代初頭に、コンピュータの処理能力を電力網のように簡単に利用できるようにするための比喩として生まれました。アクセスしやすいコンピューティングのための電力網の比喩は、イアン・フォスターとカール・ケッセルマンが画期的な著作「グリッド:新しいコンピューティングインフラストラクチャの設計図」(1999年)を出版したことで、すぐに定説となりました。これに先立つ数十年間は、公益事業としてのコンピューティング(1961年)という比喩がありました。これは、電話システムに類似した公共事業としてのコンピューティングです。[ 9 ] [ 10 ]
CPUスカベンジングとボランティアコンピューティングは、CPU負荷の高い研究課題を解決するために、世界中のネットワーク化されたPCのパワーを活用する目的で、 1997年にdistributed.netによって、そして後に1999年にSETI@homeによって普及しました。[ 11 ] [ 12 ]
グリッドの概念(分散コンピューティング、オブジェクト指向プログラミング、Web サービスからのものを含む)は、シカゴ大学のイアン・フォスターとスティーブ・トゥッケ、および南カリフォルニア大学情報科学研究所のカール・ケッセルマンによってまとめられました。[ 13 ] Globus Toolkit の作成を主導したこの 3 人は、「グリッドの父」として広く知られています。[ 14 ] このツールキットには、計算管理だけでなく、ストレージ管理、セキュリティプロビジョニング、データ移動、監視、および合意交渉、通知メカニズム、トリガーサービス、情報集約など、同じインフラストラクチャに基づいて追加サービスを開発するためのツールキットも含まれています。[ 15 ] Globus Toolkit はグリッドソリューションを構築するための事実上の標準であり続けていますが、エンタープライズグリッドやグローバルグリッドを作成するために必要なサービスのサブセットに対応する他のツールも多数構築されています。
2007年にクラウドコンピューティングという用語が普及しましたが、これは概念的には、フォスターによるグリッドコンピューティングの標準的な定義(電力網から電力が供給されるようにコンピューティングリソースが消費されるという点)や、それ以前のユーティリティコンピューティングと類似しています。
2006年11月、エドワード・セイデルはフロリダ州タンパで開催されたスーパーコンピューティング会議でシドニー・ファーンバック賞を受賞しました。[ 16 ]「物理学における複雑な問題、特にブラックホールの衝突のモデリングを共同で数値的に調査できるようにするためのHPCおよびグリッドコンピューティング用ソフトウェアの開発への卓越した貢献に対して」[ 17 ]この賞はコンピューティングにおける最高の栄誉の1つであり、数値相対性理論における彼の業績に対して授与されました。
また、2019年3月時点で、ビットコインネットワークの計算能力は80,000エクサFLOPS(1秒あたりの浮動小数点演算)以上と測定されています。[ 25 ]この測定値は、ビットコインネットワークの一般的な浮動小数点演算能力ではなく、ビットコインネットワークのハッシュ出力に等しくなるために必要なFLOPSの数を反映しています。これは、ビットコインネットワークの要素(ビットコインマイニングASIC )が、ビットコインプロトコルで必要とされる特定の暗号ハッシュ計算のみを実行するためです。
グリッドコンピューティングは、タンパク質の折り畳み、金融モデリング、地震シミュレーション、気候/気象モデリングなどのグランドチャレンジ問題を解決する方法を提供し、CERNの大型ハドロン衝突型加速器を実現する上で不可欠な役割を果たしました。 [ 26 ]グリッドは、組織内で情報技術リソースを最適に利用する方法を提供します。また、商業および非商業のクライアントに情報技術をユーティリティとして提供する手段も提供し、クライアントは電気や水道のように、使用した分だけ料金を支払います。
2016年10月現在、オープンソースのBerkeley Open Infrastructure for Network Computing (BOINC)プラットフォームを実行している400万台以上のマシンがWorld Community Gridのメンバーです。[ 19 ] BOINCを使用しているプロジェクトの1つにSETI@homeがあり、 2016年10月現在、40万台以上のコンピュータを使用して0.828 TFLOPSを達成しています。BOINCの一部ではないFolding@homeは、2016年10月現在、11万台以上のマシンで101 x86相当のペタフロップス以上を達成しています。[ 18 ]
欧州連合は、欧州委員会の枠組みプログラムを通じてプロジェクトに資金を提供しました。BEinGRID (Business Experiments in Grid)は、欧州委員会[27]が第6次枠組みプログラム(FP6)スポンサーシッププログラムの下で統合プロジェクトとして資金提供した研究プロジェクトでした。2006年6月1日に開始されたこのプロジェクトは、2009年11月までの42か月間実施されました。このプロジェクトはAtos Originによって調整されました。プロジェクトのファクトシートによると、彼らの使命は「EU全体でグリッドコンピューティングの採用を促進するための効果的な方法を確立し、グリッド技術を使用した革新的なビジネスモデルの研究を刺激すること」です。実験的な実装からベストプラクティスと共通のテーマを抽出するために、2つのコンサルタントグループが、1つは技術、もう1つはビジネスのパイロットの一連の分析を行っています。このプロジェクトは、その長期性だけでなく、2,480万ユーロというFP6統合プロジェクトの中で最大の予算規模でも重要です。このうち1,570万ユーロは欧州委員会から提供され、残りは98の貢献パートナー企業から提供されています。プロジェクト終了後、BEinGRIDの成果はIT-Tude.comによって引き継がれ、さらに発展させられています。
欧州連合を拠点とし、アジアと米国のサイトも含まれるEnabling Grids for E-sciencE プロジェクトは、 European DataGrid (EDG) の後継プロジェクトであり、 European Grid Infrastructureへと発展しました。これは、 Worldwide LHC Computing Grid [ 28 ] (WLCG)とともに、 CERN の大型ハドロン衝突型加速器を使用した実験をサポートするために開発されました。WLCG に参加しているアクティブなサイトのリストはオンラインで確認できます[ 29 ]。EGEE インフラストラクチャのリアルタイム監視も同様です[ 30 ] 。関連するソフトウェアとドキュメントも公開されています[ 31 ] 。CERNが WLCG のデータ集約的なニーズに対応するために設置したような専用の光ファイバーリンクが、いずれ家庭のユーザーにも利用可能になり、従来のブロードバンド接続よりも最大 10,000 倍速い速度でインターネット サービスが提供される可能性があるという憶測があります。[ 32 ]欧州グリッドインフラストラクチャは、腫瘍臨床試験のシミュレーションなど、他の研究活動や実験にも使用されています。[ 33 ]
distributed.netプロジェクトは1997年に開始されました。NASAの先進スーパーコンピューティング施設(NAS)は、約350台のSun MicrosystemsおよびSGIワークステーション上で動作するCondorサイクルスカベンジャーを使用して遺伝的アルゴリズムを実行しました。
2001年、ユナイテッド・デバイセズは、インターネットに接続されたボランティアのPC上でサイクルスカベンジングを行う同社のGrid MP製品をベースにしたユナイテッド・デバイセズがん研究プロジェクトを運営した。このプロジェクトは、2007年に終了するまでに約310万台のマシンで稼働した。[ 34 ]
最近のイノベーションでは、ブロックチェーン技術とグリッドコンピューティングの原理の統合が検討されています。たとえば、オーストラリア特許AU2024203136 [ 36 ]で詳細が説明されているVirtEngine [ 35 ]システムは、分散コンピューティングネットワークと、識別、認証、およびリソース管理のためのプルーフ・オブ・ステークのブロックチェーンベースのフレームワークを組み合わせた分散型モデルを提案しています。このアプローチは、消費者とプロバイダーベースのコンピューティングリソースを利用してグローバルに分散されたグリッドコンピューティングネットワークを稼働させ、分散型クラウドマーケットプレイスと分散型スーパーコンピュータを管理する自律システムを作成することを目指しています。
現在、グリッドコンピューティングには多くの定義が存在する。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)