Xgridは、 Apple Inc.のAdvanced Computation Group部門が開発した独自のグリッドコンピューティングプログラムおよびプロトコルです。[ 3 ]
これは、ネットワーク管理者がコンピューティング クラスタを作成する方法を提供し、マンデルブロ マップなど、より小さな操作に簡単に分割できる計算に、これまで使用されていなかった計算能力を活用できるようにします。Xgrid クライアントはMac OS X 10.4からMac OS X 10.7を実行しているすべてのコンピュータにプリインストールされているため、Xgrid クラスタのセットアップはほぼ無料で実行できます。Mac OS X 10.8には Xgrid クライアントは含まれていませんでした。Xgrid操作のジョブ スケジューラである Xgrid コントローラもMac OS X Serverに含まれており、Apple から無料でダウンロードできます。Apple は、コマンドライン ジョブ制御メカニズムを最小限に抑えつつ、それに基づいて構築されたより高度なツールを開発するための API を提供しています。
このプログラムは、スキーマの上に構築された独自の通信プロトコルを使用して、他のノードと通信します。この通信プロトコルは、ネットワークアプリケーションプロトコルフレームワークであるBEEPインフラストラクチャと連携します。Xgridシステムによって検出されたコンピュータ、つまりMac OS XのXgridサービスが有効になっているコンピュータは、処理タスクに使用できるコンピュータのリストに自動的に追加されます。
開始コンピュータが処理対象の完全な命令(ジョブ)をコントローラに送信すると、コントローラはタスクをタスクと呼ばれる小さな命令パケットに分割します。Xgridシステムの設計では、これらの小さなパケットがネットワーク上のすべてのXgrid対応コンピュータに転送されます。これらのコンピュータ(ノード)は、コントローラから提供された命令を実行し、結果を返します。コントローラは、個々のタスクの結果を組み立ててジョブ全体の結果を作成し、開始コンピュータに返します。
Appleは、 NeXTのOpenStepオペレーティングシステムアプリケーションプログラミングインターフェース(API )に付属していたZillaプログラムを参考にXgridのデザインを設計しました。AppleはこのAPIの権利を所有していました。また、Mac OS Xのクライアント版にはコマンドライン機能のみを提供し、柔軟性をほとんど持たせない一方、Mac OS X Server版のXgridにはGUIコントロールパネルと豊富な機能セットを提供するという方針をとりました。

Xgrid の起源は、1980 年代後半に科学者のリチャード・クランドールによって作成されたNeXTの Zilla アプリケーションに遡ります。Zilla は、エンド ユーザーオペレーティングシステム上でリリースされた最初の分散コンピューティング プログラムであり、アイドル スクリーン セーバーのモチーフを使用していました。このデザインの特徴は、その後Seti@Homeなどの広く使用されているプロジェクトで見られます。[ 1 ] [ 4 ] Zilla は、使いやすさと優れたデザインにより、1991 年にコンピュータワールド スミソニアン賞(科学部門) を受賞しました。 [ 5 ] Apple は 1997 年に NeXT の他の部分とともに Zilla を買収し、[ 6 ] Xgrid のインスピレーションとして Zilla を使用しました。[ 1 ] Xgrid Technology Preview 1 は 2004 年 1 月にリリースされ、[ 7 ] [ 3 ] [ 8 ]続いて 2004 年 11 月に Technology Preview 2 がリリースされました。Xgrid 1.0 は2005 年 4 月にMac OS X 10.4 Tigerの一部としてリリースされました。[ 8 ]
いくつかの組織が大規模な国際コンピューティングネットワークでXgridを採用しています。Xgridクラスターの1つはMacResearchのOpenMacGridで、科学者は研究に関連するタスクを実行するために大量の処理能力へのアクセスを要求できます。[ 9 ] [ 10 ]もう1つは、現在廃止されているXgrid@Stanfordプロジェクトで、スタンフォード大学のキャンパス内および世界中のさまざまなコンピューターを使用して生化学研究を実行しました。[ 11 ] [ 12 ] [ 13 ] [ 14 ]
発表を取り上げたレポートの中で、Macworld は「Tiger について知っておくべき 10 のこと」の中で Xgrid をUnix の機能の一つとして挙げ、「大量の実験データを扱ったり、複雑なアニメーションをレンダリングしたりする場合に便利」と評した。 [ 15 ] 2004 年に Xgrid が導入された後、InfoWorld は、Xgrid はその年の後半に発売されるXserve G5から直接恩恵を受ける「プレビュー」グレードのテクノロジーであると指摘した。[ 16 ] InfoWorld のコメンテーターである Ephraim Schwartz も、Xgrid は Apple がエンタープライズ コンピューティング 市場に参入するための第一歩であると予測した。[ 17 ] [ 8 ]
AppleはOS X 10.8 Mountain LionでXgridの提供を終了し[ 18 ]、Podcast Producerなどの依存サービスも終了した[ 19 ] [ 20 ] 。

