我在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个工作?
几点想法......:
喜欢(没有经过测试,只是得到了想法):
for i in {1..30}
do
sbatch --wrap "sleep 30 && touch test${i}.tmp"
done