構成としくみ
Incredibuild は Agent と Coordinator の 2 種類のマシンから構成されています。
Agent
エージェントはビルドを実行するマシンのことです。Agentは、特定のビルドに関してイニシエーターまたはヘルパーとして動作することができます。ビルドをリクエストするエージェントはイニシエータ と呼ばれます。アイドル状態の CPU リソースを提供する Helper (ヘルパー) があります。
-
イニシエータエージェント 適切なソリューションに割り当てられると、Agentは Incredibuild を使って実行を開始することができます。ビルド実行時に生成されたタスクは Incredibuild 環境内の Agent のアイドル CPU に分散されて高速に処理されます。イニシエータエージェント はヘルパーエージェントとしても動作します。
-
ヘルパーエージェント これらのマシンは、分散タスクを実行するために使用されます。Helper マシンに Incredibuild Agent 以外のソフトウェアやソースコードなどは不要です。例えば、Incredibuild を使用した Visual Studio のコンパイルであるタスクが Helper に割り当てられた場合、この Helper のホストマシンには Visual Studio はもちろん、コンパイラなどのビルド ツールやソースコードは必要ありません。割り当てられたタスクが終わると、(オブジェクト ファイルや pdb ファイルなど) 出力が Initiator マシンに同期されます。
Coordinator セクション
Incredibuild 環境の全マシンを管理します。1 つの環境に 1 台のみ必要です。環境内のどのマシンにもインストールできます。
Coordinator には次の役割があります。
-
リソース プールに参加する Agent をサブスクライブおよびサブスクライブ解除
-
ステータス レポートから Agent の最新情報を取得
-
タスクの分散待機中に Initiator に必要なヘルパーエージェントを提供
-
Incredibuild ソリューションやコア パッケージの割り当て
Coordinator は Helper Agent とやり取りを行って CPU リソースの可用性を確認し、イニシエータエージェント からリソースを要求されると、環境内の利用可能なリソースを提供します。また Agent に Incredibuild ライセンスを割り当てる (サブスクライブ) のも Coordinator の役目です。
メインの Coordinator に加えて Backup Coordinator を設置・使用することもできます。これはメインの Coordinator が利用できなくなった場合に自動的に起動します。
タスク処理の流れ
-
Initiator が必要なリモート コア数を計算します。
-
Initiator が Coordinator に対して必要分の Helper Agent を割り当てるように要求します。
-
Coordinator がネットワークを探して、利用可能なリソースを Initiator に割り当てます。
例えば、Initiator が 10 個のプロセスを分散するために 10 個の Helper コアを要求すると Coordinator は全部または一部の Helper コアを割り当てます。このプロセスが完了した後、Iniciator が続けて 8 個のプロセスを分散したい場合、すでに 10 個の Helper コアが割り当てられているので、余分な 2 個のリモート コアがリソース プールに戻されます。