我有一个工作流,它需要一个令人尴尬的并行步骤,对于一个slurm集群来说,该步骤具有不同的资源需求(内存和时间(。我根据文档装饰了工作流程:
rule freebayes:
...
resources:
mem = lambda wildcards, attempt: attempt * 6144,
time = lambda wildcards, attempt: attempt * 12 * 60
...
这是成功提交的,并且正确地请求了内存需求,但time
需求在配置文件中设置为默认值。在日志中,它似乎还可以:
resources: mem=6144, time=720
我还尝试以字符串形式请求时间:
time = lambda wildcards, attempt: str(attempt * 12) + ":00:00"
它也提交了ok,但仍设置为默认时间。
我做错了什么?
我刚刚注意到我做错了什么。由于以下行,我的cluster.json覆盖了请求:
"__default__":
{
"time": "24:00",
},
我去掉了它,现在它工作得很好。