Sun WorkShop TeamWare ユーザーズガイド

基本的概念

分散メーク (dmake) を使用すると、多数のプログラムから構成される大規模なプロジェクトを構築する処理を、複数のワークステーション上、またはマルチプロセッサシステムの複数の CPU 上に分散させることができます。dmake ユーティリティは、メークファイルを構文解析し、次のことを行います。

dmake ユーティリティは、make ユーティリティの一種です。

dmake を理解するためには、次の事柄についての知識が必要です。

構成ファイル

dmake ユーティリティは、どの構築サーバーにジョブを分散するか、また各サーバーにどれだけのジョブを分散するかを決定する際に、2 つのファイルを参照します。

実行時構成ファイル

dmake ユーティリティは、dmake ホスト上の実行時構成ファイルにおいて、ジョブの分散先に関する情報を参照します。通常、このファイルは dmake ホストのホームディレクトリに .dmakerc という名前で格納されています。このファイルには、構築サーバーおよび各構築サーバーに分散されるジョブ数が記述されています。詳細は、dmake ホスト」を参照してください。

構築サーバー構成ファイル

構築サーバーのファイルシステム内に /etc/opt/SPROdmake/dmake.conf というファイルがあります。このファイルには、各構築サーバーに分散できる、全 dmake ユーザーによる dmake ジョブの最大合計数を指定します。また、すべての dmake ジョブの実行に適用される nice 優先度も指定できます。

詳細は、「構築サーバー」を参照してください。

dmake ホスト

dmake ユーティリティは、実行時構成ファイルを検索し、ジョブの分散先に関する情報を得ます。通常、このファイルは、.dmakerc という名前で dmake ホストのホームディレクトリに置かれている必要があります。dmake ユーティリティは、実行時構成ファイルの場所を次の順序で検索します。

  1. コマンド行で -c オプションを使って指定されたパス名

  2. DMAKE_RCFILE メークファイルマクロを使って指定されたパス名

  3. DMAKE_RCFILE 環境変数を使って指定されたパス名

  4. $(HOME)/.dmakerc

実行時構成ファイルが見つからなかった場合、dmake ユーティリティは dmake ホストに 2 つのジョブを分散します。

実行時構成ファイルは、ユーザーが編集して、構築サーバーのリストと、各構築サーバーに分散させるジョブ数を設定します。次に .dmakerc ファイルの例を示します。


# My machine. This entry causes dmake to distribute to it.
falcon			{ jobs = 1 }
hawk
eagle			{ jobs = 3 }
# Manager's machine. She's usually at meetings
heron			{ jobs = 4 }
avocet

実行時構成ファイルには、構築サーバーをグループ化して設定することもできます。この方法によって、状況に応じて構築サーバーのグループを簡単に切り替えることができます。たとえば、異なるオペレーティングシステムでの構築処理ごとにユーザーが構築サーバーグループを定義したり、特殊なソフトウェアがインストールされている構築サーバーのグループを定義することもできます。

次に、構築サーバーのグループが定義されている実行時構成ファイルの例を示します。


earth			{ jobs = 2 }
mars			{ jobs = 3 }

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 }
}

次の優先度に従って、dmake ユーティリティはジョブを分散します。

  1. コマンド行で -g オプションの引数として指定されたグループ

  2. DMAKE_GROUP メークファイルマクロを使って指定されたグループ

  3. DMAKE_GROUP 環境変数を使って指定されたグループ

  4. 実行時構成ファイルで最初に指定されたグループ

dmake ユーティリティを使用すると、構築サーバーごとに異なる実行パスを指定できます。デフォルトでは、dmake は、dmake ホストと同じ論理パスを使用して、構築サーバー上の dmake サポートバイナリファイルを検索します。.dmakerc ファイルには、次のように、構築サーバー用の別のパスをホスト属性として指定できます。


group lab1 {
			host falcon{ jobs = 10 , path = “/set/dist/sparc-S2/bin” }
			host hawk{ path = “/opt/SUNWspro/bin”																					 }
}

.dmakerc ファイルでは、グループ名およびホスト名を二重引用符で囲むことができます。文字列の一部として二重引用符を使用することで、グループおよびホストに付ける名前の制約が緩和されます。数字も英字と同様に使用できるようになります。数字で始まる名前は、次のように、二重引用符で囲む必要があります。


group “123_lab”{
			host “456_hawk”{ path = “/opt/SUNWspro/bin”																					 }
}

構築サーバー

構築サーバーのファイルシステム内に /etc/opt/SPROdmake/dmake.conf というファイルがあります。このファイルは、この構築サーバーで同時に実行できる (すべてのユーザーからの) dmake ジョブの最大数を指定するために使用します。また、すべての dmake ジョブの実行に適用される nice 優先度も指定できます。次に /etc/opt/SPROdmake/dmake.conf ファイルの例を示します。このファイルでは、1 つの構築サーバーで実行可能な (すべての dmake ユーザーからの) dmake ジョブの最大数を、 8 に設定しています。


max_jobs: 8
nice_prio: 5


注 -

構築サーバーに /etc/opt/SPROdmake/dmake.conf ファイルが存在しない場合、そのサーバーでは、dmake ジョブを実行することはできません。構築サーバーとして使用したい場合は、手動でこのファイルを作成してください。