单节点/多核作业的摘要脚本中是否需要使用srun?

时间:2018-11-30 20:46:19

标签: slurm

我正在运行一个非常常见的生物信息学工具/命令bowtie2-build。它可以在单个节点上使用多线程(不是MPI类型的作业)。我有以下sbatch脚本(基本上):

#!/bin/bash

#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=6
#SBATCH --mem=15G
#SBATCH --time=3:00:00

bowtie2-build --threads $SLURM_CPUS_ON_NODE GRCh38.fa GRCh38

我在某处读到,每当请求多个CPU时,都必须使用srun,以便上面的最后一行应为srun bowtie2-build ...?是真的吗我还了解到,对于MPI作业,srunmpirun均可用于启动多个进程。但是我确实需要澄清在多线程的单节点情况下使用srun的情况。感谢您的帮助!

(顺便说一句:在这种特殊情况下,我将多线程等同于多核)。

1 个答案:

答案 0 :(得分:1)

对于同节点计算(多线程等),srun不是强制性的,但使用它可以提供更好的控制和Slurm的更好反馈。

如果您的程序以srun开始,那么Slurm可以更容易地管理它(发送UNIX信号,如果它使用的资源比请求的多,则杀死它,等等),以及sstat命令将能够为您提供接近实时的内存使用情况,CPU效率等。