IncrediBuild 用語集


IncrediBuild 用語集

上図は IncrediBuild 環境の一般的な構成です。

IncrediBuild 環境の主要コンポーネントは次の 3 つです。

- Agent (イニシエーター):ホスト ソフトウェアがインストールされたマシン (実行を開始するマシン)。

- Agent (ヘルパー):リモートマシン (インストールするマシンに上限はありません)。

- Coordinator:環境内のいずれかのマシンにインストールできます (可用性の高いマシンが理想的です)。オプションでバックアップ Coordinator のインストールも可能です。

ヘルパーとして使用するマシンには IncrediBuild Agent をインストールする必要があります。ヘルパーのみで動作するマシンにソフトウェアのインストール、ソースコードのコピー、ツールのセットアップは必要はありません。


ジョブとタスク

ジョブ:IncrediBuild によって実行されているプロセスツリー全体のことを「ジョブ」といい、イニシエーターで実行されるジョブは「タスク」に分割されます。

  • タスクはプロセスツリー内の OS レベルで実行されます。
  • タスクでサブタスクを呼び出して、両方のタスクを分散してリモートマシン上で実行することもできます。
  • タスクはイニシエーターまたはヘルパー Agent のいずれかで実行される処理のことです。 

例:通常 Visual Studio で IncrediBuild がリモート実行するのはコンパイル タスクです。C++ のコンパイルでは、cl.exe (コンパイル プロセス) が IncrediBuild によって分散され、リモートで実行されます。フル リビルドには多数のコンパイル タスクがあり、それぞれを IncrediBuild によってリモートマシン (ヘルパー) に分散できるので処理を大幅に高速化できます。

IncrediBuild Agent (イニシエーターとヘルパー)

IncrediBuild Agent は IncrediBuild プールに参加するすべてのマシンにインストールが必要です。Agent イニシエーター (処理を開始するマシン) またはヘルパー (ネットワークにアイドル CPU を提供するマシン) のいずれかで動作します。イニシエーターとして動作させるには、IncrediBuild ソリューションを Agent に割り当てる必要があります。IncrediBuild ソリューションの詳細は「IncrediBuild ソリューション」ページをご覧ください。

イニシエーター Agent:適切なソリューションが割り当てられた Agent で、処理を開始することができます。処理の課程で生成されたタスクは IncrediBuild プールのアイドル CPU に分散され、処理速度を大幅に向上させます。イニシエーター Agent はヘルパー Agent ととしても動作します。

ヘルパー Agent:IncrediBuild Agent をインストールすると IncrediBuild プールに参加しているすべての PC (リモートまたはクラウドベースのマシンを含む) 上でヘルパー Agent として動作し、分散されたタスクを実行できます。

ヘルパー マシンは IncrediBuild Agent 以外不要です。たとえば、ヘルパー A を使って Visual Studio のコンパイルを分散する場合、ヘルパーに Visual Studio やコンパイラなどのビルドツールをインストールしたり、ソースコードを用意したりする必要はありません。また、コンパイルがヘルパー A に分散されると、IncrediBuild はこの分散コンパイル処理で生成されたすべて (オブジェクト ファイル、PDB ファイルなど) がイニシエーター マシンに同期されることを透過的に確認します。


IncrediBuild Coordinator (コーディネーター)

Coordinator は IncrediBuild プール内のリソースの使用状況を管理するコンポーネントです。Agent とやりとりを行い、使用可能 / 不可能なリソースを特定・管理します。

Coordinator には次の機能があります。

  • Agent のリソースプールの登録 / 解除。
  • Agent からのステータス レポートにより、Agent の最新情報を保持。
  • タスク分散が行われる間にイニシエーターに必要なヘルパー Agent を提供。
  • IncrediBuild ソリューションとコアパッケージを Agent に割り当て。


イニシエーター / ヘルパー Agent、Coordinator 間で次のようにタスクが受け渡されます。

1) イニシエーターが必要なリモートコア数を算出。

2) イニシエーターから Coordinater に必要なヘルパー Agent を要求。

3) Coordinator がネットワークをスキャンして、利用可能なリソースをイニシエーターに割り当て。

たとえば、イニシエーターが 10 の処理を同時に実行するために、10 個のヘルパーコアを要求している場合、Coordinator からすべてまたはその一部が割り当てられます。処理完了後に追加で 8 つの処理が必要になっても、すでに 10 個のヘルパーコアが割り当てられているため、Coordinater は追加のリモートコアを要求するのではなく、余分な 2 個のコアをリソースプールに解放します。

上記のように処理がヘルパーマシンに分散されると、IncrediBuild の仮想化技術によりすべての処理が水面下で処理されます。リモートマシンに IncrediBuild Agent 以外のものをインストールしたり、ソースファイルや実行可能ファイルをコピーしたりする必要はありません。また、分散処理によって生成されたファイルは、イニシエーター マシン上の指定パスに自動的にコピーされます。