我编写了 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 的值)上同时执行多个作业的能力
#SBATCH -n 1
#SBATCH --mem-per-cpu=10gb
#SBATCH --ntasks=1
-n
和--ntasks
相同,则只能使用其中之一。请参阅sbatch 手册页