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