当研究センターでは、オフィスや家庭にあるPCを多数、容易に束ねて、多量の計算を高速に行なうためのミドルウェアP3を開発した。 以前より、GridRPC API仕様を実装したNinf-G2、およびMPI仕様を実装したGridMPIなど、グリッドに適したプログラミング環境を開発してきた。これらは、地理的に分散配置された数台から1000台規模のPCクラスタ、つまり計算専用機を対象としている。それに対してP3は、計算のために用意されたわけではないPC群、例えばオフィスや家庭にある既存のPCを多数用いることで多量の計算を高速に行うプログラミング環境/ミドルウェアである。
ありあわせのPC群を分散処理に用いるためにP3が提供する代表的な機能として、(1)PCのアドホックな追加・離脱、(2)ごく容易なインストールと自動更新、(3)虚偽の計算結果の自動検出が挙げられる。
オフィスや家庭のPCは日常的に電源を切られるため、P3は突然の電源断・投入を日常茶飯事として想定している。P3を用いた場合、一部のPCに故障や電源断があっても、分散処理全体は自動的に完遂される。そのために分散処理アプリケーションの側で故障を考慮しておく必要はない。また、分散処理の途中であっても、PCを処理に追加していくことができる。 数のPCを使う場合、台数に比例してソフトウェアインストール、更新の手間が増えていく。それに対してP3の場合は、ウェブブラウザでP3配付ページを閲覧してマウスをクリックしていくだけでインストールを行える。また、最新版への更新も自動的に行われる。
P3は、組織内の既存PCを束ねるcycle scavengingだけでなく、インターネット上で協力者を募っての分散処理も想定している。その場合、どうしても、協力者のPCが虚偽の計算結果や誤った結果を返してくることを想定しなければならない。この問題に対して、P3は計算結果の自動検証機能を提供している。
アプリケーション側で何もせずとも、複数の計算結果を照合して検証し、虚偽の計算結果を検出する。疑わしい場合には計算を再度行うので、悪意ある協力者が居る場合でも、正しい結果を得られる。
P3を用いた分散処理の事例としては、遺伝的アルゴリズムを用いたタンパク質の立体構造決定や、共通鍵暗号方式の鍵探索がある。また、2004年9月にはソースコードを含めて公開を行った。
従来のインターネット上分散処理プロジェクトでは、参加者にできることはプロジェクト運営者に対しての計算能力の提供だけだった。それに対してP3は、P2P、すなわち個人間での計算機資源の融通、つまり参加者それぞれがお互いに計算能力を提供かつ利用できる環境の創出を狙っている。

首藤一幸 (しゅどう かずゆき)
