ITの教科書検索
入門読了 約9分

グリッドコンピューティングとは ― HPCとの違い

多くのコンピュータに計算を分けて配り、1台のように使うのがグリッドコンピューティング。台数を増やすほど速くなるとは限らない理由と、クラスタ・HPCとの違いを図で。

目次
  1. グリッドコンピューティングとは
  2. 分けて配り、結果を集める流れ
  3. 何台に分けると速いか
  4. 密結合と疎結合の違い
  5. クラスタとの違い
  6. HPCとの関係
  7. ボランティアコンピューティング
  8. クラウド・P2Pとの違い
  9. 練習問題

グリッドコンピューティングとは、多くのコンピュータを1台のように使う方式

気候のモデル化や加速器の実験データの解析には、1台のコンピュータでは時間がかかりすぎる計算があります。こうした計算を、ネットワークでつないだ多くのコンピュータに分けて配る方式がグリッドコンピューティングです。多くの台数で同時に進め、1台の大きなコンピュータのように使って早く終わらせます。

グリッドは英語のgridで、ここでは送電網のことです。電気をコンセントから使うように、計算の力を必要な時に使えるようにする考え方から名付けられました。結ぶコンピュータは、多くの場合、大学や研究所など別々の組織が持つものです。

グリッドコンピューティングの仕組みは、分けて配り、結果を集めること

グリッドコンピューティングの計算は、4つの段階で進みます。

  1. 大きな計算を、互いに関係の少ない小さな仕事に分けます。
  2. 小さな仕事を、離れた場所にあるコンピュータに1つずつ配ります。
  3. それぞれのコンピュータが、受け取った仕事を同時に計算します。
  4. 返ってきた結果を1か所でまとめ、元の計算の答えにします。
分ける配る計算する結果を返す大きな計算仕事1計算機A仕事2計算機B仕事3計算機C仕事4計算機D結果をまとめる分ける配る結果を返す大きな計算仕事1計算機A仕事2計算機B仕事3計算機C仕事4計算機D結果をまとめる
大きな計算を小さな仕事に分け、離れた場所にある計算機に1つずつ配ります。計算機は同時に計算し、結果を返します。

後の節で説明するBOINCという仕組みでは、配る仕事の単位をワークユニットと呼びます。参加するコンピュータは、まとめ役のサーバに終わった仕事を報告し、次の仕事を受け取ります。

台数を増やすほど速くなるとは限らない

台数を増やすと、1台あたりの計算の時間は減ります。一方で、仕事を配って結果を集める手間は、台数に応じて増えます。次の図で台数を選び、2つの時間と合計を比べます。

何台に分けるかを選ぶと、かかる時間が変わります。数値は仕組みを見せるための仮の例です。
分ける台数
計算の時間
640分
配って集める時間
0分
合計
640分
1台で全部を計算します。配る手間はありませんが、計算に640分かかります。
前提:1台なら640分かかる計算を同じ大きさに分けます。仕事を送って結果を受け取るのに、1台あたり5分かかります(1台で計算するときは配らないので0分)。

この例で選べる台数の中では、8台と16台のときに合計が最も短い120分になります。それより増やすと長くなります。台数を増やして速くなるのは、配って集める手間より、減る計算の時間が大きいうちだけです。台数を増やして処理を速くする考え方は、スケールアウトにも通じます。

密結合と疎結合の違いは、主記憶を共有するかどうか

複数のプロセッサ(CPU)で処理するシステムを、マルチプロセッサシステムと呼びます。マルチプロセッサシステムは、プロセッサどうしのつながり方で2つに分かれます。

密結合マルチプロセッサシステムでは、複数のプロセッサが1つの主記憶(メモリ)を共有し、1つのOSで制御されます。仕事はどのプロセッサでも実行できるため、細かい単位で負荷を分けられます。

疎結合マルチプロセッサシステムは、主記憶を共有しないつながり方です。プロセッサごとに主記憶を持ち、プロセッサどうしはネットワークなどでつながります。グリッドコンピューティングは、主記憶を共有しない疎結合のつながり方です。

グリッドとクラスタの違いは、管理する組織が1つか複数か

