2016-08-27 10 views
7

私はSLURMを使っていくつかのコンピューティングクラスタを使用していましたが、それは-ntasksまたは-nでした。それ(http://slurm.schedmd.com/sbatch.html)のために、私は明らかにドキュメントを読んでいる:SLURMで--ntasksまたは-nタスクは何をしますか?

sbatchは、タスクを起動しない、それは資源 の割り当てを要求し、バッチスクリプトを提出します。このオプションは、Slurmコントローラ に、割り当て内で実行されるジョブステップが最大で 個のタスクを起動し、十分なリソースを提供することを通知します。デフォルトはノードあたり1つのタスクが ですが、 - per-taskオプションは になります。私はそれが何を意味するのか理解していない特定の部分がある

:割り当て内

ラン数タスクの最大を起動し、 十分なリソースを提供するために。

私はいくつかの質問があります:

  1. 私は私の最初の質問は何を単語が「タスク」を意味すると差がSLURMの文脈で単語「仕事」であるんだと思いますが。私は通常ジョブをsbatch my_batch_job.shのようにsbatchでbashスクリプトを実行するものと考えています。どのようなタスクが意味するのか分からない。
  2. もし私が仕事と単語を同じにするなら、それは-n, --ntasks=<number>への引数に従って、同じ同じbashスクリプトを何度も実行したと思いました。しかし、私は明らかにそれをクラスタでテストしたところ、を--ntask=9で実行し、sbatchがstdoutに9回エコーを返すと予想していました(これはslurm-job_id.outで収集されましたが、驚いたことに、echo helloスクリプトこのコマンドは、さらに何をするのでしょうか?何もしないか、やっていると仮定いただきました!少なくとも私が見ることができないようです。

私は-a, --array=<indexes>オプションは、複数のジョブのために存在を知っています。それは異なっています私は単に--ntasksが何をするかを知りたいと思っています。理想的には、私がクラスタでテストできるように例を挙げてください。

答えて

7

"--ntasks"オプションは、実行されるコマンドのインスタンス数を指定します。 共通のクラスタ設定で、 "srun"でコマンドを開始すると、これはMPIランクの数に相当します。

"--cpus-per-task"オプションは、各タスクが使用できるCPUの数を指定します。

あなたの出力も私を驚かせます。スクリプトやsrunでコマンドを起動しましたか? は、スクリプトは次のようになりん:

#!/bin/bash 
#SBATCH --ntasks=8 
## more options 
echo hello 

スクリプトのみ提出ノードではない労働者で実行されるので、これは、常に出力のみ、単一の行をする必要があります。

スクリプトは

#!/bin/bash 
#SBATCH --ntasks=8 
## more options 
srun echo hello 

のように見える場合SRUNは、ワーカーノード上で、あなたのコマンドを実行するスクリプトを引き起こし、結果として、あなたはハローの8行を取得する必要があります。

関連する問題