2016-06-12 3 views
2

に-tオプションを理解する文書は、正確に-tオプションは、ドキュメントからqsubはqsubの

http://docs.adaptivecomputing.com/torque/4-0-2/Content/topics/commands/qsub.htm

使用してジョブの投入にやっていることに少しは不明である:

- tジョブ配列のタスクIDを指定します。単一のタスク配列は許されます。 array_request引数は、整数のIDまたは整数の範囲です。 複数のIDまたはID範囲をカンマ区切りリストで組み合わせることができます。 例:-t 1-100または-t 1,10,50-100

ここで物事がうまくいかない例は、私は2つのノード、ノードあたり8つのプロセスを要求し、そして16のジョブの配列てきたのです。私は2つのノードに自然に分散されることを期待していましたが、16のタスクは2つ以上のノードにアドホックに分散されていました。

$ echo 'hostname' | qsub -q gpu -l nodes=2:ppn=8 -t 1-16 
52727[] 
$ cat STDIN.o52727-* | sort 
gpu-3.local 
gpu-3.local 
gpu-3.local 
gpu-3.local 
gpu-5.local 
gpu-5.local 
gpu-5.local 
gpu-5.local 
gpu-5.local 
gpu-5.local 
gpu-7.local 
gpu-7.local 
gpu-7.local 
gpu-7.local 
gpu-7.local 
gpu-7.local 
+0

どのスケジューラを使用しますか? – clusterdude

答えて

1

私は、これは完全にあなたの質問に答えない疑いがあるが、正確に何を達成したいと考えては不明なままです。

qsub -tでアレイを指定すると、すべて同じプライマリIDを持つ個々のジョブが作成されます。指定した方法を送信すると16のジョブが作成され、それぞれが合計16のコアを要求します。この構文は、送信ループをスクリプト化することなく、すぐに多数のジョブを一度に提出することを容易にします。単独のトルク(すなわち、スケジューラを無視)して

、あなたはこのような何かを言うことによって、特定のノードにジョブを強制することができます。

qsubの-lノード= GPU-node01:PPN = 8 + GPU-とnode02:PPNを= 8

さらに高度なスケジューラを使用すると、MoabやMauiではスケジューリング時にジョブにNODEALLOCATIONPOLICY EXACTNODEを適用する「-l nodes = 2:ppn = 8、nallocpolicy = exactnode」を許可し、あなたはちょうど2つのノード(この場合は2つのノードすべて)上にそれぞれ8つのコアを配置します。

+1

ありがとう、それは役に立ちます。その間、私は 'pbsdsh'を見つけました。このオプションは、-tオプションなしでノードにコマンドを配布することについて知っておくと便利です。 –

関連する問題