几个月前,组里来了两台DELL Precision 7920 Tower工作站,用于运行MD模拟。老师费了好大劲也没把环境配置好,遂于某天让我帮忙。1年多前(2020年1月),我曾尝试在Ubuntu 18.04 LTS上编译GROMACS、AMBER等MD程序,没有完全成功。那时对Linux几乎一窍不通,不过,经过1年多在计算机/IT领域各种方向上的折腾,感觉自己的水平已经可以对付上述工作。在拥挤的小屋子里折腾近10小时,又经过半个多月的试用,大约的确是成功了罢,遂应老师要求写了个安装教程。
这次的OS是Ubuntu Desktop 20.04.2 LTS,以下是要编译/安装的主要程序:
CUDA Toolkit 11.2.2;GROMACS 2020.6;FFTW 3.3.9
0 安装依赖
sudo apt update && sudo apt -y install vim gcc g++ cmake libblas-dev liblapack-dev
sudo apt -y install hwloc doxygen doxygen-doc doxygen-gui graphviz # 可不安装
sudo pip3 install sphinx -i https://pypi.tuna.tsinghua.edu.cn/simple/ # 可不安装
1 安装CUDA Toolkit 11.2.2
nvidia-smi # 确认NVIDIA GPU驱动支持CUDA 11.2及以上版本
cd ~/packages
chmod 755 cuda_11.2.2_460.32.03_linux.run
sudo ./cuda_11.2.2_460.32.03_linux.run
稍等,待安装脚本加载完毕后,在终端对话框中选择continue
,回车
输入accept
,回车
使光标在“+[x]Driver
”上,按空格取消选中
光标移至Install
,回车,等待安装完毕
sudo vim /etc/profile
,在末尾添加以下内容并保存:
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
export CUDA_HOME="/usr/local/cuda:$CUDA_HOME"
重新登录终端,使用nvcc -V
查看CUDA环境
2 编译FFTW3.3.9
sudo -i
cd /opt
wget
http://www.fftw.org/fftw-3.3.9.tar.gz
tar zxvf fftw-3.3.9.tar.gz
cd fftw-3.3.9
./configure --prefix=/opt/fftw3.3.9 --enable-sse2 --enable-avx --enable-float --enable-avx2 --enable-shared # 若CPU支持AVX512指令集,且有多于1个AVX512 FMA单元,则可加上--enable-avx512以进一步提升性能
make -j install
3 编译GROMACS 2020.6(单节点单精度、单节点双精度、单节点单精度CUDA加速)
cd /opt
wget
ftp://ftp.gromacs.org/gromacs/gromacs-2020.6.tar.gz
tar zxvf gromacs-2020.6.tar.gz
mkdir gromacs-2020.6/build
cd gromacs-2020.6/build
export CMAKE_PREFIX_PATH=/opt/fftw3.3.9
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gmx2020.6.cuda -DGMX_GPU=CUDA # 若安装单节点单精度无GPU加速版本,删去黄色高亮部分,将绿色高亮部分CUDA改为OFF即可;若安装单节点双精度版本,则应先安装单节点单精度版本,后修改并重复步骤2(删去黄色高亮部分),本步命令相应改为:
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gmx2020.6 -DGMX_DOUBLE=ON
make -j install # 若RAM少于16GB,可使用-j8或-j12等以调用较少线程,防止RAM不够
exit # 退出root用户
4 完成安装
vim ~/.bashrc
,在末尾添加以下内容并保存:
source /opt/gmx2020.6.cuda/bin/GMXRC
重新登录终端,使用gmx -version
检查GROMACS信息
小声bb:之后还编译了AmberTools 20,这东西属实阴间,以后有空再发出来罢。
2021-12-03更新:AmberTools21 + Amber20编译安装教程已发布。
2022-02-06更新:今天在一大堆机器上编译GROMACS 2020.7和2021.5,写了个简易的bash脚本捏😇
#!/bin/bash ### 在root用户下运行, 运行前先按下方注释中的命令安装依赖, 再根据NVIDIA提供的标准流程安装与所需编译的GMX兼容的CUDA Toolkit ### apt update ### apt -y install wget vim gcc g++ cmake libblas-dev liblapack-dev python-is-python3 python3-pip python3-tk ### pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/ ### pip3 install sphinx package_path='/home/username/packages/' gmx_version='2021.5 2020.7' fftw_version='3.3.10' nthread='64' cd /opt tar -zxvf "$package_path"'/fftw-'"$fftw_version"'.tar.gz' cd 'fftw-'"$fftw_version" ./configure --prefix=/opt/'fftw'"$fftw_version" --enable-sse2 --enable-avx --enable-float --enable-avx2 --enable-avx512 --enable-shared make -j"$nthread" install ./configure --prefix=/opt/'fftw'"$fftw_version" --enable-sse2 --enable-avx --enable-avx2 --enable-avx512 --enable-shared make -j"$nthread" install cd .. export CMAKE_PREFIX_PATH=/opt/fftw"$fftw_version" for ver in $gmx_version do tar -zxvf "$package_path"'/gromacs-'"$ver"'.tar.gz' mkdir 'gromacs-'"$ver"/build cd 'gromacs-'"$ver"/build cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gmx"$ver".cuda -DGMX_GPU=CUDA make -j"$nthread" install cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gmx"$ver" -DGMX_GPU=OFF make -j"$nthread" install cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gmx"$ver" -DGMX_DOUBLE=ON make -j"$nthread" install cd ../.. done
2022-07-09更新:今日GROMACS 2021.6发布,修复了与GPU update相关的重要bug,建议在生产环境中使用此版本。
文章评论