我可以递归调用sbatch吗?

问题描述 投票:0回答:2

我想运行一个程序来运行并创建一个检查点文件。然后我想运行几个从该检查点开始的变体配置。

例如,如果我运行:

sbatch -n 1 -t 12:00:00 --mem=16g program.sh

并且

program.sh
看起来像这样:

#!/bin/sh

./set_checkpoint

sbatch -n 1 -t 12:00:00 --mem=16g cpt_restore_config1.sh
sbatch -n 1 -t 12:00:00 --mem=16g cpt_restore_config2.sh
sbatch -n 1 -t 12:00:00 --mem=16g cpt_restore_config3.sh
sbatch -n 1 -t 12:00:00 --mem=16g cpt_restore_config4.sh

这样能达到预期的效果吗?

slurm sbatch
2个回答
0
投票

是的。如果您将 bash 脚本作为 slurm 作业执行,则所有 bash 命令都是合法的 - 包括提交新的 slurm 作业。


0
投票

根据评论,似乎 sbatch 由于某种原因不能保证递归工作。我最近遇到了类似的问题,我可以通过从启动主脚本的同一个 shell 运行主脚本来绕过该限制。在您的情况下,这意味着使用

source program.sh
而不是
sbatch program.sh

© www.soinside.com 2019 - 2024. All rights reserved.