Xgridプロトコルは、BEEPネットワークフレームワークを使用してネットワーク上のノードと通信します。システムのインフラストラクチャには、このプロトコルを介して通信する3種類のコンピュータが含まれています。
コンピュータは、これら 3 つのコンポーネントのうち 1 つまたはすべてを同時に実行できます。Xgrid プロトコルは、コンピュータが通信するための基本的なインフラストラクチャを提供しますが、指定された計算の処理には関与しません。[ 22 ] Xgrid は、簡単に小さなタスクに分割できる時間のかかる計算、いわゆる並列処理タスクを対象としています。[ 23 ]これには、モンテカルロ計算、3D レンダリング、マンデルブロ集合などが含まれます。[ 22 ]
Xgrid プロトコルでは、同じクラスタ上の他のコンピュータに 3 種類のメッセージ (リクエスト、通知、応答) を渡すことができます。リクエストには受信者が応答する必要がありますが、通知には応答は不要で、応答は送信されたメッセージに対する応答です。メッセージは、名前、タイプ (リクエスト/通知/応答)、および内容によって識別されます。各メッセージは BEEP メッセージ (BEEP MSG) にカプセル化され、受信時に空の応答 (RPY) で確認されます。[ 7 ] Xgrid は BEEP のメッセージ/応答インフラストラクチャを利用しません。応答が必要な受信メッセージは、応答を含む独立した BEEP メッセージを生成するだけです。Xgrid メッセージはキー/値ペアの辞書としてエンコードされ、BEEP ネットワーク経由で送信される前に XML に変換されます。
Xgrid システムのアーキテクチャはジョブベースのシステムを中心に設計されています。コントローラはエージェントにジョブを送信し、エージェントは応答を返します。Xgrid システムでコントローラが実行する実際の計算はジョブと呼ばれます。ジョブには、入力パラメータ、データ ファイル、ディレクトリ、実行可能ファイル、シェル スクリプトなど、タスクを正常に完了するために必要なすべてのファイルが含まれます。Xgrid ジョブに含まれるファイルは、同時または非同期で実行できる必要があります。そうでない場合、Xgrid でそのようなジョブを実行するメリットは失われます。ジョブが完了すると、コントローラは、たとえば電子メールでクライアントにタスクの完了または失敗を通知するように設定できます。クライアントは、タスクの実行中にネットワークから切断できます。また、個々のタスクの進行中の進捗状況を追跡することはできませんが、コントローラにクエリを実行することで、必要に応じてジョブの状態を監視することもできます。 [ 24 ] [ 8 ]
コントローラは、エージェント上のタスクの分散、監視、および調整を担当するノードであるため、Xgrid の正しい機能にとって中心的な役割を果たします。コントローラ上で実行されるプログラムは、個々のエージェントの障害をオンデマンドで処理するために、タスクの割り当てと再割り当てを行うことができます。エージェントに割り当てられるタスクの数は、Xgrid 上のエージェントの数と各ノードのプロセッサの数という 2 つの要因に依存します。Xgrid 上のエージェントの数によって、コントローラがタスクを割り当てる方法が決まります。タスクは、多数のエージェントに対して同時に割り当てられる場合もあれば、少数のエージェントに対してキューに格納される場合もあります。Xgrid 上で複数のプロセッサを持つノードが検出された場合、コントローラはプロセッサごとに 1 つのタスクを割り当てることがあります。これは、ネットワーク上のエージェントの数がコントローラが完了する必要のあるタスクの数よりも少ない場合にのみ発生します。[ 24 ]
Xgridは、 HTTPに匹敵するIETF標準であるBlocks Extensible Exchange Protocol(BEEP)を基盤としていますが、ピアツーピアネットワークなどで見られるような双方向多重通信に重点を置いています。BEEPは、単一のネットワークまたはインターネット接続を介して複数のエージェント間で通信するためのプロファイルを定義するためにXMLを使用します。 [ 25 ]

コマンドラインから Xgrid にアクセスすることは可能ですが、Mac OS X Serverにバンドルされ、2009 年 3 月現在オンラインでも利用可能な Xgrid グラフィカル ユーザー インターフェイスは、Xgrid システムを管理するはるかに効率的な方法です。当初、Xgrid エージェントはすべてのMac OS X 10.4 Tigerインストールに含まれていましたが、GUI はMac OS X Serverのユーザー専用でした。この決定により、コンピュータ コミュニティがこのプラットフォームを採用する取り組みが制限されました。最終的に、Apple は Mac OS X Server 管理ツールを一般公開し、これには Mac OS X Server にバンドルされた Xgrid 管理アプリケーションが含まれていました。[ 27 ]
標準 (非サーバー) Mac OS Xディストリビューションにはグラフィカル コントローラ インターフェイスがありませんが、コマンドラインツールxgridctlとを使用して Xgrid コントローラをセットアップできますxgrid。Xgrid コントローラデーモンが実行されると、Apple のXgrid Adminツールを使用してグリッドを管理できます。[ 27 ] VisualHubなどの一部のアプリケーションは、ユーザー インターフェイスを介して Xgrid コントローラ機能を提供しました。[ 28 ] [ 29 ]
{{cite conference}}: CS1メンテナンス: DOIは2025年7月現在非アクティブです(リンク)