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 以外のものをインストールしたり、ソースファイルや実行可能ファイルをコピーしたりする必要はありません。また、分散処理によって生成されたファイルは、イニシエーター マシン上の指定パスに自動的にコピーされます。
はじめに
Linux版利用ガイド