计算化学公社
标题:
求助:Slurm任务中的CPU管理
[打印本页]
作者Author:
Weldingspock
时间:
2023-9-14 11:54
标题:
求助:Slurm任务中的CPU管理
请问一下各位老师,我在自己的工作站上安装了slurm队列系统(48核,96线程),但是在运行的时候发现一个问题:假设我提交了10个vasp任务,每个任务的提交脚本如下:
#!/bin/bash
#SBATCH --job-name vasp
#SBATCH -p localhost.localdomain
#SBATCH -o vasp.out
#SBATCH -N 1
#SBATCH --ntasks-per-node=24
source /opt/intel/oneapi/setvars.sh intel64
export PATH=$PATH:/run/media/polyucmp/282ab895-d12b-4248-8357-261397bf73a6/software/vasp.6.4.2/bin/
ulimit -s unlimited
ulimit -c unlimited
export OMP_NUM_THREADS=1
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中有关于核数的配置,类似这样:
# COMPUTE NODES
NodeName=FakeNode
NodeName=node02 CPUs=32 Boards=1 SocketsPerBoard=2 CoresPerSocket=16 ThreadsPerCore=1 RealMemory=257601
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