bap*_*ors 6 memory resources snakemake
在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} "
Run Code Online (Sandbox Code Playgroud)
Snakefile我想通过执行以下操作来限制整体的内存使用:
snakamake --snakefile mysnakefile_snakefile --resources mem_mb=100000
Run Code Online (Sandbox Code Playgroud)
因此,并非所有作业都会使用100GB每个作业(如果我有 5 个规则,即500GB内存分配),但它们的所有执行都将是最大的100GB(5 个作业,100 GB分配总数?)
命令行参数设置总限制。Snakemake调度程序将确保对于正在运行的作业集,资源总和mem_mb不会超过总限制。
我想这正是你想要的,不是吗?您只需在规则本身中设置每个作业的预期内存即可。请注意,Snakemake 不会为您测量这一点。您必须在规则中自己定义该值。例如,如果您希望您的作业使用 100MB 内存,请输入mem_mb=100该规则。