グリッドコンピューティング
ネットワーク上の複数の計算機などの資源を連携させ、処理を分散して大きな仕事を行う仕組み。異なる場所や管理主体にある資源を、利用条件に従って共有することも想定する。
イマシルちゃんの解説
一人では数え切れない資料を、いろいろな場所にいる人で手分けするとするよ。
仕事を小分けにし、終わった分を集めれば、大きな作業を進められるね。
ただ、得意な作業や空いている時間は、人によって違うよ。
誰に何を頼めるかと、途中で抜けた人の分をどうするかも決めておくんだ。
より深い解説
資源を連携させる
計算機、記憶領域、データなどをネットワーク越しに利用し、一つの目的へ協調させる。多数の端末の空き時間を活用する構成や、複数の研究機関が資源を持ち寄る構成などがある。
すべてが同じ型の計算機とは限らない。性能、OS、設置場所、利用権限の違う異種資源を、条件をそろえて利用できるようにする点が課題となる。
仕事を進める流れ
| 段階 | 行うこと |
|---|---|
| 分割 | 大きな仕事を実行可能な単位にする |
| 資源の把握 | 利用できる計算機、負荷、データの場所を調べる |
| スケジューリング | どの資源へ、いつ仕事を割り当てるか決める |
| 実行 | 必要なデータを渡し、処理する |
| 集約 | 部分的な結果を集めて全体をまとめる |
資源の認証、アクセス権、失敗時の再実行も必要になる。計算機をつなぐだけで、一つのプログラムが自動的に速くなるわけではない。
向いている処理
独自の例として、1,200個の独立した解析を、同じ速度の12台へ均等に割り当てるとする。1個が1分なら、通信や準備を無視した各台の担当は100個で、計算時間は100分となる。
実際にはデータ転送や集約の時間が加わり、性能差や障害もある。理想値のように台数へ比例して速くなるとは限らない。
| 処理の性質 | 適性を左右する点 |
|---|---|
| 独立した多数の解析 | 比較的分割しやすい |
| 巨大データの繰返し転送 | 通信時間が支配的になり得る |
| 頻繁な同期が必要な計算 | 遅い資源を待つ影響が大きい |
ほかの並列化との違い
| 用語 | 着目するもの |
|---|---|
| マルチプロセッサ | 複数のプロセッサを利用する構成 |
| クラスタ | 複数の計算機を協調させる構成。比較的統一した管理下に置く例が多い |
| グリッド | 分散した資源を利用条件に従って連携させる考え方 |
| クラウド | 必要な資源をサービスとして利用する提供形態 |
これらの分類は常に排他的ではない。グリッドの資源としてクラスタやクラウドの計算機を使う場合もある。
CPU内部で複数のスレッドを実行する仕組みとは、並列化する場所や管理の単位が異なる。
運用と安全性
管理主体をまたぐ場合、誰がどの資源を利用できるかという認可や、使用量の把握が必要になる。秘密のデータを、条件を確認せず外部の資源へ渡してはならない。
計算結果の検証、ソフトウェアの配布方法、資源の離脱への対応も設計する。利用可能な資源の数だけでなく、データの配置や障害時の回復まで含めて、全体の効率を評価する。