グリッドコンピューティング技術でETに遭遇 (2008年09月05日)
ちょっとマニアックな書き込みになるが、次回クラブで遊ぶときの雑談ネタになるかもしれないのでおさえておきたい(ともあれ、試す価値はあるだろう)。
World Community Grid は個人所有の PC で構成されるネットワークで、大きな処理の一部を、負荷の低い多数の小さいソフトウェアに分割し、それを各個人が分担して実行する。プログラムは自分のマシンがアイドル状態の時に起動し、しばらく処理を行うと処理結果の一部が Grid Headquarters に送信し、そこでほかの約100万台のマシンから戻ってきた結果との統合処理が行われる。もし World Community Grid が1台のスーパーコンピュータだったら世界第3位にランキングされる。これは、タンパク質の折り畳み、ガン、デング熱、耕種学、筋ジストロフィーなどの各種調査の数理シミュレーションに利用されている。
300万台のマシンが参加し、World Community Grid のちょうど3倍の威力がある SETI@HOME は、遠く離れた星からの無線信号を分析することで地球外生命の兆候を発見する目的に特化している。これは非現実的な探求作業であり、われわれとしては、それが完全に失敗するのを望むほかない。つまり、皮肉に、かなり控えめに言うと、高度な文明とコンタクトをとってメリットを享受した技術レベルの低い文明社会はほとんどない。実際はその逆だ。そして、宇宙航海の可能な文明(もしわれわれが発見したものがそうだったら)は超ハイテク文明である。
だから?
興味をそそる話題に話しを戻したい。社員に支給された PC で毎晩バッチを実行することはできるだろうか? もしかしたらハードウェア面でかなり節約になるのだろうか? おそらくそうはならないだろう。このテクニックは計算処理負荷の高い(ほとんどデータを扱わない大量の計算処理)作業に最適なものだ。従来のバッチ処理は大抵その逆で、素早く簡単な計算処理を行うが、出し入れする情報は膨大な量になる。会社にあるアイドル状態の PC にこれら数千のタスクを分散させれば、大量のデータベースコールでネットワークが崩壊する(少なくとも筆者はそのようになる仕組みだと思う...)。
では、この技術をビジネスに利用する方法はあるのだろうか? 筆者には1つしか思いつかないし、それもあまり良い例ではない。RIA (Rich Internet Application)を運用している企業では、ユーザーのマシンを活用して Web アプリケーションのヒューマンインターフェース部分を処理している。RIA の Web ページに行くと、対話処理(ドラッグ&ドロップ、フィールドの確認、地図画像のズーム/スクロールなど)を行うプログラムが手元のブラウザに渡される。たまに本社に結果やリクエストの一部を戻すこともあるが、大抵はそのページが手元のマシンのプロセッサとメモリを使って自律的に動作する。そのため、純粋主義者はおそらく異議を唱えるだろうが、筆者はこれをグリッドコンピューティングの一例だと考えている。
ここまでで筆者の頭は行き詰まり、くだらない考えさえも浮かばない。何か思いついたらぜひ教えていただきたい。ぜひお願いする。

Comments