slurm中的作业数组规范无效

时间:2015-02-26 03:55:34

标签: cluster-computing slurm

我正在以浆液提交玩具阵列工作。我的命令行是

$ sbatch -p development -t 0:30:0 -n 1 -a 1-2 j1

其中j1是脚本:

#!/bin/bash
echo job id is $SLURM_JOB_ID
echo array job id is $SLURM_ARRAY_JOB_ID
echo task id id $SLURM_ARRAY_TASK_ID

当我提交此内容时,我收到错误:

--> Verifying valid submit host (login1)...OK
--> Verifying valid jobname...OK
--> Enforcing max jobs per user...OK
--> Verifying availability of your home dir (/home1/03400/myname)...OK
--> Verifying availability of your work dir (/work/03400/myname)...OK
--> Verifying availability of your scratch dir (/scratch/03400/myname)...OK
--> Verifying valid ssh keys...OK
--> Verifying access to desired queue (development)...OK
--> Verifying job request is within current queue limits...OK
--> Checking available allocation (PRJ-1234)...OK
sbatch: error: Batch job submission failed: Invalid job array specification

如果没有数组规范,相同的工作就可以正常工作:

$ sbatch -p development -t 0:30:0 -n 1 j1

2 个答案:

答案 0 :(得分:4)

这篇文章有些陈旧,但万一发生在其他人身上,我也有同样的问题,但是被接受的答案并不能说明我的问题是什么。

如果数组大小太大,也会引发此错误( sbatch:错误:批处理作业提交失败:无效的作业数组规范)。

来自https://slurm.schedmd.com/slurm.conf.html

MaxArraySize

最大作业阵列大小。最大作业数组任务索引值将比MaxArraySize小1,以允​​许索引值为零。将MaxArraySize配置为0,以禁用作业阵列使用。该值不能超过4000001。MaxJobCount的值应比MaxArraySize大得多。默认值为1001。

要检查该值,所有slurm用户都应可以访问slurm.conf文件(仍然根据1),并且可以在/etc/slurm.conf附近找到它(请参见https://slurm.schedmd.com/slurm.conf.html#lbAM,就我而言,我在路径/etc/slurm/slurm.conf中找到了它。

答案 1 :(得分:2)

数组规范的语法是正确的。但你粘贴的打印输出不是标准的Slurm,我猜你正在研究Stampede;他们有自己的sbatch包装。

您可以使用-vvv选项sbatch来查看Slurm看到的确切内容:

$ sbatch -vvv -p development -t 0:30:0 -n 1 -a 1-2 j1 |& grep array

这应该返回

sbatch: array             : 1-2

如果没有,则意味着信息在某处丢失了。

您可以尝试从提交命令行中删除数组规范并将其插入提交脚本中,如下所示:

$ sbatch -p development -t 0:30:0 -n 1 j1

j1是

#!/bin/bash
#SBATCH -a 1-2
echo job id is $SLURM_JOB_ID
echo array job id is $SLURM_ARRAY_JOB_ID
echo task id id $SLURM_ARRAY_TASK_ID

下一步是联系系统管理员,获取运行上述测试所需的信息并寻求帮助。