请选择 进入手机版 | 继续访问电脑版

计算化学公社

 找回密码
 现在注册!
查看: 489|回复: 13

[GROMACS] CentOS7下安装GROMACS(GPU+AVX512)的经历分享

[复制链接]

52

帖子

0

威望

264

eV
积分
316

Level 3 能力者

银河系的故事

发表于 2019-4-2 15:18:04 | 显示全部楼层 |阅读模式
本帖最后由 naoki 于 2019-4-2 15:54 编辑

我大概从去年九月份开始接触一点量化计算和分子动力学模拟,因为课题组是做膜分离方向的,整个组没有任何计算机模拟的经验,开始入门和自学全靠Sob老师的博文、论坛和QQ群了,先感谢一下Sob老师和各位大佬的帮助。对于GROMACS和Linux来说我都只是个新手,长期停留在Windows舒适区,真的会使学习模拟的速度变慢,直到Windows不能满足计算需求,我才开始尝试学习Linux系统。幸运的是我的导师允许我采购一台服务器供课题组计算使用,于是我参考了Sob老师的购机博文《计算化学购机配置推荐》(http://sobereva.com/444),敲定了配置,联系国内某服务器商家采购了一台双路服务器(第一次还是没勇气自己在淘宝上买,现在看来完全不用找这种商家),大致配置如下:

主板:超微X11DAI-N
CPU:Intel Xeon Gold 6148*2
硬盘:4TB 7200RPM SATA 机械 + 500G SSD  
内存:DDR4-2666 ECC 8*16GB   
显卡: NVIDIA RTX2080
机器是CentOS7.3的操作系统,我按照Sob老师帖子《GROMACS的安装方法(含全程视频演示)》(http://bbs.keinsci.com/thread-11821-1-1.html)尝试下载编译安装了GROMACS 2019.1和2018.6两个版本,编译过程一开始挺顺利的,但我想调用AVX512指令集和GPU加速,于是在cmake3那一步额外加了"-DGMX_SIMD=AVX_512"和"-DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda",然后就提示出错,找不到AVX_512F指令集。后来经排查发现是gcc版本过低所致,CentOS7.3自带gcc的版本是4.8.5(通过执行命令 gcc -v 可以看到),通过官网(GCC 4.8 Release Series https://gcc.gnu.org/gcc-4.8/changes.html)可以查到其支持的微指令集。
gcc4:
gcc4.8.png
可以看到gcc4不支持AVX512。
gcc5:
gcc5.png
gcc5开始支持AVX512。
而CUDA从9.0开始支持gcc6.0,CUDA10.0支持gcc6.4,所以gcc不要直接升级到7.X这样的高版本,否则CUDA可能无法支持
(CUDA官网可以查看各版本release)。
我是将gcc升级到5.5.0:



wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-5.5.0/gcc-5.5.0.tar.gz
tar -xf gcc-5.5.0.tar.gz
cd gcc-5.5.0
./contrib/download_prerequisites
mkdir gcc-build-5.5.0
cd gcc-build-5.5.0
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j
make install

strings /usr/lib64/libstdc++.so.6|grep GLIBCX
strings /usr/local/lib64/libstdc++.so.6|grep GLIBCXX
cp /usr/local/lib64/libstdc++.so.6.0.21 /usr/lib64/
cd /usr/lib64/
rm -f libstdc++.so.6
ln -s libstdc++.so.6.0.21 libstdc++.so.6
ll libstdc*

然后在cmake3这一步前加上两步:
export CC=/usr/local/bin/gcc
export CXX=/usr/local/bin/g++

编译就没问题了,本人很菜,如有错误还请大家多多指正~




评分

参与人数 2eV +13 收起 理由
少年爱吃地三鲜 + 5 好物!
sobereva + 8

查看全部评分

No problem is insoluble in all conceivable cirumstances.

110

帖子

0

威望

196

eV
积分
306

Level 3 能力者

尊贵的地三鲜骑士

发表于 2019-4-2 18:46:23 | 显示全部楼层
谢谢分享!
不爱吃地三鲜的话我们很难做朋友哦

22

帖子

0

威望

975

eV
积分
997

Level 4 (黑子)

发表于 2019-4-3 09:39:59 | 显示全部楼层
可以测试下AVX2_256与AVX512的速度差别。
因为我机子上测试发现在GPU加速时候,AVX512要略慢于AVX2_256
只有纯CPU时,AVX512才比AVX2_256快一丢丢
网上也有类似情况
所以GPU加速的话,可能AVX2_256更好一点

52

帖子

0

威望

264

eV
积分
316

Level 3 能力者

银河系的故事

 楼主| 发表于 2019-5-6 16:48:30 | 显示全部楼层
胡说 发表于 2019-4-3 09:39
可以测试下AVX2_256与AVX512的速度差别。
因为我机子上测试发现在GPU加速时候,AVX512要略慢于AVX2_256
...

GROMACS官网:“AVX_512 Skylake-X desktop and Skylake-SP Xeon processors (2017); it will generally be fastest on the higher-end desktop and server processors with two 512-bit fused multiply-add units (e.g. Core i9 and Xeon Gold). However, certain desktop and server models (e.g. Xeon Bronze and Silver) come with only one AVX512 FMA unit and therefore on these processors AVX2_256 is faster (compile- and runtime checks try to inform about such cases). Additionally, with GPU accelerated runs AVX2_256 can also be faster on high-end Skylake CPUs with both 512-bit FMA units enabled.”我今天试了下256比512慢1倍。。。
No problem is insoluble in all conceivable cirumstances.

198

帖子

2

威望

2522

eV
积分
2760

Level 5 (御坂)

发表于 2019-5-6 17:15:50 | 显示全部楼层
所以centos7环境下最好升级到gcc5.0? 看来我又要折腾了
主攻: 蛋白-蛋白对接,蛋白de novo设计、蛋白结构建模,抗体设计等方向。Rosetta/PyRosetta

52

帖子

0

威望

264

eV
积分
316

Level 3 能力者

银河系的故事

 楼主| 发表于 2019-5-6 17:45:23 | 显示全部楼层
kunkun 发表于 2019-5-6 17:15
所以centos7环境下最好升级到gcc5.0? 看来我又要折腾了

应该是这样的,安装的时候指定个其他路径不覆盖系统自带gcc感觉还好。。
No problem is insoluble in all conceivable cirumstances.

198

帖子

2

威望

2522

eV
积分
2760

Level 5 (御坂)

发表于 2019-5-6 18:02:55 | 显示全部楼层
naoki 发表于 2019-5-6 17:45
应该是这样的,安装的时候指定个其他路径不覆盖系统自带gcc感觉还好。。

提升如果真的有一倍的速度,那真的很可怕,必须升级了
主攻: 蛋白-蛋白对接,蛋白de novo设计、蛋白结构建模,抗体设计等方向。Rosetta/PyRosetta

52

帖子

0

威望

264

eV
积分
316

Level 3 能力者

银河系的故事

 楼主| 发表于 2019-5-6 18:44:32 | 显示全部楼层
kunkun 发表于 2019-5-6 18:02
提升如果真的有一倍的速度,那真的很可怕,必须升级了

等等…我刚才仔细看了一下,问题应该不出在这里。现在我最新测试的情况是:

1.对于“ -DGMX_MPI=ON”+GPU+AVX2_256,3万原子数速度90ns/day
2.对于GPU+AVX2_256,3万原子数速度50ns/day
3.对于“ -DGMX_MPI=ON”GPU+AVX_512,3万原子数速度70ns/day
4.对于GPU+AVX512,3万原子数速度45ns/day
MPI版本跑动力学系统提示:Using 1 MPI process Using 40 OpenMP threads Mapping of GPU IDs to the 1 GPU rank on this node
单机版本跑动力学系统提示:Using 8 MPI process Using 5 OpenMP threads Mapping of GPU IDs to the 8 GPU ranks on this node
不懂这个具体含义,还请各位指点。。
虽然我是单节点,但是开MPI并行之后速度确实有提升。
No problem is insoluble in all conceivable cirumstances.

52

帖子

0

威望

264

eV
积分
316

Level 3 能力者

银河系的故事

 楼主| 发表于 2019-5-6 18:46:53 | 显示全部楼层
胡说 发表于 2019-4-3 09:39
可以测试下AVX2_256与AVX512的速度差别。
因为我机子上测试发现在GPU加速时候,AVX512要略慢于AVX2_256
...

老哥你说的对,我最新的测试结果在下面,和官网说的一致,就是我不懂为啥MPI版本会更快。。
No problem is insoluble in all conceivable cirumstances.

225

帖子

4

威望

1830

eV
积分
2135

Level 5 (御坂)

发表于 2019-5-6 19:43:13 | 显示全部楼层
都手编GCC了,还说自己菜啊?楼主过谦了。

关于MPI和OpenMP的区别:MPI基于进程并行,而OpenMP基于线程。每个MPI进程间数据不共享,只有调用MPI命令时才会跨进程交换数据。而OpenMP每个线程间共享数据,会导致线程竞争的问题,解决方案一般是加锁,所以速度会比MPI慢。

52

帖子

0

威望

264

eV
积分
316

Level 3 能力者

银河系的故事

 楼主| 发表于 2019-5-6 20:05:00 | 显示全部楼层
万里云 发表于 2019-5-6 19:43
都手编GCC了,还说自己菜啊?楼主过谦了。

关于MPI和OpenMP的区别:MPI基于进程并行,而OpenMP基于线程 ...

我就是现学现卖,菜是真菜。谢谢老哥指教,对于我电脑的配置来说是不是MPI就是最佳解决方案了呢?
No problem is insoluble in all conceivable cirumstances.

1万

帖子

25

威望

2万

eV
积分
41896

管理员

公社社长

发表于 2019-5-7 08:58:05 | 显示全部楼层
naoki 发表于 2019-5-6 20:05
我就是现学现卖,菜是真菜。谢谢老哥指教,对于我电脑的配置来说是不是MPI就是最佳解决方案了呢?

可以测试都用openmp和threadMPI的情况(分别用-ntomp和-ntmpi指定多少核用这两种方式并行)。threadMPI是内置的,不用额外编译
北京科音自然科学研究中心:http://www.keinsci.com  致力于计算化学的发展和传播,不定期开办各层次量子化学、分子动力学、波函数分析与Multiwfn程序等主题的培训。欢迎加入“北京科音”微信公众号获取培训最新消息和计算化学资讯
思想家公社QQ群1号:18616395,2号:466017436。超过4000人,用于交流理论、计算化学。两个群讨论范畴相同,可加入任意其一但不可都加入,申请信息必须注明具体研究方向,否则一概不批。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(最流行的量子化学波函数分析程序)

此账号为诸Sobereva共用
Money and papers are rubbish, get a real life!

52

帖子

0

威望

264

eV
积分
316

Level 3 能力者

银河系的故事

 楼主| 发表于 2019-5-7 10:17:21 | 显示全部楼层
sobereva 发表于 2019-5-7 08:58
可以测试都用openmp和threadMPI的情况(分别用-ntomp和-ntmpi指定多少核用这两种方式并行)。threadMPI是 ...

好的Sob老师,我去试试
No problem is insoluble in all conceivable cirumstances.

225

帖子

4

威望

1830

eV
积分
2135

Level 5 (御坂)

发表于 2019-5-7 14:26:04 | 显示全部楼层
naoki 发表于 2019-5-6 20:05
我就是现学现卖,菜是真菜。谢谢老哥指教,对于我电脑的配置来说是不是MPI就是最佳解决方案了呢?

可以做个测试:保持MPI进程数*OpenMP线程数=40,取效率最高的配置。
您需要登录后才可以回帖 登录 | 现在注册!

本版积分规则

手机版|北京科音自然科学研究中心|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949-1号 )

GMT+8, 2019-5-24 10:07 , Processed in 0.169465 second(s), 28 queries .

快速回复 返回顶部 返回列表