2004年サンフランシスコエキスポの基調講演において、Apple社よりXserve G5が発表されました。それと同時に、以前から噂に上がっていたPCクラスタリング技術「Xgrid」のテクニカルプレビュー版(ドキュメントにはαリリースとの記載あり)が登場したので、さっそく試してみることにしました。実行環境やサンプル、ドキュメントを含んだ「Xgrid 1.0 Technology Preview 」は、以下のサイトからダウンロードすることが可能です。
http://developer.apple.com/hardware/ve/acgresearch.html
PCクラスタリングは、サーバ障害時のリカバーや負荷の分散時などにも活用されていますが、Xgridのターゲットは膨大な数値計算を複数のMacintoshで分散処理する用途です。最近では、1100台のPowerMac G5で構成したバージニア工科大のPCクラスタが、速度ランキングの世界第3位となり関係者を驚かせました。基本的には、それと同じ用途と言うわけです。ちなみに、この大学においてもXgridの動作テストを行っているそうです。まあ、一般のパソコンユーザにはあまり馴染みのない世界となりますが、3Dソフトによる分散レンダリングやXcodeによる分散コンパイルなど、一般ユーザにまったく無縁の世界かと言うと、そういうわけでもありません。
「Xgrid 1.0 Technology Preview 」を伸張し、それに含まれるXgrid.pkgをインストールすると、/Library/Xgrid/に実行環境やフレームワーク、プラグイン、ドキュメントなどがインストールされます。各種ドキュメントの内容はパッケージと一緒に添付されている物と同じです。アプリケーションフォルダにはXgridアプリケーション本体が保存され、「システム開発環境」に表示されたXgridによりクラスタリングに関係する各種設定が行えるようになります。このプレビュー版では、1台のMacintoshでもXgridの動作確認が可能となっています。まずは単独マシンでXgridを起動し、その仕組みを確認してみます。
Xgirdアプリケーションを起動するとウィンドウが表示され、Xgridのサービスが利用できるかどうかサーチが開始されます。しばらくすると「サービスが見つからない」と言う主旨のアラートが表示されます。アラートを閉じたら「Start Local Service」を押してください。すると、「New Job」というウィンドウがオープンしますので、左側のブラウザに表示されている「localhost」をダブルクリックします。「Cluster Nodes」という別ウィンドウが開き、1台のみのMacintosh(localhost)が利用可能であることが分かります。Jobウィンドウの右側のブラウザから「Mandelbrot」をダブルクリックすると、マンデンブロー集合を計算し結果を描画する処理が実行されます。その隣には、処理全体のクロック数を示すメータウィンドウが表示されています。
先程の「Cluster Nodes」ウィンドウの方を見ると、演算が実行されている間はStatusが「Working」に変わり、PowerBookアイコンの画面に実行中のサインが表示されます(Newtonのアイコン?)。こうした処理を複数台で分散させて行うのがXgridの役目ですから、今度はローカルネットワークで接続された2台のMacintoshで同様の処理を行ってみます。以下の実行方法の詳しい内容を知りたい場合には、パッケージに付属している「ReadmeFirst.pdf」を参照してください。Xgridでは、各マシンに処理を振り分け、その結果を集計する仕事を請け負うマシンをコントローラ、分散処理を担当するマシンをエージェントと呼ぶようです。
最初に「システム環境設定の」Xgridでコントローラ(今回はエージェントも兼ねる)の設定を行います。「Agent Security」「Controller」「Controller Security」の各タブでパスワードを設定してください。すべて同じ内容でかまいません。続いて、「Agent」タブの「Choose when the agent may accept tsak:」を「Always」に切り替えます。これでつでも分散処理が実行されます。そうでない場合、エージェントマシンはスリンセーバが起動している間のみ処理が実行されます。「Agent」と「Controller」の「Start」ボタンを押せばサービスが開始され設定作業は終了です。続いてエージェント側のマシンも同様な設定を行い「Agent」の「Start」ボタンだけを押します。これですべて終了です。
コントロール側のマシンでXgirdアプリケーションを起動します。設定が正しければアラートは表示されず、「Service:」にコントロール側のマシン名が表示されます。設定したパスワードを入力し「Connect」ボタンをクリックすると「New Job」ウィンドウがオープンします。1台で試した時に「localhost」と表示されていた場所に「Rendezvous」と表示されていますので、それをダブルクリックします。「Cluster Nodes」ウィンドウに2台のマシンが表示されており、どちらもStatusが「Available」であれば成功です。先程の「Mandelbrot」を実行しましょう。両方のマシンで演算処理が分散されていることが理解できると思います。Xgridでは、ネットワーク上の利用可能なエージェントマシンを探す時にRendezvousネットワーキング技術を利用します。よって面倒なネットワーク設定をすることなく、すぐに分散作業を開始することが可能となります。
Xgridは、NeXT時代の「Zilla」というプロジェクトが元になっているそうです。このプロジェクトは2001年にApple社のAdvanced Computation Groupに引き継がれ「Xilla」と名を変え、現在のXgridに至っているそうです。現状では科学計算などの分野がターゲットとなるでしょうが、Macの世界でこうした面白い技術が一般ユーザに開放されると、思わぬ利用形態が発生するケースがあります(笑)。将来的にはどんな方向へ進化するのか分かりませんが、とても楽しみな技術です。正式版が発表され、もう少し詳しい技術ドキュメントが入手可能になったら、分散処理環境で動作する自作アプリケーションを作成してみたいと考えています。
copyright 2004 Ottimo, Inc. All rights reserved
無断転載・引用禁止
Contact Us: koike@ottimo.co.jp