计算化学公社

标题: 计算机调用gpu少,计算进度慢,请指点问题出在哪里 [打印本页]

作者
Author:
jia1012428    时间: 2023-11-1 11:50
标题: 计算机调用gpu少,计算进度慢,请指点问题出在哪里
我的gromac的软件环境为:
MPI和编译器版本:intel oneapi 2023.2
数学库:intel MKL
调度系统:slurm
gromacs版本:2023.1


slurm作业提交脚本,请见附件,信息我也列在下面
slurm作业提交脚本
#!/bin/sh
#SBATCH -p P3               # Px对应Ux
#SBATCH --job-name=gromacs
##SBATCH --output=job-%j.log
##SBATCH --error=job-%j.err
#SBATCH -N 1 -n 8 -c 1        # -n 8里面的8根据需要修改
#SBATCH --mem-per-cpu=1100
#SBATCH --gres=gpu:1


module load gcc
source /data/opt/intel/oneapi/setvars.sh
module load gromacs-gpu/2023.1



mpirun gmx_mpi mdrun -ntomp 1 -nsteps 100000000 -pin on -nb gpu -s md_0_1.tpr




异常现象:程序能够正常执行,大概一个进程占用257MB的显存,前10分钟程序对GPU的占用可以达到95%以上,但是后期对GPU的占用率比较低,很少能跑满GPU;对CPU的占用能够达到100%


gmx_mpi -version的详细信息也有图片


请问老师,这个问题怎么解决








作者
Author:
laoman    时间: 2023-11-2 19:23
如果是常规MD,不推荐跨GPU并行,或者在单个GPU内调用MPI并行。

单个节点如果有多张显卡,我觉得可以跑多个gmx(没有mpi后缀,编译开CUDA,开openmp,关MPI),每个gmx占用一个显卡。如果你懒得编译一个新的GMX,可以用multidir跑多个任务。如你截图显示的只有两张显卡,那就是一个节点跑两个体系,可以这样提交任务:
#!/bin/sh
#SBATCH -p P3              
#SBATCH --job-name=gromacs
##SBATCH --output=job-%j.log
##SBATCH --error=job-%j.err
#SBATCH -N 1 -n 2 -c 8
......
mpirun -np 2 gmx_mpi mdrun -ntomp 8 -nsteps 100000000 -s prod -multidir md_dir_1 md_dir_2


作者
Author:
jia1012428    时间: 2023-12-8 11:02
收到,谢谢我研究一下
作者
Author:
jia1012428    时间: 2023-12-8 11:02
laoman 发表于 2023-11-2 19:23
如果是常规MD,不推荐跨GPU并行,或者在单个GPU内调用MPI并行。

单个节点如果有多张显卡,我觉得可以跑 ...

谢谢,我研究一下




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