问题描述
我最近使用的集群从SGE切换到SLURM.我想知道sbatch
选项--ntasks
和--cpus-per-task
之间的区别是什么?
The cluster that I work with recently switched from SGE to SLURM. I was wondering what the difference between sbatch
options --ntasks
and --cpus-per-task
?
--ntasks
似乎适合我运行的某些MPI作业,但似乎不适合我运行的某些OpenMP作业.
--ntasks
seemed appropriate for some MPI jobs that I ran but did not seem appropriate for some OpenMP jobs that I ran.
对于SLURM脚本中的OpenMP作业,我指定了:
For the OpenMP jobs in my SLURM script, I specified:
#SBATCH --ntasks=20
分区中的所有节点都是20核计算机,因此每台计算机只能运行1个作业.但是,每个节点上同时运行多个作业.
All the nodes in the partition are 20core machines, so only 1 job should run per machine. However, multiple jobs were running simultaneously on each node.
推荐答案
SLURM中的任务基本上是进程/mpi等级-看来您只想要一个任务.任务可以是多线程的.每辆车的cpus值是通过-c, --cpus-per-task
设置的.如man srun
中所述,如果您使用超线程,它将变得更加复杂.
Tasks in SLURM are basically processes / mpi ranks - it seems you just want a single task. A task can be multithreaded. The of cpus per taks is set via -c, --cpus-per-task
. If you use hyperthreading it becomes a little bit more complicated, as explains in man srun
.
这篇关于slurm sbatch -n和-c之间的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!