如何解决“选择要执行的作业...”字面上永远运行
我有一个相当复杂的工作流程,包含 750 个样本和大约 18.000 个作业,起初snakenmake 运行得很好,但在大约 4.000 个作业之后它突然冻结,并在重新启动时挂起“选择要执行的作业...”24 小时,之后我终止了它。不过,最初的 DAG 构建大约需要 2-3 分钟。
当我使用 --verbose
选项运行 snakemake(v5.32.0 和 v5.32.1)时,我得到了大量与此类似的行:
Cbc0010I After 600 nodes,304 on tree,-52534.791 best solution,best possible -52538.194 (7.08 seconds
我试图删除 .snakemake
文件夹,希望那里发生了一些事情,但不幸的是,事实并非如此。对我来说,CBC MILP 求解器似乎并没有收敛,它不断地将最佳和最佳解决方案更紧密地结合在一起!?
现在我不知道如何继续和解决问题了。我可能的解决方案是以某种方式改变收敛标准或求解器本身。在手册中,我找到了选项 --scheduler-ilp-solver
,但它显然只有一个选项,即默认的 COIN_CMD
。
在终止(较短的)运行后,我得到了这个详细的输出
Result - User ctrl-cuser ctrl-c
Objective value: 52534.79114334
Upper bound: 52538.202
Gap: -0.00
Enumerated nodes: 186926
Total iterations: 1807277
Time (cpu seconds): 1181.97
Time (Wallclock seconds): 1188.11
接下来我将尝试限制工作流程中的样本数量,看看这是否有任何影响(对于其他有 500 个样本的数据集,它运行没有任何问题(使用 5.24 版的蛇形模型),但是 DAG 构建需要一些小时。因此,我不是很想尝试旧版本。)
因此,非常感谢您对如何解决问题的任何想法。另外,我什至不知道,如果这是一个错误!?
EDIT 实际上,我认为这是当前版本中的一个错误,我将 Snakemake 降级回 5.24 版,它在 10 分钟内创建了 DAG 并开始运行管道。因此,显然最新版本存在一些错误。我会回答我自己的问题,因为降级到旧版本解决了这个问题......
解决方法
实际上,我认为这是当前snakemake版本中的一个错误,我将Snakemake降级回5.24版本,它在10分钟内创建了DAG并开始运行管道。因此,显然最新版本存在一些错误。我会回答我自己的问题,因为降级到旧版本解决了这个问题......
,我也在较小的工作流程(总共约 1500 个作业)和 6.0.2 版本的 snakemake 中遇到了这个问题。当工作流卡住时,大约有一半的作业已经运行,并且拒绝运行更多作业。看起来这是 ILP 求解器特有的问题,因为当我使用 --scheduler greedy
重新运行时,它运行良好。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。