製品・サービス > スーパーコンピューティング > グリッドとPCクラスタ
グリッドとPCクラスタ

■グリッド≠PCクラスタ

オフィスなどに設置され、ネットワークで接続されている多数のパーソナルコンピュータ(パソコン)を連動させて高速の計算処理を実現することを「グリッドコンピューティング」と呼びます。またそのようなシステムのことを「グリッド」または「グリッドコンピュータ」と呼びます。イマジオムは主に「PCクラスタ」を取り扱っていますが、この言葉はまだ知名度が低く、マスコミなどでもよく「グリッド」と混同されているのを見かけます。そこでこのページでは、グリッドとPCクラスタの違いについて説明することにしました。


グリッドとPCクラスタはどちらも、1台のパソコンでは長い時間のかかる処理を高速化するための仕組みです。膨大な仕事であっても、多くの人が分けてこなせば、短い時間で終わるというのと同じ原理です。しかし両者が、その運用方法の違いから、まったくと言っていいほど別の技術に分化していることは覚えておかなければなりません。

■グリッドの抱える矛盾

グリッドコンピューティングの特徴は、遊休処理能力の活用にあります。オフィスに設置されたパソコンは、すべてが100%の稼働率で動作しているわけではありません。ほとんどの対話型アプリケーションは、それほど多くの処理能力を必要としてはいません。多くのパソコンは、ほとんどの時間をユーザの入力を待つことに費やしています。別の言い方をすれば、処理能力に余裕があるわけです。これを集めれば、まとまった大きい処理能力が得られる。これがグリッドの基本的な発想です。

グリッドを構成している個々のパソコンは、それぞれのユーザが個別に管理しています。そのためグリッドを管理するシステムは、個々のパソコンをあまり信頼するわけにいきません。たとえば突然パソコンの電源を切ったり、パソコンをリセットしたりするユーザもいます。またあるユーザはパソコンに、非常に重くて時間のかかる処理をさせるかもしれません。これは「個々のパソコンが、担当した処理を一定の時間のうちに終わらせてくれるとは限らない」ということを意味しています。これは一つのまとまったシステムとしての性能を保証したいグリッドの管理者を悩ませる問題です。

またグリッドは仮想的なコンピュータなので、ハードウェア的には外部とつながっています。このことはシステムのセキュリティを非常に弱いものにします。たとえばグリッドを構成しているパソコンのユーザの中に、一人でも悪意を持っている者がいると、システム全体が危険にさらされてしまいます。パソコンをグリッドに組み込むということは、そのパソコンを「グリッドの言いなり」にするということです。それには個々のパソコンのユーザと、グリッドの管理者との間に、絶対的な信頼関係が必要です。信頼関係とは言っても、それは社員教育で解決することではありません。ユーザの知らない間に、悪意のある第三者の作ったプログラム(マルウェア)が、そのパソコンでひそかに動作しているかもしれないからです。

このような問題を解決するため、グリッドでは非常に信頼性・守秘性の高い通信プロトコルを使うことを余儀なくされます。しかし情報漏洩を防ぐために通信データを暗号化したり、改ざんを検出するために通信データを冗長化したり、コンピュータウィルスの蔓延を防ぐためにフィルタリングしたりする取り組みは、並列コンピュータとしての性能を低下させます。高い処理性能を得るために、多くのパソコンを使おうとすればするほど、処理性能を低下させる要因が増えていく。これがグリッドコンピューティングの抱えている矛盾です。

現在グリッドコンピューティングは、インターネットを経由してきわめて多くのパソコンを結合させる方向に活路を見出しています。1台のパソコンでは数百年かかるかもしれない処理を、組織の壁を越えて接続された100万台のパソコンを使って1日のうちに終わらせる。そのような用途にグリッドは最良の解決策になるからです。100万台のパソコンを集中管理することができる巨大組織は存在しませんので、どうしても不特定多数のユーザが管理するパソコンを協調させる必要があります。それにはどのようなユーザが管理しているどのようなパソコンでも、確実にシステムの構成要素として強調させることができる、堅固な遠隔制御手段が求められます。そのためグリッドコンピューティングの研究では、信頼性の高いプロトコルを標準化することに重点が置かれています。

これに対して集中的に管理され、外部と隔絶することのできるPCクラスタでは、プロトコルを標準化する必要すらありません。ハードウェア的にセキュリティを確保してしまえば、自分の好きな方法でデータを伝送することができます。OSに手を加えてもかまいません。PCクラスタとグリッドの抱える課題は大きく異なっています。PCクラスタの研究者の興味は、大きく(1)高い処理性能を追求することと、(2)並列プログラムの開発を支援することの二つです。

■どちらを選ぶのがいいか?

ある処理を高速化するのに、グリッドとPCクラスタのどちらを使ったらいいでしょうか? 判断基準は二つあります。一つは処理時間です。その処理を行うのに、1台のパソコンではどのくらいの時間がかかりますか? 1ヶ月よりも長いのであれば、グリッドコンピューティングを検討する価値があります。

もう一つは繰り返し回数です。その処理は1回実行するだけでいいものですか? それとも何度も実行される可能性がありますか? 実行される回数が少なければ、ハードウェアに投資するのはもったいないでしょう。しかし回数が多ければ、投資するメリットはそれに比例して大きくなります。

並列処理技術は単独の技術ではありません。最適な方法は、ケースによって大きく変わってきます。

トップページへ
「スーパーコンピューティング」へ