単純ビルド (並列でも分散でもないビルド) の場合、rafmake コマンドは以下のようにして実行します。
rafmake [ -f makefile ] [ options ] ... [ targets ] ...
詳細は以下のとおりです。オペレーティング・システム別の例を以下にリストします。
% rafmake -u -f project.mk
% rafmake -v -f project.mk a.out
Y:¥> rafmake INCL_DIR=C:¥src¥include
rafmake コマンドは並列ビルドをサポートしています。並列ビルドでは、ビルドを、同時にビルド可能な複数の独立したコンポーネントに分割して、全体的なビルド時間を短縮します。
並列ビルドを実行するための構文は以下のとおりです。
rafmake -J num [ -f makefile ] [ options ] ... [ targets ] ...
詳細は以下のとおりです。並列ビルドを実行すると、リソースを能率的に利用することができます。マルチコア・プロセッサーの場合に特に効果的です。 並列ビルドによってどれだけのパフォーマンス向上が得られるかは、ビルドのタイプによって異なります。 例えば、CPU 集中型のビルドの場合、並行ビルド・ジョブの最適な数は、プロセッサー (またはコア) の数と同じと考えられます。 それより多く指定した場合、パフォーマンスの大幅な向上は実現しない可能性があります。 しかし、入出力集中型のビルドの場合、並列ジョブの数を増やすことによってビルド時間が短縮されます。 異なる数値でビルドを数回試行して、ご使用のリソースに対する並行ビルド・ジョブの最適な数を判別してください。
並列ビルドの例をオペレーティング・システム別に以下にリストします。
% rafmake -J 3 -f project.mk
Y:¥> rafmake -J 5 INCL_DIR=C:¥src¥include software.exe
並列ビルドでは、1 つのコンピューター上にあるリソースのみを使用できます。 ビルドの分散は並列ビルドをさらに一歩押し進めたもので、ビルドの負荷を複数のコンピューターに分散します。
ビルドを分散させるためには、環境が以下の要件を満たしている必要があります。
ビルドの分散先となるすべてのコンピューターにおいて、同じパスで同じソース・コードにアクセスできる必要があります。 通常は、NFS マウントされたシェア上にソース・コードを置くこと (およびそれらをすべてのコンピューター上で同じパスにマウントすること) で、すべてのビルド・コンピューター上の同じパスで同じソース・ディレクトリーを使用できるようになります。
ユーザーがホスト・コンピューターから分散ビルドを開始すると、ビルドの分散先となるすべてのコンピューター上で、rafmake コマンドによりビルド・エンジン (rafbe) が内部的に開始されます。 ビルド・エンジンは、Build Catalyst のインストール時に構成された ssh コマンドまたは rsh コマンドを使用して開始されます。 /opt/rational/buildforge/buildcatalyst/etc/rafbe_starter ファイルは、インストール時にユーザーが選択したリモート・シェルへのシンボリック・リンクです。 ビルドを開始するユーザーは、この選択されたリモート・シェルを使用しているすべてのコンピューターに、パスワードなしでログインできる必要があります。 パスワードなしでログインすることにより、各コンピューター上でビルド・エンジンをサイレント状態で開始できます。 パスワードを要求しないログインのセットアップ方法については、rsh コマンドまたは ssh コマンドの資料を参照してください。
通常、ビルド・ホスト・ファイルには、多くのコンピューターのホスト名または IP アドレスが記述されたいくつかの行が含まれています。 これらのコンピューターが、ビルドの分散先となるコンピューターです。 このファイルには、-idle num などの他のオプションを記述した行も含まれています。 このタイプの行では、その下にリストされたコンピューターでビルドをスケジュールに入れる際の基準となるアイドル率が指定されます。 明示されていない場合、アイドル率は 50 であると想定されます。 ビルド・ホスト・ファイルの例を以下に示します。
### Contents of build hosts file
host1.mydomain.com
-idle 25
host2.mydomain.com
host2.mydomain.com
192.168.0.200
-idle 75
host3.mydomain.com
### End of build hosts file
この例では、host1、host2、host3、および 192.168.0.200 の 4 つのコンピューターにビルドが分散されます。 host1.mydomain.com コンピューターのアイドル率は明示されていないため、50 であると想定されます。 host2 コンピューターおよび 192.168.0.200 コンピューターのアイドル率は 25 に指定されています。 これは、これらのいずれかのコンピューターの負荷率またはビジー率が 75% より低くなった (つまり、少なくとも 25% のアイドル率になった) 場合に、そのコンピューターでビルドがスケジュールに入れられることを示します。 コンピューターのアイドル率が 25% 未満の場合、それらのコンピューターでビルドはスケジュールに入れられません。また、この例では host2 コンピューターが 2 回リストされています。 結果として、host2 コンピューターでは 2 つの並列ビルド・スレッドを開始できます。 コンピューターの構成に応じて、ビルドでのリソース使用が最適化されるようにビルド・ホスト・ファイルを調整することができます。
ビルド・ホスト・ファイルを作成した後、以下のコマンド構文を使用することによって分散ビルドを開始できます。
rafmake -J num -B build_hosts_file [ -f makefile ]
[ options ] ... [ targets ] ...
-J オプションの num 値には、全コンピューターのビルド・スレッドの総数を指定します。
-B オプションがない場合、rafmake コマンドは分散ビルドではなく並列ビルドを実行します。 -B オプションおよび有効なビルド・ホスト・ファイルを指定した場合、ビルド・エンジンは、ビルド・ホスト・ファイルに指定された各コンピューターで分散ビルドをスケジュールに入れます。