クラスタとは、複数のコンピュータをつなぎ、外から1つのシステムのように見せる構成です。クラスタもグリッドも、1台ごとに主記憶を持ち、主記憶を共有しない点は同じです。違うのは、まとめて管理する組織が1つか、複数にまたがるかです。

グリッドの研究者Ian Fosterは、グリッドを見分ける3つの条件を示しました。1つ目は、中央でまとめて管理されていない資源を協調させることです。1つの組織の中だけで管理する仕組みは、この条件ではグリッドではなく、局所の管理システムです。

密結合マルチプロセッサ・クラスタ・グリッドの違い
観点密結合マルチプロセッサクラスタグリッド
主記憶複数のプロセッサで共有する1台ごとに持つ1台ごとに持つ
結ぶ範囲1台のコンピュータの中1つの組織の中複数の組織にまたがる

ただし、この区別はいつも守られているわけではありません。FosterとKesselmanは、多くのクラスタ製品がグリッド製品と名乗るようになったと振り返っています。3つの条件をすべて満たすシステムは今は無いとも書き、定義が厳しすぎるのかもしれないと認めています。

クラスタやロードシェアリングで止まらない構成を作る方法は、デュアルシステムとデュプレックスシステムの記事で説明しています。

HPCとは、高精度な計算を速く行うための使い方

HPCとは、高精度な計算を速く行う必要がある分野で、計算の速さを追うコンピュータの使い方です。正式名はHigh Performance Computingで、ハイパフォーマンスコンピューティングと読みます。HPCを支える方法の1つが、大規模並列です。

大規模並列とは、とても多くのプロセッサに計算を分けて、同時に進めることです。スーパーコンピュータ「富岳」は、CPU1つを1ノードとして、158,976ノードを持ちます。ノードどうしは、Tofuインターコネクト Dと呼ぶ専用のネットワークでつながっています。

HPCは目的の名前で、グリッドはその目的をかなえる方式の1つです。FosterとKesselmanによれば、計算のグリッドが結ぶのは、多くがスーパーコンピュータやクラスタです。大型加速器LHCの実験データを解析するため、数百の拠点の計算機を結んだLHC Computing Gridがその例です。

家庭のPCを持ち寄るボランティアコンピューティング

一般の人が自分のPCの空いた時間を出し合い、科学の計算を進める方式があります。この方式をボランティアコンピューティングと呼びます。カリフォルニア大学バークレー校のBOINCは、その仕組みを動かすためのソフトウェアです。

BOINCのアプリは、科学計算の仕事を受け取り、PCの裏で計算します。公式サイトによれば、約30の科学のプロジェクトがBOINCを使っています。病気の研究や気候変動の研究、パルサーの発見などに使われています。

参加するPCは、電源が切られることも、誤った結果を返すこともあります。そこでBOINCは、同じ仕事を別々の参加者に配り、返ってきた結果を比べて正しい結果を選べます。BOINCの論文は、こうした点を挙げて、組織の持つ計算機を結ぶグリッドとは分けて扱っています。

一方、FosterとKesselmanは、これをデスクトップグリッドの一種として紹介しています。ボランティアコンピューティングをグリッドに含めるかどうかは、資料によって分かれます。

グリッドとクラウド・P2Pの違い

クラウドコンピューティングも、多くのコンピュータを必要な時に使える点はグリッドと似ています。FosterとKesselmanは、Amazon Web Servicesのようなクラウドは多くの資源を協調させるが、管理の範囲をまたがないと書いています。この見方では、管理の範囲をまたいで別々の組織の資源を結ぶかどうかが、クラウドとグリッドの違いです。

P2Pとの関係も、言葉の上では重なります。ボランティアコンピューティングは、peer-to-peerコンピューティングと呼ばれたこともあります。ただしBOINCでは、まとめ役のサーバが仕事を配ります。端末どうしが対等にデータを送り合うP2Pの構成とは、ここが違います。

参考にした資料

練習問題(全4問)

Q1グリッドコンピューティングの説明として、最も適切なものはどれ?
Q2密結合マルチプロセッサシステムの特徴として、正しいものはどれ?
Q3台数を増やして計算を分けたとき、合計の時間が短くならなくなる理由として、最も適切なものはどれ?
Q4HPC(ハイパフォーマンスコンピューティング)の説明として、最も適切なものはどれ?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

クラウドの記事を続けて読む

クラウド 全36本中24本目