Snakemake内存限制

Snakemake memory limiting

Snakemake中,我有5条规则。对于每个,我都通过 resources mem_mb 选项设置内存限制。 它看起来像这样:

rule assembly:
     input:
         file1 = os.path.join(MAIN_DIR, "1.txt"), \
         file2 = os.path.join(MAIN_DIR, "2.txt"), \
         file3 = os.path.join(MAIN_DIR, "3.txt")
     output:
         foldr = dir, \
         file4 = os.path.join(dir, "A.png"), \
         file5 = os.path.join(dir, "A.tsv")
     resources:
         mem_mb=100000
     shell:
         " pythonscript.py -i {input.file1} -v {input.file2} -q {input.file3} --cores 5 -o {output.foldr}  "

我想限制整个 Snakefile 的内存使用,方法如下:

snakamake --snakefile mysnakefile_snakefile --resources mem_mb=100000

所以并不是所有的作业都会使用 100GB(如果我有 5 条规则,意思是 500GB 内存分配),但是它们的所有执行都将是最大的 100GB(5职位,总共 100 GB 分配?)

命令行参数设置总限制。 Snakemake 调度程序将确保对于 运行 个作业集,mem_mb 资源的总和不会超过总限制。

我想这正是您想要的,不是吗?您只需要在规则本身中设置每个作业的预期内存。请注意,Snakemake 不会为您测量这一点。您必须在规则中自己定义该值。例如,如果您希望您的作业使用 100MB 内存,请将 mem_mb=100 放入该规则。