Snakemake WorkflowError: Failed to group jobs together
Snakemake WorkflowError: Failed to group jobs together
背景: 我必须将我的 Snakemake 管道从单节点使用调整为具有资源管理的集群。使用 SLURM 特定的 Snakemake 配置文件,我的规则作为 SLURM 作业成功提交,因此我继续将 Snakemake 指令 resources
添加到每个非本地规则以优化队列调度。这些设置被采纳,我的管道按预期完成。
示例:
rule ruleA:
group: "group_1_init"
resources:
cpus=1,
time="00:04:00"
rule ruleB:
group: "group_1_init"
resources:
cpus=1,
time="00:05:00"
ruleA
和 ruleB
作为单个作业提交到计算节点。
问题: 我的管道有许多小型的、单一的 CPU 作业,我使用 Snakemake 规则指令 group
将它们合并。这是错误:
WorkflowError:
Failed to group jobs together. Resource time is a string but not all group jobs require the same value. Observed: 00:05:00 != 00:04:00.
我想,每个组应该只有一个 resource
设置,但我找不到关于其背后逻辑的在线资源。
问题:如何在组作业中定义不同的资源需求?应该例如time
反映整组作业的计算时间或者Snakemake在组内求和规则时间作为SLURM作业提交的参数。对于 cpus
,这将是所有规则中的最大 CPU。
如果不通过附加脚本进行参数转换,资源 time
必须是 整数 并被解释为 分钟 .这是更正:
rule ruleA:
group: "group_1_init"
resources:
cpus=1,
time=4
rule ruleB:
group: "group_1_init"
resources:
cpus=1,
time=5
背景: 我必须将我的 Snakemake 管道从单节点使用调整为具有资源管理的集群。使用 SLURM 特定的 Snakemake 配置文件,我的规则作为 SLURM 作业成功提交,因此我继续将 Snakemake 指令 resources
添加到每个非本地规则以优化队列调度。这些设置被采纳,我的管道按预期完成。
示例:
rule ruleA:
group: "group_1_init"
resources:
cpus=1,
time="00:04:00"
rule ruleB:
group: "group_1_init"
resources:
cpus=1,
time="00:05:00"
ruleA
和 ruleB
作为单个作业提交到计算节点。
问题: 我的管道有许多小型的、单一的 CPU 作业,我使用 Snakemake 规则指令 group
将它们合并。这是错误:
WorkflowError:
Failed to group jobs together. Resource time is a string but not all group jobs require the same value. Observed: 00:05:00 != 00:04:00.
我想,每个组应该只有一个 resource
设置,但我找不到关于其背后逻辑的在线资源。
问题:如何在组作业中定义不同的资源需求?应该例如time
反映整组作业的计算时间或者Snakemake在组内求和规则时间作为SLURM作业提交的参数。对于 cpus
,这将是所有规则中的最大 CPU。
如果不通过附加脚本进行参数转换,资源 time
必须是 整数 并被解释为 分钟 .这是更正:
rule ruleA:
group: "group_1_init"
resources:
cpus=1,
time=4
rule ruleB:
group: "group_1_init"
resources:
cpus=1,
time=5