編集部からのお知らせ
解説集:台頭するロボット市場のいま
解説集:データ活用で考えるデータの選び方

グリッドコンピューティングの本当のところ

栗原潔(テックバイザージェイピー)

2006-10-04 13:21

 どのIT関連用語についても言えることだが、グリッドコンピューティングという言葉の意味はきわめて多様だ。どの定義においても、少なくとも多数のコンピュータを組み合わせることで、高い処理能力を有する仮想コンピュータを提供するという点だけは一致するようだ。

 グリッドコンピューティングの概念の創始者の一人であるIan Foster氏は、以下の点をグリッドのチェックリストとして挙げている。

(1)集中管理されていない分散した資源のコーディネート

(2)オープンスタンダードなプロトコルやインターフェースの利用

(3)単純には得られない質の高いサービスの提供

 これ以外にも、複数の組織に属するコンピュータを組織境界をまたがって組み合わせて使用するという要件が付け加えられることもある。

 このようなグリッドの定義は、特に、クラスタとの区別を行うために意義がある。クラスタにおいては上記の(1)の条件が満たされていないため、グリッドとは異なるということだ。以下、この定義に乗っ取って議論を進めていこう。

グリッドの課題と適用範囲

 多数のコンピューティングを組み合わせてあたかも巨大な1台のコンピュータのように見せる。これは、口にするには容易だが、現実の実装にはさまざまな課題がある。その中でも最も困難な課題はレイテンシ(遅延)である。

 ある場所のデータを別の場所で読み出すためには必ず遅延が発生する。テクノロジの進化により、遅延を小さくすることはできるが、ゼロにすることはできない。情報は理想的環境でも光の速さ以上で進めないというのは物理法則だからだ。

 CPU内部のキャッシュ内のデータを読むのに比較して、外部のキャッシュ内のデータを読むためには、はるかに長いレイテンシを必要とする。そして、キャッシュではなく、メインメモリのデータを読むためには、さらに長いレイテンシが、同じコンピュータ内ではなく別のコンピュータにあるデータを読むためにはさらにさらに長いレイテンシを必要とする。これは物理法則に由来することで避けられない現象だ。

 データを得るためのレイテンシが長いと、如何にCPUの処理能力が強力であってもCPUがほとんどの場合肝心のデータを待っている状態になり、実効性能が上がらない。ゆえに、複数のコンピュータを組み合わせて高い処理能力を提供するためには、レイテンシの影響を最小化することが必要である。

 CPU演算中心のアプリケーションであれば、これは比較的容易に達成可能だ。プログラムを、プロセス間通信を最小化できるようにやり方で多くの部分に分割し、各コンピュータ上で可能な限り独立して処理を進められるようにすればよい。

 パターンマッチングやモンテカルロシミュレーションなどはこのような分割を行いやすい処理の例だ。グリッドコンピューティングの初期の事例として知られるSETI@Homeなどはまさにこのような例だ。

 しかし、一般的なビジネスアプリケーションにおいては、このようなアプリケーションの分割は難しい。データベース更新時のロッキングの問題が大きな課題となるからだ。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

関連記事

Special PR

特集

CIO

セキュリティ

スペシャル

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]