グリッドコンピューティングとは ― HPCとの違い
多くの
グリッドコンピューティングとは、多くのコンピュータを1台のように使う方式
気候のモデル化や加速器の実験データの解析には、1台のコンピュータでは時間がかかりすぎる計算があります。こうした計算を、ネットワークでつないだ多くのコンピュータに分けて配る方式がグリッドコンピューティングです。多くの台数で同時に進め、1台の大きなコンピュータのように使って早く終わらせます。
グリッドは英語のgridで、ここでは送電網のことです。電気をコンセントから使うように、計算の力を必要な時に使えるようにする考え方から名付けられました。結ぶコンピュータは、多くの場合、大学や研究所など別々の組織が持つものです。
グリッドコンピューティングの仕組みは、分けて配り、結果を集めること
グリッドコンピューティングの計算は、4つの段階で進みます。
- 大きな計算を、互いに関係の少ない小さな仕事に分けます。
- 小さな仕事を、離れた場所にあるコンピュータに1つずつ配ります。
- それぞれのコンピュータが、受け取った仕事を同時に計算します。
- 返ってきた結果を1か所でまとめ、元の計算の答えにします。
後の節で説明するBOINCという仕組みでは、配る仕事の単位をワークユニットと呼びます。参加するコンピュータは、まとめ役のサーバに終わった仕事を報告し、次の仕事を受け取ります。
台数を増やすほど速くなるとは限らない
台数を増やすと、1台あたりの計算の時間は減ります。一方で、仕事を配って結果を集める手間は、台数に応じて増えます。次の図で台数を選び、2つの時間と合計を比べます。
- 計算の
時間 - 640分
- 配って
集める 時間 - 0分
- 合計
- 640分
- 計算の
時間 - 320分
- 配って
集める 時間 - 10分
- 合計
- 330分
- 計算の
時間 - 160分
- 配って
集める 時間 - 20分
- 合計
- 180分
- 計算の
時間 - 80分
- 配って
集める 時間 - 40分
- 合計
- 120分
- 計算の
時間 - 40分
- 配って
集める 時間 - 80分
- 合計
- 120分
- 計算の
時間 - 20分
- 配って
集める 時間 - 160分
- 合計
- 180分
- 計算の
時間 - 10分
- 配って
集める 時間 - 320分
- 合計
- 330分
この例で選べる台数の中では、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の構成とは、ここが違います。
参考にした資料
- Ian Foster, Carl Kesselman「The History of the Grid」(2章のグリッドの3つの条件・クラスタとの区別・デスクトップグリッド、9章の製品の呼び方)
- David P. Anderson「BOINC: A System for Public-Resource Computing and Storage」(1章・1.1節のグリッドとの違い、3.1節・3.2節の仕事の配り方)
- BOINC 公式サイト
- 理化学研究所 計算科学研究センター「システム紹介」(富岳のノード数とネットワーク)
練習問題(全4問)
正解:ネットワークで
グリッドコンピューティングは、
正解:複数の
密結合では、
正解:仕事を
台数を
正解:高精度な
HPCは、
選んでから「採点する」を押すと、解説つきで答え合わせができます。