计算化学公社

标题: openacc编译的GPU加速vasp多个任务只占用同一个cpu的问题 [打印本页]

作者
Author:
gaozx    时间: 2024-5-21 14:25
标题: openacc编译的GPU加速vasp多个任务只占用同一个cpu的问题
本帖最后由 gaozx 于 2024-5-21 16:01 编辑

问题:多个GPU加速VASP任务同时跑,只会占用同一个CPU

通过slurm作业系统sbatch命令提交或者mpirun方式直接运行结果都一样,同时调用任意数量的GPU,cpu占用都是对的,当两个或者两个以上单卡GPU加速的任务同时运行,只会占用CPU0,多个任务平均分配CPU0的性能,例如,两个单卡GPU加速的任务同时运行,各占用CPU0的50%的性能。

机器配置:
7048GR准系统
处理器:2637 v4 * 2
内存:ddr4 16g * 4
显卡:P100 * 4
编译方式:nvidia_hpc_sdk + intel mkl,makefile.include见附件
(, 下载次数 Times of downloads: 3) (, 下载次数 Times of downloads: 0) (, 下载次数 Times of downloads: 1)

slurm提交作业脚本:
#!/bin/bash
#SBATCH -o vasp.out
#SBATCH -J opt
#SBATCH -p node01
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --gres=gpu:1

#intel_oneapi_2024
source /opt/intel/oneapi_2024/setvars.sh intel64 > /dev/null

#nv-hpcsdk
export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/cuda/12.2/targets/x86_64-linux/lib:$LD_LIBRARY_PATH
export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/bin:$PATH
export MANPATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/man:$MANPATH
export MANPATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/comm_libs/mpi/man:$MANPATH
export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/lib:$LD_LIBRARY_PATH
export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/comm_libs/openmpi4/bin:$PATH
export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/extras/qd/lib:$LD_LIBRARY_PATH

export OMP_NUM_THREADS=1

mpirun -np 1 /opt/vasp/openacc_vasp.6.4.2/vasp_std


(, 下载次数 Times of downloads: 48)
同时跑两个调用单卡GPU的任务,两个任务占用同一个CPU核心

(, 下载次数 Times of downloads: 50)

跑一个调用两张P100显卡的任务,一个任务正常占用两个CPU核心

作者
Author:
abin    时间: 2024-5-21 15:51
修改 gres.conf

具体看slurm手册.
作者
Author:
gaozx    时间: 2024-5-21 15:58
abin 发表于 2024-5-21 15:51
修改 gres.conf

具体看slurm手册.

感谢回复!不通过slurm作业系统提交,直接mpirun也存在同样的问题。
作者
Author:
abin    时间: 2024-5-21 16:05
gaozx 发表于 2024-5-21 15:58
感谢回复!不通过slurm作业系统提交,直接mpirun也存在同样的问题。

你又没有手动指定处理器,
凭啥自动分派?
作者
Author:
abin    时间: 2024-5-21 16:13
本帖最后由 abin 于 2024-5-21 16:17 编辑

另外,
请查阅硬件配置.

4个GPU,
有两个在第一颗处理器上;
另外两个GPU在第二颗处理器上.

你可能需要手动指定GPU和cpu_core之间的绑定;
或者修改slurm配置, 指定GPU和cpu_core之间的绑定关系.



另外, 如果你的主板, 还接驳有其他的PCIe设备, 这个机器的PCIe通道, 可能数量不足呢.





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