生徒が生み出した、ブラウザで動くJavaScript分散コンピューティング

「Smidge」は、有志によるコンピューティングプロジェクト「SETI@Home」のために開発された「BOINC」とも似ている。決定的な違いは、BOINCが専用ソフトウェアをインストールする必要があるのに対し、Smidgeはウェブブラウザを利用して分散処理ができるという点だ。iPhone、Androidまで、あらゆる端末を組み合わせた分散処理を行うことができるという。
生徒が生み出した、ブラウザで動くJavaScript分散コンピューティング
サンフランシスコのプログラミング集中コース「Hack Reactor」の学生たち。(左から)ティム・ツェー、ショーン・ドロスト、キャリー・J・ウィンスロー、ルアン・ペティヤゴダ、ジョン・S・ドゥヴォラック、キャメロン・ブーマー、ネイサン・フール。

サンフランシスコを拠点にする「Hack Reactor」は、数週間の訓練を通してコンピュータープログラミングを集中的に学ぶコースの1つだ。近年はこの種のプログラミング集中コースが増えつつあるが、Hack Reactorでは特に実践を通してプログラミングを学ぶことを重視している。Hack Reactorのクラスでは生徒たちがいくつかのチームに分かれ、コンピューターサイエンスやエンジニアリングへの理解を深めるための共通プロジェクトに取り組む。授業の内容は週に6日、毎日11時間 というかなりハードなものだ。

ルアン・ペティヤゴダがHack Reactorに参加したのは今年3月のこと。彼は、チームメイトとなったキャメロン・ブーマー、ジョン・S・ドゥヴォラック、ティム・ツェーの3人とともに、Nクイーン問題(チェスの盤と駒を使用した数学パズルの一種)を最速で解くプログラム を書くという課題に取り組むことになった。

その後、彼ら4人はEMCとVMウェアの合弁企業であるピヴォッタル・イニシアティブ社(日本語版記事)の協力を得て、この問題の解決を目指してきた。そして、彼らがこの過程で生み出したまったく新たなソフトウェアがいま、外部でも注目を集めている。

4人が「Smidge」と呼ぶこのソフトウェアは、JavaScriptでつくったアドホックのスーパーコンピューター とも言うべきもので、多数のマシンの処理能力を特定のウェブサイトに振り分けることによって分散処理を実現させるという。

Smidgeは、分散コンピューティングソフトウェアの「BOINC」とも似ている。有志によるコンピューティングプロジェクト「SETI@Home」のために開発されたBOINCは、これまでにタンパク質の「折り畳み」シミュレーションやブラックホールの探索などの目的で利用されてきており、最近ではAndroid端末を利用するBOINCソフトウェアも誕生していた(日本語版記事)。一方、BOINCとSmidgeの決定的な違いは、前者が分散処理のために各端末に専用ソフトウェアをインストールする必要があるのに対し、後者はその必要がなく、分散処理をウェブブラウザを利用して行うことができる という点だ。

「Smidgeでは、ラップトップからiPhone、Androidまで、あらゆる端末を組み合わせた分散処理を行うことができます 。実際、私のBlackBerryも処理に組み込むことができたのは驚きでした」(ペティヤゴダ氏)

分散コンピューティングは、グーグルやアマゾンなどの大手ウェブ企業らも注目する分野で、各社が新種のソフトウェア開発を進めている。現時点では実験段階から少し進んだ程度のSmidgeだが、分散コンピューティングの新たな領域を切り開く可能性がある。

※この翻訳は抄訳です。

TEXT BY KLINT FINLEY

PHOTO BY HACK REACTOR

TRANSLATION BY WATARU NAKAMURA