gpt4 book ai didi

snakemake - 如何在snakemake中设置绑定(bind)内存限制

转载 作者:行者123 更新时间:2023-12-02 23:40:31 24 4
gpt4 key购买 nike

我想让 Snakemake 为各个规则设置绑定(bind)内存限制。根据snakemake文档,mem_mb参数似乎可以工作,但是该作业使用的内存比我分配的内存多。

这是一个使用几 GB 内存的简单规则。我希望规则在达到内存限制后立即停止,但它会顺利完成。

rule:
output:
"a"
threads: 1
resources:
mem_mb = 100
shell:
"""
python3 -c 'import numpy; x=numpy.ones(1_000_000_000)'
touch a
"""

是否可以绑定(bind)此限制?我想要一个可移植的、适用于 Windows 和 Linux 的解决方案。我在本地使用 Snakemake,而不是使用批处理调度程序或容器设置。

最佳答案

我对此完全没有经验,所以我真的不能说这是否是推荐的或跨平台运行良好,但这似乎适用于我的计算机(Ubuntu):

rule all:
input:
"a"

rule:
output:
"a"
threads: 1
resources:
mem_mb = 100
params:
max_mem=lambda wildcards, resources: resources.mem_mb * 1024
shell:
"""
ulimit -v {params.max_mem}
python3 -c 'import numpy; x=numpy.ones(1_000_000_000)'
touch a
"""

参见here了解更多信息。

我不相信 SnakeMake 为此提供了“开箱即用”的解决方案。

关于snakemake - 如何在snakemake中设置绑定(bind)内存限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60403990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com