我有一个可以在 slurm 中运行的脚本。该脚本与 job-array aftercorr 一起使用,或者至少这是我想要它做的。基本上它运行第一个作业数组没有任何问题,但是,它无法识别命令--dependendy=aftercorr。我对 slurm 很陌生,你能帮我理解这个错误的原因吗?是否由于操作系统没有可用的命令而导致错误?或者我的脚本可能有错误?
下面是 bash 脚本的主线,然后是我收到的错误。
$ArrayAID=$(sbatch --array=1-5 Job_0.sh)
echo "Job-Array (script_0) id: ${ArrayAID}"
sbatch --array=1-5 --dependendy=aftercorr:$ArrayAID Job_1.sh
输出:
sbatch: unrecognized option '--dependendy=aftercorr:'
Try "sbatch --help" for more information
辛西娅
我尝试以交互模式运行它,并在 bash 中搜索 --help,但它并没有提供太多信息。我也想看看网上有什么,但我还是没有。
您在帖子中始终将
--dependency
拼写为 --dependendy
。我假设这是一个仅出现在 StackOverflow 消息中的拼写错误。
输出
$ArrayAID=$(sbatch --array=1-5 Job_0.sh)
将是
ArrayAID
将包含 Submitted job XXXXX
,其中 XXXXX
是作业 ID,并且 $ArrayAID
将扩展为 Submitted
。因此,下一行将显示类似
sbatch --array=1-5 --dependendy=aftercorr:Submitted Job_1.sh
这是一个错误,因为 Slurm 需要的是作业 ID,而不是“已提交”一词。
将
--parsable
选项添加到第一个 sbatch call
:
$ArrayAID=$(sbatch --parsable --array=1-5 Job_0.sh)
使用该选项,
sbatch
将仅输出作业ID(以及集群名称(如果存在);在这种情况下,您将必须进一步调整该行)并且ArrayAID
将包含预期的作业ID
这是新行:
ArrayAID=$(sbatch --parsable --array=1-5 Job_0.sh)
echo "Job-Array. ID: ${ArrayAID}"
echo ""
sbatch --array=1-5 --dependency=aftercorr:${ArrayAID} Job_1.sh