Memory management 作业分配两倍于我在SLURM上请求的内核
我试图理解为什么我请求的两倍数量的内核被分配到我的sbatch作业中。 据我所知,我的分区有106个线程:Memory management 作业分配两倍于我在SLURM上请求的内核,memory-management,cpu-usage,hpc,slurm,snakemake,Memory Management,Cpu Usage,Hpc,Slurm,Snakemake,我试图理解为什么我请求的两倍数量的内核被分配到我的sbatch作业中。 据我所知,我的分区有106个线程: [.... snake_make]$ sinfo -p mypartition -o %z S:C:T 2:26:2 然而,我的蛇形怪物的斯巴特设置是这样的: 模块负载蛇形图/5.6.0 snakemake-s snake\u make\u tetragonula--cluster config cluster.yaml--jobs 70 --集群“sbatch-n4-M{clu
[.... snake_make]$ sinfo -p mypartition -o %z
S:C:T
2:26:2
然而,我的蛇形怪物的斯巴特设置是这样的:
模块负载蛇形图/5.6.0
snakemake-s snake\u make\u tetragonula--cluster config cluster.yaml--jobs 70--集群“sbatch-n4-M{cluster.cluster}-A{cluster.account}-p{cluster.partition}”
--延迟等待10 每个作业分配8个核心,而不是4个。当我运行squee时,我发现它一次只能运行多达12个作业,这表明尽管我指定了4个线程,但它为每个作业使用8个内核。另外,当我查看XDMoD上的作业使用情况时,我发现作业中只有一半的CPU被使用。我怎样才能使用尽可能多的CPU,而不是像当前运行的那样使用两倍的CPU?我也试过了 --ntasks=1——每个任务的CPU=4
这一数字仍然翻了一番,达到了8。谢谢。Slurm只能分配核心,不能分配线程。因此,在这种配置下:
S:C:T
2:26:2
为每个被请求的内核分配两个线程。无法将两个硬件线程分配给不同的作业
你可以试试看
--ntasks=1 --cpus-per-task=2 --threads-per-core=2
但是,如果您的计算是CPU密集型的,这可能会使您的工作变慢。感谢您的澄清。我将每个任务的CPU设置为我根据snakemake规则调用的线程数的一半,现在我的核心数等于分配的线程数,而不是两倍。我将密切关注这些工作,看看它们是否明显较慢。