【问题标题】:sbatch: error: Batch job submission failed: Socket timed out on send/recv operation when running Snakemakesbatch:错误:批处理作业提交失败:运行 Snakemake 时,套接字在发送/接收操作时超时
【发布时间】:2019-10-23 16:32:21
【问题描述】:

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

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

我通过 sbatch 文件运行管道,并使用以下 snakemake 调用

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 下时,这表明这将是不可避免的和经常发生的。我希望有人遇到过这个问题,并且可以提供解决方法的建议,这样整个管道就不会失败。

【问题讨论】:

  • 也许-j 999snakemake 试图为集群的容量提交过多的作业?

标签: sockets slurm snakemake sbatch


【解决方案1】:

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

【讨论】:

  • 添加 --max-jobs-per-second 和 --max-status-checks-per-second 并减少到 5 解决了问题。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2020-01-18
  • 2016-06-14
  • 1970-01-01
  • 1970-01-01
  • 2014-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多