CentOS7编译安装gromacs-2022.3+GPU+ONEAPI
基本信息
操作系统:CentOS7.9
FFTW:3.3.10
CMAKE:3.23.5
MPI:intel的ONEAPI-2022
CUDA:根据自己机子显卡对应版本下载,这里使用11.8版本
GCC:8.3.1
PYTHON:3.6.7
所有软件百度网盘下载链接
链接:https://pan.baidu.com/s/1CV_M1ToP7y83i5M11v6b-Q?pwd=6666
提取码:6666
0. 安装依赖
yum install -y kernel-headers
yum install -y kernel-devel
yum install -y kernel-devel-kernel-devel-3.10.0-514.21.1.el7.x86_64
yum install -y gcc
yum install -y gcc-c++
yum install -y gcc-gfortran
yum install -y cmake
yum install -y blas-devel
yum install -y lapack-devel
yum install -y boost-devel
yum install -y libxml2-devel
yum install -y libpng-devel
yum install -y doxygen
1. CMAKE安装
下面安装包需要开梯子,如果下载不了,使用上面百度网盘的。
wget https://github.com/Kitware/CMake/releases/download/v3.23.5/cmake-3.23.5-linux-x86_64.tar.gz
安装
tar -xf cmake-3.23.5-linux-x86_64.tar.gz
./configure --prefix=/data/apps/cmake-3.23.5 --DCMAKE_USE_OPENSSL=OFF
gmake -j 10
gmake install -j 10 #根据自己机子核心数决定使用多少核编译,这里选择10核
2.FFTW安装
下载
wget http://www.fftw.org/fftw-3.3.10.tar.gz
安装,这里选择单精度
tar -xf fftw-3.3.10.tar.gz
#双精度
./configure --prefix=/data/apps/fftw-3.3.10 --enable-static --enable-sse --enable-sse2 --enable-avx --enable-float --enable-shared
#单精度
./configure --prefix=/data/apps/fftw-3.3.10 --enable-static --enable-sse --enable-sse2 --enable-avx --enable-shared
make -j 10
make install -j 10
3. ONEAPI安装
下载
wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18852/l_BaseKit_p_2022.3.0.8767_offline.sh
wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18679/l_HPCKit_p_2022.3.0.8751_offline.sh
wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18898/l_onemkl_p_2022.2.0.8748_offline.sh
3.1 HPCKit安装
sh l_HPCKit_p_2022.3.0.8751_offline.sh
选择Accept & customize
选择Next
鼠标移动到最后,按ctrl+回退键删除默认路径,然后输入指定路径,如果是使用默认路径选择Next,按回车
选择install,这里会提示缺什么库,按提示用yum安装即可
选择Next
选择开始安装,选择第二条
3.2 Basekit安装
跟上面步骤类似,安装路径选择/data/apps/intel
3.3 onemkl安装
跟上面步骤类似,安装路径选择/data/apps/intel
4. Python3安装
下载
wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
安装
./configure --prefix=/data/apps/python3/
make -j 10
make install -j 10
5.GCC临时环境配置
下面命令会在终端形成一个虚拟环境,gcc版本为8.3.1,退出终端后,gcc回到原版本。
yum install centos-release-scl -y
yum install devtoolset-8 -y
scl enable devtoolset-8 bash
查看gcc版本
# gcc --version
gcc (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
6.CUDA安装
安装cuda前,需要将显卡驱动安装好,可以参考网上教程。
# sh cuda_11.8.0_520.61.05_linux.run --no-opengl-libs
1、accept
2、提示是否要安装显卡驱动,去掉drive前面的X,表示不安装显卡驱动。
3、提示是否安装Toolkit,输入y。
4、选择安装路径,可根据实际情况定义,输入/public/apps/cuda-11.8。
5、提示是否需要创建软链接至/usr/local/cuda,输入y。
安装完后会出现如下提示
Please make sure that
- PATH includes /usr/local/cuda-11.8/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-11.8/lib64, or, add /usr/local/cuda-11.8/lib64 to /etc/ld.so.conf and run ldconfig as root
#这一步可以不做,后面编译Gromacs时,手动指定即可。
7. 设置环境变量
vim /data/apps/gromacs_env.sh
#!/bin/bash
# cmake
export PATH=/data/apps/cmake-3.23.5/bin:$PATH
export INCLUDE=/data/apps/cmake-3.23.5/include:$INCLUDE
export LD_LIBRARY_PATH=/data/apps/cmake-3.23.5/lib
# fftw
export PATH=/data/apps/fftw-3.3.10/bin:$PATH
export INCLUDE=/data/apps/fftw-3.3.10/include:$INCLUDE
export LD_LIBRARY_PATH=/data/apps/fftw-3.3.10/lib
# oneapi
source /data/apps/intel/oneapi/setvar.sh
# python3
export PATH=/data/apps/python3/bin:$PATH
export INCLUDE=/data/apps/python3/include:$INCLUDE
export LD_LIBRARY_PATH=/data/apps/python3/lib
8. GROMACS安装
# 第一步
source /data/apps/gromacs_env.sh # 加载上述软件环境变量
cmake .. -DGMX_MPI=ON \
-DGMX_BUILD_OWN_FFTW=OFF \
-DGMX_GPU=CUDA \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-DCUDA_INCLUDE_DIRS=/usr/local/cuda/include \
-DCUDA_CUDART_LIBRARY=/usr/local/cuda/lib64 \
-DCMAKE_INSTALL_PREFIX=/public/apps/gromacs-GPU-2022.3
# 第二步
make -j 10 # 如果多核报错,则去掉-j
# 第三步
make install -j 10
# 说明
-DGMX_MPI # 是否要开启,取决于是否需要跨节点计算,如果集群没有IB网络,可设置OFF,此时编译出来的程序名是gmx,不是gmx_mpi。
-DGMX_GPU # Gromacs软件在2021版本后,由ON修改为CUDA,注意如果只是编译CPU版本,同时服务器有安装cuda,则建议设置-DGMX_GPU=OFF。
-DCUDA_TOOLKIT_ROOT_DIR
-DCUDA_INCLUDE_DIRS
-DCUDA_CUDART_LIBRARY # 这三个参数是cuda环境变量,手动指定比较稳妥,否则会报下面常见错误1。
-DCMAKE_INSTALL_PREFIX # 指定安装路径
-DGMX_BUILD_OWN_FFTW # ON表示自动从网上下载安装,OFF表示使用本地已安装的,可使用-DFFTW_LIB=/path/to/fftw/lib/强制指定
-DGMX_DOUBLE # ON表示双精度版本,此时编译FFTW时,需要去掉--enable-float。双精度可执行文件是gmx_d,单精度的是gmx,因此单精度和双精度的可执行文件可以同时存在于同一目录,互不冲突
9. 编译错误
常见错误1
# 出现以下错误,根据第7步,指定cuda三个环境变量即可。
CMake Error at /usr/share/cmake-3.23.3/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find CUDA (missing: CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS
CUDA_CUDART_LIBRARY) (Required is at least version "11.0")
常见错误2
# 出现以下错误,按第5步,安装临时环境,临时升级GCC版本。
CMake Error in /sob/gromacs-2021.3/build/CMakeFiles/CMakeTmp/CMakeLists.txt:
Target "cmTC_90232" requires the language dialect "CXX17" , but CMake does
not know the compile flags to use to enable it.
CMake Error at cmake/gmxDetectTargetArchitecture.cmake:44 (try_compile):
Failed to generate test project build system.
Call Stack (most recent call first):
CMakeLists.txt:168 (gmx_detect_target_architecture)
常见错误3
# 出现以下错误,可能是并行编译时内存不足,去掉-j。
g++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [sql/CMakeFiles/sql_gis.dir/gis/crosses.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql_gis.dir/all] Error 2
make: *** [all] Error 2
c++: Internal error: Killed (program cc1plus)
Please submit a full bug report.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[2]: *** [sql/CMakeFiles/sql.dir/item_geofunc.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
make: *** [all] Error 2