qmake のコマンド行構文は、qrsh の構文と同じようにみえます。
% qmake [-pe pe-name pe-range][options] \ -- [gnu-make-options][target] |
-inherit オプションは、この節の後半に説明がある qmake によってもサポートされています。
-pe オプションの使用と gmake -j オプションとの関係に特に注意してください。両方のオプションは、達成する並列化の量を表すために使用できます。違いは、 gmake は -j を使用して、使用される並列環境などを指定できないことです。したがって、qmake は、make と呼ばれる並列 make 用のデフォルト環境が構成されていることを前提にします。さらに、gmake の -j では、範囲の指定はできず、1 つの数字しか設定できません。qmake は、-j によって指定された数字を 1-n の範囲として解釈します。これと対照的に、-pe ではこれらのパラメータすべてを詳細に指定できます。結果として、次の 2 つのコマンド行例の意味は同じになります。
% qmake -- -j 10 % qmake -pe make 1-10 -- |
次の コマンド行は、-j オプションを使用して表現することはできません。
% qmake -pe make 5-10,16 -- % qmake -pe mpi 1-99999 -- |
構文以外に、qmake は 2 つの呼び出しモードをサポートしています。-inherit オプションを使用せずにコマンド行から対話方式で呼び出すモードと -inherit オプションによってバッチジョブ内で呼び出すモードがあります。これらの 2 つのモードは、次のような別の処理シーケンスを開始します。
対話型 – qmake がコマンド行で呼び出されると、make プロセスは qrsh によって、暗黙的に Grid Engine システムに発行されます。プロセスは、qmake コマンド行で指定されたリソース要件を考慮します。次に Grid Engine システムは、並列 make ジョブに関連付けられた並列ジョブを実行するためのマスターマシンを選択します。Grid Engine システムは、ここで make 手続きを開始します。make プロセスがアーキテクチャーに依存している場合もあるので、手続きはここで開始しなければなりません。必要なアーキテクチャーは、qmake コマンド行に指定されています。マスターマシンの qmake プロセスが、それぞれの make 手順の実行をジョブに割り当てられているその他のホストに委託します。手順は、並列環境ホストファイルによって qmake に渡されます。
バッチ – この場合、qmake は -inherit オプションを持つバッチスクリプト内にあります。-inherit オプションがない場合は、最初の例で説明されているように、新しいジョブが生成されます。これにより、qmake は、qmake が組み込まれているジョブに割り当てられているリソースを利用することになります。qmake は、qrsh -inherit を直接使用して、 make 手順を開始します。qmake をバッチモードで呼び出すと、リソース要件の指定、-pe オプションおよび -j オプションは無視されます。
1 つの CPU ジョブでも次のように並列環境が必要です。
qmake -pe make 1 -- |
並列実行が必要ない場合は、Grid Engine システムオプションと -- のない gmake コマンド行構文で、qmake を呼び出してください。この qmake コマンドは、gmake のように動作します。
詳細は、qmake(1) のマニュアルページを参照してください。