如何解决SLURM 上的内核如何与 Snakemake 的内存和线程分配相关?
我无法理解分配给蛇形作业的线程和资源如何转化为 slurm 分区上每个蛇形作业分配的内核数。我在运行我的蛇文件的 .sh 上将 --cores 标志设置为 46, 然而,5 个蛇形作业中的每一个都在同时运行,每个都提供了 16 个内核。特定于规则的线程号是否取代了蛇形的 --cores 标志?我认为这是我所有工作都必须使用的最大核心数...
此外,内核是否基于内存分配,并且是否与指定的线程数成比例?例如,我的作业分配了 10GB 内存,但只有一个线程。根据我的 SLURM 输出,每个作业都有两个核心。当我指定 8 个线程和 10GB 内存时,我得到了 16 个内核。这是否与我为我的工作分配的内存量有关,还是只是为每个线程提供了一个额外的核心用于内存目的?任何帮助将不胜感激。
这是蛇的工作输出之一:
Building DAG of jobs...
Using shell: /usr/bin/bash
Provided cores: 16
Rules claiming more threads will be scaled down.
Job counts:
count jobs
1 index_genome
1
[Tue Feb 2 10:53:59 2021]
rule index_genome:
input: /mypath/genome/genomex.fna
output: /mypath/genome/genomex.fna.ann
jobid: 0
wildcards: bwa_extension=.ann
threads: 8
resources: mem_mb=10000
这是我的 bash 命令:
module load snakemake/5.6.0
snakemake -s snake_make_x --cluster-config cluster.yaml --default-resources --cores 48 --jobs 47 \
--cluster "sbatch -n {threads} -M {cluster.cluster} -A {cluster.account} -p {cluster.partition}" \
--latency-wait 10
解决方法
当您将 slurm 与 snakemake 一起使用时,不幸的是,--cores
标志不再表示 cores,而是表示 jobs.. 所以当您设置 {{ 1}} 您实际上是在告诉 snakemake 最多使用 48 个并行作业。
相关问题: Behaviour of "--cores" when using Snakemake with the slurm profile
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。