This is the documentation for Enlighten.

9.1.3. HLBS の分散


概要

ビルド分散の最も簡単な方法は、Xoreax が提供する市販ツールである IncrediBuild を使用することです。分散が可能であれば、HLBS が IncrediBuild XML タスク ファイルを作成し、xgConsole を呼び出して実行します。これにより、タスクをリモートで実行する利用可能なすべてのエージェントを使用できるため、パフォーマンスが大幅に向上します。

SN-DBS もサポートされていますが、一部制限があります。

各エージェントでプリコンピュートを実行するのに十分なメモリを確保するため、分散プリコンピュートに使用される論理コアにはそれぞれ、少なくとも 2 GB の物理メモリを搭載します。

IncrediBuild のシステム要件

Enlighten を IncrediBuild で使用するには、以下が必要です。

  • IncrediBuild 8.x 以降。
  • IncrediBuild for Dev Tool Acceleration ライセンス オプション

IncrediBuild でのパフォーマンスを最大限に高めるには、各 IncrediBuild エージェントのファイル キャッシュを以下のように構成します。

  • Size: 32767 MB
  • Folder: 高速ローカル ストレージ (SSD など) 上の任意のパス

SN-DBS のシステム要件

Enlighten を SN-DBS で使用するには、以下が必要です。

  • SN-DBS Version 2.4.0.61 以降がクライアント PC にインストールされていること。
  • 指定の「ブローカー」。

Enlighten は、SN-DBS 2.4.0.61 を使用してテストされています。

コマンド ライン

XGE 分散は GeoPrecompute.exe で初期設定から有効になっており、標準コマンド ラインへの変更は必要ありません。IncrediBuild は、Build Monitor アプリケーションによりグラフィカルな表示が可能なため、XGE を使用する際に GeoPrecompMonitor は必要ありません。

代わりに SN-DBS を使用する場合は、GeoPrecompute.exedbsrun をプレフィックスとして適用します。また、SN-DBS も Network View アプリケーションによりグラフィカルな表示が可能なため、SN-DBS を使用する際に GeoPrecompMonitor は必要ありません。

分散を無効にするには、パラメーター /p:AllowXGE=false を設定します。タスクはローカル マシンで平行して実行されますが、IncrediBuild/SN-DBS が利用できる場合でもこれを使用しません。

追加の制御

環境に最適な形でシステムが動作するように制御できる他のオプションがいくつかあります。

高メモリ負荷および CPU バウンドの GeoPrecomp タスク

GeoPrecomp の特定のタスク (特に CreateLightTransport が挙げられますが、他にもレイ トレーシングを多数実施するタスク) は、処理時間の大部分において、ホストで利用可能なすべてのメモリと CPU を使用する可能性があります。HLBS には、ローカル ビルドを実行する際に同時に呼び出されるこれらの高メモリ負荷のタスクの量を制限する機能があります。必要であれば、 IncrediBuild のエージェントごとの複数インスタンスを無効にします。これは、ほとんどのケースに対応しますが、ローカル環境について十分理解されないため、正しく選択できない場合があります。Enlighten 2.20 時点では、より精密な制御を可能にする /p:AgentUsage=<usage> コマンド ライン パラメーターがあります。

AgentUsage

結果

Default

負荷の最小化とパフォーマンスの最大化の中間にあたるデフォルト動作です。

Aggressive

リモート エージェントの利用を積極的に行います。エージェントあたり複数の高負荷プロセスを許可し、パフォーマンスを向上させます (インタラクティブ セッションがフリーズする可能性があります)。

Conservative

リモート エージェントの使用を 1 度に 1 つの高負荷プロセスに限定し、同時メモリ使用を最小化します。

パフォーマンス

単一の PC の場合、CPU コア数が多ければパフォーマンスはそれに伴い大幅に上昇します。分散によって多数の CPU を活用できるようになります。ネットワーク通信によるオーバーヘッドがあっても、ローカルのみのプリコンピュートよりも大幅に高速で処理できます。