5

我在使用 slurm 的 HPC 上运行蛇形管道。管道相当长,由大约 22 个步骤组成。在尝试提交作业时,snakemake 会定期遇到问题。这会导致错误

sbatch: error: Batch job submission failed: Socket timed out on send/recv operation
Error submitting jobscript (exit code 1):

我通过带有以下snakemake调用的sbatch文件运行管道

snakemake -j 999 -p --cluster-config cluster.json --cluster 'sbatch --account {cluster.account} --job-name {cluster.job-name} --ntasks-per-node {cluster.ntasks-per-node} --cpus-per-task {threads} --mem {cluster.mem} --partition {cluster.partition} --time {cluster.time} --mail-user {cluster.mail-user} --mail-type {cluster.mail-type} --error {cluster.error} --output {cluster.output}' 

这不仅会产生snakemake sbatch 作业的输出,还会产生snakemake 创建的作业的输出。上述错误出现在 sbatch 文件的 slurm.out 中。

错误指示的特定作业步骤将成功运行,并给出输出,但管道失败。作业步骤的日志显示作业 ID 运行没有问题。我用谷歌搜索了这个错误,它似乎经常发生在 slurm 中,尤其是当调度程序处于高 IO 下时,这表明这将是不可避免的且经常发生的。我希望有人遇到过这个问题,并且可以提供解决方法的建议,这样整个管道就不会失败。

4

1 回答 1

4

snakemake 有一个选项--max-jobs-per-second--max-status-checks-per-second默认参数为 10。也许尝试减少它们以减少调度程序的压力?另外,也许尝试减少-j 999

于 2019-10-24T06:35:34.217 回答