如何解决分批提交snakemake作业
我有一个运行 python 脚本的 Snakefile,它在一个目录中输出许多文件。我写了下面的 Snakefile 脚本来执行这个
MODELS = ["A","B","C"]
SEEDS = [1,2,3]
rule all:
input:
expand("outputs/{model}/seed{seed}",model=MODELS,seed=SEEDS)
rule sub:
input:
{model}.py
output:
directory("outputs/{model}/seed{seed}")
run:
command = "python3 {} --seed {}".format(input,wildcards.seed)
shell(command)
每个 python 脚本文件 A.py
、B.py
和 C.py
都会执行数小时。
我希望能够使用 sbatch 提交作业,而无需等待它完成执行。
$ snakemake --cluster "sbatch --job-name=snakemake" --jobs 200 --latency-wait 1000
当我执行以下命令时,某些文件没有运行,Snakemake 也没有终止。
我尝试编写一个包含上述蛇形命令并执行 sbatch script.sh
的 bash 脚本,但没有在 Snakefile 中提交作业。
有没有办法不用snakemake等待sbatch作业完成执行?
解决方法
这不是一个完美的解决方案,但您是否尝试过 --immediate-submit
标志?它只会将所有作业提交给 slurm,而不考虑依赖项,也无需等待。通常,您会为 sbatch 提供一个包装器,它将蛇形依赖项转换为 SLURM 依赖项,但对于像这样的简单工作流(即只有一个规则运行多次),如果没有它,您可能会逃脱。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。