我正在运行一个非常常见的生物信息学工具/命令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 工作,要么srun
or mpirun
可用于启动多个进程。但我确实需要澄清使用srun
在单节点多线程的情况下。谢谢你的帮助!
(顺便说一句:在这个特定的上下文中,我将多线程与多核等同起来)。
对于同节点计算(多线程等)srun
不是强制性的,但使用它可以提供更好的控制和来自 Slurm 的更好的反馈。
如果你的程序是这样启动的srun
,Slurm 会更容易管理它(发送 UNIX 信号,如果它使用的资源多于请求的资源则终止它,等等),并且sstat
命令将能够为您提供近乎实时的内存使用情况、CPU 效率等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)