Cluster computing slurm中的作业数组规范无效

Cluster computing slurm中的作业数组规范无效,cluster-computing,slurm,Cluster Computing,Slurm,我提交了一个玩具阵列在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 sub

我提交了一个玩具阵列在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

数组规范的语法是正确的。但是您粘贴的打印输出不是标准的Slurm,我猜您正在处理Stampede;他们有自己的备用包装

您可以使用
-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
因为

#!/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

下一步是与系统管理员联系,告知您将从运行上述测试中获得的信息,并寻求帮助。

这篇文章有点旧,但如果它发生在其他人身上,我也遇到过同样的问题,但公认的答案没有指出我的问题所在

当数组大小过大时,也会引发此错误(sbatch:error:Batch job submission failed:Invalid job array specification)

MaxArraySize

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


要检查该值,所有slurm用户都应该可以访问slurm.conf文件(仍然根据),并且可以在/etc/slurm.conf附近找到该文件(在我的例子中,请参阅路径/etc/slurm/slurm.conf)。

如果这是您的问题,请注意更新slurm.conf文件后,更改将不会通过“sudo scoontrol reconfigure”。您必须重新启动控制守护进程:“sudo systemctl restart slurmctld”。