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
放入该规则。
在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
放入该规则。