分散メーク (dmake) を使用すると、多数のプログラムから成る大規模なプロジェクトの構築プロセスを複数のワークステーションに分散させ、並行して処理することができます。また、マルチプロセッサシステムの場合は、複数の CPU に処理を分散させることができます。分散メークの詳細については、付録 C 「dmake ユーティリティ の使用」を参照してください。
デフォルトの Sun WorkShop 構築コマンド (dmake) には、3 種類の構築モードが用意されています。
逐次モード − ローカルホストで 1 回につきジョブを 1 つだけ実行する
並列モード − ローカルホストで複数のジョブを並行して実行する
分散モード − 複数の構築サーバーで複数のジョブを実行する
分散モードでは、多数のプログラムから成る大規模なプロジェクトの構築処理を複数のサーバーに分散させ、並行して処理することができます。dmake は、メークファイルを構文解析し、並行して構築することができるターゲットを判別するほか、指定の構築サーバーに各ターゲットの構築を分散させます。
dmake は、デフォルトでは逐次モードで実行されますが、「オプション」ダイアログボックスで並列モードか分散モードを設定できます (「make オプションの指定」を参照してください)。
初めて分散構築を実行するときは、構成ファイルを作成して、どのマシンを dmake 構築サーバーとするかを指定する必要があります。また、マシンを構築サーバーに設定する場合は、ジョブを分散させることができるように構成しておく必要があります。
構築サーバーは、dmake ホストと同じアーキテクチャーであり、dmake ホストと同じバージョンのオペレーティングシステムを稼働している必要があります。デフォルトでは、構築サーバーと dmake ホストからの dmake 実行可能ファイルへのパスは、同一であると見なされます。そうでない場合は、このサーバーの PATH 属性をカスタマイズする必要があります。詳細については、dmake(1) マニュアルページを参照してください。
.dmakerc ファイルは実行時構成ファイルです。分散構築を実行するには、実行時構成ファイルを設定する必要があります。実行時構成ファイルには、各構築サーバーのグループ (リスト) と各構築サーバーに分散されるジョブの数が記述されています。dmake ユーティリティは、このファイルを dmake ホスト上で検索して、ジョブをどの構築サーバーに分散させるかを判断します。このファイルは通常ホームディレクトリにあります。
.dmakerc ファイル内のグループ名とホスト名は、二重引用符で囲むことができます。二重引用符で囲むことで、グループ名やホスト名の一部として指定する場合に、指定できる文字列の種類が多くなります。たとえば、次に示すように、グループ名が数字で始まる場合は、二重引用符で囲んでください。
group "123_sparc"
dmake ユーティリティは、次に示す場所と順序で実行時構成ファイルを検索します。
-c オプションによって、 コマンド行 (CLI) で指定されたパス名
メークファイルマクロ DMAKE_RCFILE に指定されたパス名
環境変数 DMAKE_RCFILE に指定されたパス名
$ (HOME)&/.dmakerc
実行時構成ファイルが見つからない場合、dmake は 2 つのジョブをローカルホストに分散させます。
実行時構成ファイルの設定については、dmake マニュアルページを参照してください。
次に、構築サーバー jupiter、venus、mercury、pluto を使用する場合の単純な実行時構成ファイルの例を示します。
# 自分のマシン。dmake にジョブを分散させる。 jupiter {jobs = 1} venus # マネージャのマシン。たいてい会議中。 mercury {jobs = 4} pluto
earth { jobs = 2 } mars { jobs = 3 } group sunos4.x { host parasol host summer } group lab1 { host falcon { jobs = 3 } host hawk host eagle { jobs = 3 } } group lab2 { host heron host avocet { jobs = 3 } host stilt { jobs = 2 } } group labs { group lab1 group lab2 } group sunos5.x group labs host jupiter host venus { jobs = 2 } host pluto { jobs = 3 } }
マシンを構築サーバーとして使用するには、サーバーのファイルシステム上に構成ファイル /etc/opt/SPROdmake/dmake.conf を作成する必要があります。このファイルがない構築サーバー上では、構築ジョブを実行できません。
dmake.conf ファイルには、構築サーバー上で並行して実行可能な全ユーザーからのジョブの最大数を指定します。さらに、すべての dmake ジョブを実行する上で最適な優先順位を指定することもできます。次に示すのは、dmake.conf ファイルの例です。
max_jobs: 8 nice_prio: 5
分散メーク (任意のモードの dmake) を実行している場合、「Jobs Graph」ウィンドウを使って dmake の進行やジョブの状況を確認することができます。
グラフ中では、各構築サーバーは区別して表示されます。構築ジョブは、サーバー別のクラスタ単位でグラフ化されます。グラフには、各構築処理にかかった時間が表示されます。各ジョブは、グラフ中に線で表示されます。実行中の構築ジョブは点線、完了した構築ジョブは青色の実線、失敗した構築ジョブは赤の点線で表示されます。
「構築」ウィンドウから「分散メークのジョブグラフ」ウィンドウを開くには、「分散メークのジョブグラフ」ボタン(図 4-1) をクリックするか、「表示」⇒「分散メークのジョブグラフ」を選択します。
グラフに含まれているいずれかのジョブの一部を選択すると、ウィンドウ下部の「選択されているジョブ」区画に、構築出力を表示することができます。