当先前尚未在SLURM集群上完成时,使用snakemake提交新作业

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

我在Snakemake集群上运行SLURM,我遇到了这样的问题:集群允许我一次只提交一个数字(大约20个)。运行snakemake.sh之后:

#!/bin/bash

INPUT_DIR=...

snakemake -j 190 --latency-wait 1000 --cluster-config cluster.json --
cluster "sbatch -A {cluster.A} -p {cluster.p} -t {cluster.time} --
output {cluster.output} --error {cluster.error} --nodes {cluster.nodes}
--ntasks {cluster.ntasks} --cpus-per-task {cluster.cpus} --mem {cluster.mem}"

运行20个作业(不是190个),所以我最终等待所有20个完成然后重新运行脚本。这显然不是最佳的。让我们说15个工作已完成,但有5个工作仍在运行,有没有办法以某种方式提交额外的15个工作?

hpc slurm snakemake
1个回答
1
投票

几点想法......:

  • 您确定在之前的工作完成之前可以提交其他工作吗?例如,下游作业可能需要输入前20个作业生成的文件。这可能是合并文件的规则的情况。
  • 你说群集允许我一次只提交一个(大约20个)作业。也许检查问题是集群而不是snakemake。尝试提交一堆虚拟作业,看看slurm是否在队列中接受它们,

喜欢(没有经过测试,只是得到了想法):

for i in {1..30}
do
    sbatch --wrap "sleep 30 && touch test${i}.tmp" 
done
© www.soinside.com 2019 - 2024. All rights reserved.