如何使用 slurm 请求仅一个核心而不是一个节点或插槽?

如何使用 slurm 请求仅一个核心而不是一个节点或插槽?

我编写了 Perl 脚本来分析我的模拟数据。这不是一个并发程序。集群中有八个节点。每个节点有 2 个套接字,每个套接字有 10 个核心。我想使用泥浆仅有的请求一个核心来执行分析。因此,我可以在一个节点上提交更多(20)个作业。但是,我无法实现这个目标。以下是我的脚本。

#!/bin/sh
#SBATCH -n 1
#SBATCH --mem-per-cpu=10gb
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH -t 45-00:00:00
#SBATCH -J 9430%j
#SBATCH -o 9430.out
#SBATCH -e 9430.err

/cm/shared/scripts/wcnqn.auto.pl

wcnqn.auto.pl我的程序在哪里。9430是用作文件名的 atomID。

系统信息:

  • CentOS 7
  • 集群管理:Bright Cluster Manager
  • 节点数:8
  • 每个节点的插槽数:2
  • 每插槽核心数:10
  • 每个节点的 RAM:125GB

任何帮助和进一步的评论都将不胜感激。

答案1

你的脚本看上去不错。

但许多集群设置为仅使用节点来执行一项作业。因此,如果您提交此作业的集群设置为每个节点仅运行一项作业,则无法在脚本或命令行中设置选项来规避这种情况。

在较新的 Slurm 版本中,分区 OverSubscribe 参数

控制分区在每个资源(节点、套接字或核心,取决于 Select‐TypeParameters 的值)上同时执行多个作业的能力

slurm.conf 手册页

#SBATCH -n 1
#SBATCH --mem-per-cpu=10gb
#SBATCH --ntasks=1

-n--ntasks相同,则只能使用其中之一。请参阅sbatch 手册页

相关内容