分散メーク (dmake) を使用すると、多数のプログラムから構成される大規模なプロジェクトを構築する処理を、複数のワークステーション上、またはマルチプロセッサシステムの複数の CPU 上に分散できます。分散メークについての詳細は、第 17 章「分散メーク (dmake) ユーティリティの使用」を参照してください。
Sun TeamWare のデフォルトの構築コマンド (dmake) には、次の 3 つの構築モードが用意されています。
逐次モード - ローカルホスト上で一度に 1 つのジョブを実行します (make と似ています)。
並列モード - ローカルホスト上で同時に複数のジョブを実行します。
分散モード - 複数の構築サーバー上で複数のジョブを実行します。
分散モードでは、多数のプログラムから構成される大規模なプロジェクトを構築する処理を、複数のサーバーに分散させて同時に実行できます。dmake は、メークファイルを構文解析して、どのターゲットを同時に構築できるかを判断し、それらのターゲットの構築を、ユーザーが指定した複数のサーバーに分散します。
デフォルトでは、dmake は逐次モードで実行されます。「オプション」ダイアログで、dmake を並列モードまたは分散モードで実行するよう設定できます (「make オプションの指定」を参照)。
初めて分散構築を実行する場合は、dmake 構築サーバーとして使用するマシンを指定する構成ファイルを、事前に作成する必要があります。また、構築サーバーとして使用するマシンは、分散されたジョブを実行できるように設定する必要があります。
構築サーバーでは、アーキテクチャおよびオペレーティングシステムのバージョンを dmake ホストと同一にすることをお勧めします。デフォルトでは、dmake ホストと構築サーバーの dmake 実行可能ファイルのパスが同じであることを前提としています。これらのパスが異なる場合は、サーバー側のパス属性をカスタマイズする必要があります (詳細は、dmake(1) のマニュアルページを参照してください)。
.dmakerc ファイルは実行時構成ファイルです。分散構築を実行するには、実行時構成ファイルを設定する必要があります。このファイルには、構築サーバーのグループ (リスト) および各構築サーバーに分散されるジョブ数が記述されています。dmake ユーティリティは、dmake ホスト上でこのファイルを検索して、ジョブの分散先を決定します。通常、.dmakerc ファイルは dmake ホストのホームディレクトリに置かれます。
.dmakerc ファイルでは、グループ名およびホスト名を二重引用符で囲むことができます。文字列の一部として二重引用符を使用することで、グループおよびホストに付ける名前の制約が緩和されます。たとえば、先頭の 1 桁が数字のグループ名などは、次のように二重引用符で囲みます。
group“123_sparc”
dmake ユーティリティは、実行時構成ファイルを、次の場所および順序で検索します。
コマンド行で -c オプションを使用して指定されたパス名
DMAKE_RCFILE メークファイルマクロを使用して指定されたパス名
DMAKE_RCFILE 環境変数を使用して指定されたパス名
$(Home)&/.dmakerc
実行時構成ファイルが見つからなかった場合、dmake ユーティリティは 2 つのジョブをローカルホストに分散します。
実行時構成ファイルの設定については、dmake のマニュアルページを参照してください。
次に、簡単な実行時構成ファイルの例を示します。この例の構築サーバーは、jupiter、venus、saturn、mercury、および pluto です。
# My machine. This entry causes dmake to distribute to it.
jupiter { job = 1 }
venus
# Manager's machine. She's usually at meetings.
mercury { jobs = 4 }
pluto
earth { jobs = 2 }
mar { jobs = 3 }
group sunos4.x {
host parasol
host summer
}
group lab1 {
host falcon { jobs = 3 }
host hawk
host eagle { jobs = 3 }
}
group labs2 {
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 は、このファイルが存在しないマシンにはジョブを分散しません。
dmake.conf ファイルには、その構築サーバーで同時に実行できる (全ユーザーからの) ジョブの最大数を指定します。また、すべての dmake ジョブの実行に適用される nice 優先度も指定できます。次に、dmake.conf ファイルの例を示します。
max_jobs: 8 nice_prio: 5
分散メーク (任意のモードの dmake) の実行中に、「ジョブグラフ」ウィンドウで dmake の実行プロセスを監視したり、各構築ジョブの状態を表示したりすることができます。
ジョブグラフでは、各構築サーバーが識別されて、構築ジョブがサーバーごとのグラフにまとめて表示されます。グラフには、各構築ジョブにかかった時間が表示され、個々のジョブが 1 本の線で示されます。この線の状態で、構築が進行中 (緑の点線) や構築の完了 (青の実線) または失敗 (赤の点線) が表されます。
「構築」ウィンドウから「ジョブグラフ」ウィンドウを開くには、「ジョブグラフ」ボタン (図 16-1 参照) をクリックするか、「表示」⇒「分散メークのジョブグラフ」を選択します。
グラフに表示されたジョブの 1 つのセグメントを選択し、ウィンドウ下部の「選択されているジョブ」の「出力」区画にそのセグメントの構築出力を表示することもできます。