计算化学公社

标题: Gromacs运行速度计算节点远小于登陆节点的问题求助 [打印本页]

作者
Author:
Cadmus    时间: 2022-4-15 12:50
标题: Gromacs运行速度计算节点远小于登陆节点的问题求助
本帖最后由 Cadmus 于 2022-4-15 13:21 编辑

各位老师们好!我在超算上安装了GROMACS-2018,但是遇到了运行速度计算节点远小于登陆节点(同时也是测试节点)的问题,请各位老师赐教!
具体的问题以及我的处理如下:
我模拟的体系为核酸-水体系,使用显式溶剂模型,共约40000个原子。
登陆节点 CPU:Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz (一个节点为20个核,40个逻辑核)
计算节点 CPU:Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz  (一个节点为32个核,不作超线程使用)
操作系统:CentOS Linux release 7.6.1810 (Core)
首先我根据社长的《GROMACS安装方法》(http://bbs.keinsci.com/thread-11821-1-1.html)在登陆节点进行安装,使用了AVX2_256指令集。在测试节点运行NPT模拟,速度约50ns/day,使用的指令如下:

#gmx mdrun -ntmpi 1 -mtomp 32 -deffnm DNA_npt

之后使用PBS提交任务,申请使用1个节点32个核,使用的命令与上述相同。
但是此时跟踪gromacs产生的log文件,发现速度很慢,速度约只有0.5ns/day。
检查log文件时发现下面这句话:

#Highest SIMD level requested by all nodes in run: AVX_512                                                                                 
SIMD instructions selected at compile time:       AVX2_256                                                                                
This program was compiled for different hardware than you are running on,                                                                  
which could influence performance. This build might have been configured on a                                                            
login node with only a single AVX-512 FMA unit (in which case AVX2 is faster),                                                            
while the node you are running on has dual AVX-512 FMA units.

因此我怀疑是由于计算节点的CPU与登陆节点的CPU不同的缘故,并参考《 CentOS7下安装GROMACS(GPU+AVX512)的经历分享》(http://bbs.keinsci.com/thread-12687-1-1.html)安装的新的gcc(我只做到了make install那一步,后面需要覆盖原先gcc的步骤没有做),通过提交任务脚本的方式提交到计算节点安装gromacs(计算节点目前不能使用ssh登陆),并使用AVX_512指令集,顺利编译与安装。
之后再次将运行任务提交到计算节点,发现速度依然很慢,同样也大概0.5ns/day,检查log文件又发现了下面这句话:

#Highest SIMD level requested by all nodes in run: AVX2_256                                                                                 
SIMD instructions selected at compile time:       AVX_512                                                                                 
This program was compiled for different hardware than you are running on,                                                                  
which could influence performance.This host supports AVX-512, but since it                                                                 
only has 1 AVX-512FMA unit, it would be faster to use AVX2 instead.

请问各位老师这样应该怎么处理?谢谢老师们!

作者
Author:
abin    时间: 2022-4-15 13:41
你用到了一种可能的且是有效的解决方案.

没有达到效果, 显然是操作问题.

而且能也没有展示, 你所使用的脚本全部内容....

也没有明确提交集群的硬件架构方案.
集群又不是仅有CPU和内存就可以了.
作者
Author:
Cadmus    时间: 2022-4-15 14:16
本帖最后由 Cadmus 于 2022-4-15 14:25 编辑
abin 发表于 2022-4-15 13:41
你用到了一种可能的且是有效的解决方案.

没有达到效果, 显然是操作问题.

老师您好!感谢老师的回复!我提交的安装脚本如下:
  1. #!/bin/bash
  2. #PBS -l nodes=1:ppn=8
  3. #PBS -q qlong
  4. #PBS -o /data/home/../gromacs.out
  5. #PBS -e /data/home/../gromacs.err

  6. export CC=/data/home/../gcc-5/bin/gcc
  7. export CXX=/data/home/../gcc-5/bin/g++
  8. export LD_LIBRARY_PATH=/data/home/../gcc-5/lib64:$LD_LIBRARY_PATH
  9. export CMAKE_PREFIX_PATH=/data/home/../FFTW/fftw

  10. cd /data/home/../gromacs-2018.8/build
  11. cmake .. -DCMAKE_INSTALL_PREFIX=/data/home/../gromacs -DGMX_SIMD=AVX_512
  12. make install
复制代码


提交运行任务的脚本如下:
  1. #!/bin/bash
  2. #PBS -l nodes=1:ppn=32
  3. #PBS -q qlong
  4. #PBS -o /data/home/../DNA.out
  5. #PBS -e /data/home/../DNA.err

  6. export LD_LIBRARY_PATH=/data/home/../gcc-5/lib64:$LD_LIBRARY_PATH

  7. cd /data/home/../DNA/
  8. gmx mdrun -ntmpi 1 -ntomp 32 -deffnm DNA_npt
复制代码



对于集群硬件架构,由于是直接使用的学校的超算,我也不是很清楚,学校超算上的网站也多年没有信息更新,也没有找到类似的信息。

作者
Author:
abin    时间: 2022-4-15 16:11
Cadmus 发表于 2022-4-15 14:16
老师您好!感谢老师的回复!我提交的安装脚本如下:

提交运行任务的脚本如下:

集群硬件架构,
你先参考一下 https://gitee.com/hpc4you/hpc 里面PDF文档中的图2, 图3.

另外, 你仔细对比一下前后两次的警告信息.

按照你的描述, 干活节点,  应该是至少使用AVX512呀,
怎么后面提示你, 使用AVX2更佳呢.

请确认, 所有干活节点, 都支持AVX512指令集吗?


最后的问题, 可能在于读写, 也就是I/O瓶颈.

GMX需要I/O支撑吗?

不过以上的技术支持, 应该是该超算平台提供的呀....

作者
Author:
sobereva    时间: 2022-4-15 17:12
分别在两个节点上编译,指令集都统一成AVX2_256再比
并且不要用-ntmpi 1,否则光靠OpenMP并行在核多的时候速度拉胯
作者
Author:
Cadmus    时间: 2022-4-15 18:29
abin 发表于 2022-4-15 16:11
集群硬件架构,
你先参考一下 https://gitee.com/hpc4you/hpc 里面PDF文档中的图2, 图3.

感谢老师的回复!
我在超算上查询了一下各个节点的CPU,均为Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz,这个型号的CPU应该均支持AVX_512指令集。
我也对刚开始提示用AVX_512指令集更佳,等到在计算节点编译后却又提示用AVX2_256指令集感到疑惑,但可以确定所有计算节点都支持AVX_512指令集。
对于I/O瓶颈也确实在以前的一些帖子上看到过有的老师说过这个问题,但是不知道会不会让速度慢到0.5ns/day,效率有点太低了。我会向超算管理员老师反应一下这种可能性,请求他的技术支持。
非常感谢老师的建议!
作者
Author:
Cadmus    时间: 2022-4-15 18:29
sobereva 发表于 2022-4-15 17:12
分别在两个节点上编译,指令集都统一成AVX2_256再比
并且不要用-ntmpi 1,否则光靠OpenMP并行在核多的时候 ...

感谢sob老师的回复!我会根据您的建议再试一下,非常感谢老师!




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