计算化学公社

标题: 求助:Slurm任务中的CPU管理 [打印本页]

作者
Author:
Weldingspock    时间: 2023-9-14 11:54
标题: 求助:Slurm任务中的CPU管理
请问一下各位老师,我在自己的工作站上安装了slurm队列系统(48核,96线程),但是在运行的时候发现一个问题:假设我提交了10个vasp任务,每个任务的提交脚本如下:
  1. #!/bin/bash

  2. #SBATCH --job-name vasp
  3. #SBATCH -p localhost.localdomain
  4. #SBATCH -o vasp.out
  5. #SBATCH -N 1
  6. #SBATCH --ntasks-per-node=24


  7. source /opt/intel/oneapi/setvars.sh intel64
  8. export PATH=$PATH:/run/media/polyucmp/282ab895-d12b-4248-8357-261397bf73a6/software/vasp.6.4.2/bin/

  9. ulimit -s unlimited
  10. ulimit -c unlimited
  11. export OMP_NUM_THREADS=1

  12. mpirun -np 24 vasp_std


复制代码

1.我之前在slurm.conf设置了SelectType=SELECT/LINEAR,这样的话我的电脑上每次只能运行一个24核的任务
2.之后我改成了
SelectType=SELECT/CONS_RES,SelectParameters=CR_Core。这样的话能同时运行4个任务,但是每个任务的时间被大大延长了。猜测是超线程的原因?(96个线程每个任务24线程,互相影响)
想请问一下各位slurm.conf里应该怎么改才能让48核的机器每次最多只能运行两个24核的任务呢,这样也不会有线程之间的互相影响,能大大提升速度。求指点!



作者
Author:
abin    时间: 2023-9-14 12:49
本帖最后由 abin 于 2023-9-14 14:30 编辑

先关闭, 关闭超线程……


或者, 合理使用 srun -c -N -n等参数. 涉及openMP+MPI混合并行.

作者
Author:
snljty2    时间: 2023-9-14 16:01
一个不太优雅的方法,--ntasks-per-node=48就完了。另外可能还得设置一下线程绑定之类的。
作者
Author:
万里云    时间: 2023-9-14 16:59
在/etc/slurm/slurm.conf中有关于核数的配置,类似这样:
  1. # COMPUTE NODES
  2. NodeName=FakeNode
  3. NodeName=node02 CPUs=32 Boards=1 SocketsPerBoard=2 CoresPerSocket=16 ThreadsPerCore=1 RealMemory=257601
  4. NodeName=node04 CPUs=32 Boards=1 SocketsPerBoard=2 CoresPerSocket=16 ThreadsPerCore=1 RealMemory=257601
复制代码
在这里指定CPUs=48是最好的,既可以利用超线程,又不会超过48个物理核。

作者
Author:
Weldingspock    时间: 2023-9-14 17:03
万里云 发表于 2023-9-14 16:59
在/etc/slurm/slurm.conf中有关于核数的配置,类似这样:
在这里指定CPUs=48是最好的,既可以利用超线程, ...

非常感谢您的建议!




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3