【问题标题】:Is srun needed in a sbatch script for a single node/multicore job?单节点/多核作业的 sbatch 脚本中是否需要 srun?
【发布时间】:2018-12-03 16:31:02
【问题描述】:

我正在运行一个非常常见的生物信息学工具/命令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。感谢您的帮助!

(顺便说一句:在这个特定的上下文中,我将多线程等同于多核)。

【问题讨论】:

    标签: slurm


    【解决方案1】:

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

    如果您的程序以srun 启动,Slurm 将更容易管理它(发送 UNIX 信号,如果它使用的资源多于请求,则终止它等),并且sstat 命令将能够为您提供近乎实时的内存使用情况、CPU 效率等。

    【讨论】:

    • 感谢您的解释,帮了大忙!
    猜你喜欢
    • 1970-01-01
    • 2021-01-27
    • 2020-04-17
    • 1970-01-01
    • 2022-12-14
    • 2017-10-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多