如何解决作业分配的内核是我在 SLURM 上请求的两倍
我试图理解为什么我请求的内核数量是我的 sbatch 作业的两倍。 据我所知,我的分区有 106 个线程:
[.... snake_make]$ sinfo -p mypartition -o %z
S:C:T
2:26:2
然而,对于我的蛇形来说,sbatch 是这样设置的:
模块加载snakemake/5.6.0
蛇形-s 蛇形-四角形--cluster-config cluster.yaml --jobs 70
--cluster "sbatch -n 4 -M {cluster.cluster} -A {cluster.account} -p {cluster.partition}"
--延迟等待 10
每个作业被分配了 8 个内核而不是 4 个。当我运行 squeue 时,我看到它一次只能运行多达 12 个作业,这表明尽管我指定了它为每个作业使用了 8 个内核4 个线程。此外,当我在 XDMoD 上查看我的工作使用情况时,我发现工作中只有一半的 cpu 正在被使用。我怎样才能使用我想要的 cpu 数量而不是增加一倍,就像它目前正在运行的那样?我也试过
--ntasks=1 --cpus-per-task=4
它仍然翻了一番,达到 8。谢谢。
解决方法
Slurm 只能分配内核,不能分配线程。所以,有了这样的配置:
S:C:T
2:26:2
为每个请求的内核分配两个线程给作业。不能将两个硬件线程分配给不同的作业。
你可以试试
--ntasks=1 --cpus-per-task=2 --threads-per-core=2
但是,如果您的计算是 CPU 密集型的,这可能会使您的工作变慢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。