我正在使用Slurm的HPC上运行snakemake管道。流水线相当长,由〜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}'
这不仅会生成蛇形派发作业的输出,而且还会生成蛇形创建的作业的输出。上面的错误出现在sbatch文件的slurm.out中。
错误指示的特定作业步骤将成功运行,并提供输出,但是管道失败。作业步骤的日志显示,作业ID运行正常。我已经用谷歌搜索了这个错误,并且它似乎经常出现之以鼻,尤其是在调度程序处于较高IO的情况下,这表明这将是不可避免的且经常发生的错误。我希望有人遇到此问题,并可以提供解决方法的建议,以使整个管道不会失败。
答案 0 :(得分:2)
snakemake的选项--max-jobs-per-second
和--max-status-checks-per-second
的默认参数为10。也许尝试减小它们以减少调度程序的负担?另外,也许尝试减少-j 999
?