構成としくみ

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 が利用できなくなった場合に自動的に起動します。

タスク処理の流れ

  1. Initiator が必要なリモート コア数を計算します。

  2. Initiator が Coordinator に対して必要分の Helper Agent を割り当てるように要求します。

  3. Coordinator がネットワークを探して、利用可能なリソースを Initiator に割り当てます。

例えば、Initiator が 10 個のプロセスを分散するために 10 個の Helper コアを要求すると Coordinator は全部または一部の Helper コアを割り当てます。このプロセスが完了した後、Iniciator が続けて 8 個のプロセスを分散したい場合、すでに 10 個の Helper コアが割り当てられているので、余分な 2 個のリモート コアがリソース プールに戻されます。