テクノロジー

XGE Interfaces (XGE Build Extension Package)

XGE Interfaces(XGE Build Extension Package)を利用する事で様々な Windows ベースのプロセスを分散処理する事が可能となります。 これは make ベースのコンパイル、データビルド(データ変換)、シミュレーションプロセス、テストプロセス等様々な用途が含まれます。

XGE Interfaces を使う

XGE Interfaces は Agents(クライアントコンポーネント) と Coordinator(サーバコンポーネント) の標準アーキテクチャを使って実現されます。

下記に詳細を記載したインターフェースを通して分散対象となるタスクセットが実行されると、 これらのタスクは IncrediBuild Agent が動作しているマシン上で分散処理されます (このタスクセットには分散処理を行うための依存関係が設定されています)。 全てのタスクをローカルマシンやリモートマシン上で、さらに追加 CPU (Agent 上のマルチプロセッサ)上で並列に処理させる事が可能です。 リモートマシン上で処理されているタスクは待機中のプロセスとしてプライオリティが設定されています。 このため、ユーザはワークステーションにプロセッサパワーを割り当てる事が可能であり、集中的なプロセッサパワーの提供を必要としません。

リモートマシン上の全てのタスクは XGE (Xoreax Grid Engine) の仮想化技術を利用して動作します。 この技術は安全にタスクを発行したマシン環境をリモートマシン上でシミュレーションし、正しい実行結果を提供します。 全てのエラーに対する回復のシナリオは自動的に XGE (Xoreax Grid Engine) により提供されます。

Xoreax Software
Build Monitor の Progress View 機能は分散処理の進捗を視覚的に表現します。 1つのタスクの進行を表すバーはメッセージと exit code に従って色分けされます。
利用可能なインタフェース

XGE を通して分散出来るタスクの定義は次の 4つのインタフェースを持っています。

XML Interface

XML Interface は分散処理を汎用的な目的で使用するためのインタフェースです。 入力として XML 形式のファイルを必要とします。このファイルには分散可能コマンドライン定義、分散不可能なコマンドライン定義、入力ファイル、出力ファイルと依存関係を記述します。 XGE を通してこの XML ファイルの定義にしたがって分散処理されたタスクはリモートマシン上では、タスクを発行したマシン環境とファイルシステムを完全にエミュレートして実行されるため、 如何なる下準備も必要ありません。(コマンドラインアプリケーションのコピーやインストール、入力ファイルのコピー等は不要です)

Automatic Interception Interface

Automatic Interception Interface はユニークなインタフェースであり、並列にプロセスを起動する事が出来る make ツール、build ツールを簡単に利用出来ます。 (並列にプロセスを起動する事が出来る make ツールの例は gmake です。"gmake -j 5" はコンパイルプロセスを 5つまで並列に起動します。この "-j (--jobs)" オプションは通常複数のローカルプロセッサを有効に利用するための機能です) Automatic Interception Interface はこのようなツールでローカルで複数起動したプロセスをリモート Agent で分散して処理する事が可能です。 しかも、Makefile や入力ファイルの変更は一切必要ありません。この機能は JAM、SCONS、ANT、gmake、omake 等殆どの代表的なビルドツールで利用する事が可能です。

Submission Interface

Submission Interface は分散処理対象となるコマンドラインを直接スクリプトやバッチファイル、カスタムツールに記述する事が可能です。 特定のタスクグループを定義してそのグループの実行完了を待つ事も指定可能です。

Visual Studio Interface

XGE Build Extension Package をインストールする事によって Microsoft Visual Studio の「カスタムビルドステップ」「ビルドイベント」「カスタムビルド定義」 を分散処理させる事が可能となります。

詳細を確認するには Online User Manual もご参照ください