服务器软件的安装,现有:
- cuda
- hoomd
- gromacs
- TBD: vmd,galamost,anaconda, MaterialStudio, Origin,EndnoteX8
服务器软件在centos7.0
及以上版本安装测试通过;win软件在win10
下测试通过。将这些软件的安装放到一起,方便自己和组内人用。
服务器软件的安装
安装cuda
- 安装cuda经常会遇到问题,但大部分都与如何禁用nouveau驱动相关,所以step-1,需要禁用nouveau驱动。
- 在配置文件中禁用nouveau
vi /etc/modprobe.d/blacklist.conf
添加:blacklist nouveau
CentOS 7:
vim /usr/lib/modprobe.d/dist-blacklist.conf
并且在加上blacklist nouveau
之后还要加上一行options nouveau modeset=0
- 备份原来的
initramfs nouveau image
镜像
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
- 创建新的
initramfs image
镜像
dracut /boot/initramfs-$(uname -r).img $(uname -r)
注:重启后会发现终端界面字体变大了,不清晰了,表示nouveau
禁用成功。 - 所有安装已经完成,重新启动机器。
- 在配置文件中禁用nouveau
- 单独安装
nvidia
驱动./NVIDIA-Linux-x86_64-384.90-1080ti.run
需要注意几点:- cuda安装包本身包含两个部分:
cuda-toolki
t和nvidia driver
,再安装cuda的时候是可以选择只安装cuda-toolkit
,而省略nvidia driver
的(甚至可以从cuda中抽出单独的部分作为一个安装包) - 1080Ti的显卡需要较新的驱动384.90来支持
- 安装完成后一定要用命令查看一下显卡状态
nvidia-smi
,如果有错误提示,则安装有问题。
- cuda安装包本身包含两个部分:
- 安装cuda
./cuda_9.0.176_384.81_linux-run
不需要装driver
hoomd
本地编译hoomd-1.3.3及以下版本
(1) mkdir build 然后进入build
(2) cmake -Wno-dev ../ -DCMAKE_INSTALL_PREFIX=$HOME/.local/hoomd -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=On -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda -DENABLE_MPI_CUDA=On -DENABLE_MPI=On -DPYTHON_EXECUTABLE=`which python2`
(3) make install -j8
注意事项:
1. 确保默认python的是用系统自带的python2
2. 如果编译并行版本的话,需要安装openmpi,并且做好环境变量
anaconda安装二进制hoomd包
anaconda安装的hoomd实际上是anaconda云端已经编译好的hoomd,任何相关包都是依赖于anaconda,如cuda、并行库等。
conda install hoomd=1.3.3
可以将hoomd以一个子包的形式安装到anaconda的软件相关目录下,如果hoomd=1.3.3
的版本号不加,则安装最新版(最新版与2.0之前的版本差别较大,新版本的发展已经失去了控制。。。,比如没有xml支持,这简直不能忍!)
当然有时候我们联网并不方便,因为服务器一般与外网是隔绝的,大概为了安全(这时候可以用proxychains联网)。这时候可以将hoomd相关包下载下来本地conda安装。
需要四个包boost-1.59.0-glotzer_py35_6.tar.gz, hoomd-1.3.3-py35_1.tar.gz, mpich2-1.4.1p1-0.tar.gz, mpich-3.2-5.tar.gz
然后按顺序
conda install boost-1.59.0-glotzer_py35_6.tar.gz
conda install mpich2-1.4.1p1-0.tar.gz
conda install mpich-3.2-5.tar.gz
conda install hoomd-1.3.3-py35_1.tar.gz
在anaconda3环境下编译hoomd
现在conda intall安装的预编译的二进制包默认是双精度的,而我们做的模拟大部分是不需要双精度的。关于这个问题,我发信问过作者,他们后面也不会考虑出单精度的预编译包。下面的步骤将hoomd_v2.3.5便以为anaconda python3版本的一个子包,放到site-pakcages中。
conda需要预先安装一些包:
conda install sphinx git mpich2 numpy cmake pkg-config sqlite cmake
然后编译命令
cmake ../ ../ -DMKL_LIBRARIES=$HOME/.local/software/anaconda3_4.2.0/lib/
-DCMAKE_INSTALL_PREFIX=$HOME/.local/hoomd -DCMAKE_CXX_FLAGS=-march=native -DCMAKE_C_FLAGS=-march=native -DENABLE_CUDA=ON -DENABLE_MPI_CUDA=ON -DENABLE_MPI=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda -DSINGLE_PRECISION=ON -DBUILD_MD=ON -DBUILD_DEPRECATED=ON -DCMAKE_BUILD_TYPE=Release -DUPDATE_SUBMODULES=NO -DPYTHON_EXECUTABLE=`which python` -DBUILD_TESTING=NO -DMPI_HOME=~/.local/software/anaconda3_4.2.0/bin/
# mpi要确保是anaconda的
# python要制定为anaconda的,或者默认的路径
# Tesing单元测试有点问题,不要编译进去。
anaconda创建intel distribution python (idp)环境,并编译安装hoomd
intel环境编译安装hoomd有两个原因:
- idp组件有intel的优化,尤其在mkl的并行方面做的很好,代码在一定规则下书写可以自动并行。
- 经测试,idp环境编译的hoomd确实比源anaconda环境编译的速度快些,稳定性好些。
- ipython的启动,包的加载也有部分加速
安装idp环境
conda update conda
conda config --add channels intel
conda create -n idp intelpython3_full python=3
source activate idp
安装hoomd
cmake .. \
-DMKL_LIBRARIES=$HOME/.local/software/anaconda3_4.2.0/envs/idp/lib \
-DCMAKE_INSTALL_PREFIX=$HOME/.local/hoomd \
-DCMAKE_CXX_FLAGS=-march=native \
-DCMAKE_C_FLAGS=-march=native \
-DENABLE_CUDA=ON \
-DENABLE_MPI_CUDA=ON \
-DENABLE_MPI=ON \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-DSINGLE_PRECISION=ON \
-DBUILD_MD=ON \
-DBUILD_DEPRECATED=ON \
-DCMAKE_BUILD_TYPE=Release \
-DUPDATE_SUBMODULES=NO
备注:
- \换行符必须空一格,否则
sh
运行脚本失败 - mpi仍然不好用,需要找时间解决
gromacs安装
安装步骤
Note:
- 需要已经安装
cuda
,确认cuda
安装的路径。默认路径为/usr/local/cuda
- 需要
openmpi-2.0.2.tar.gz
,fftw-3.3.6-pl2.tar.gz
,gromacs-5.1.4.tar.gz
三个软件包,去官网下载最新的即可。为了方便大家,这里放上我的坚果云分享链接,openmpi, fftw-3.3.6, gromacs-5.1.4,可以直接下载 - 三个软件需要按顺序安装,
openmpi
-fftw
-gromacs
。安装目录在本教程中为用户主目录下的.local
目录,以openmpi
为例,安装目录为/home/jxm/.local/openmpi
安装命令:
$ tar -xvf openmpi-2.0.2.tar.gz
$ cd openmpi-2.0.2
$ mkdir build && cd build
$ ../configure --prefix=$HOME/.local/openmpi/ --enable-mpi-thread-multiple --with-cuda=/usr/local/cuda
$ make -j24
$ make install
$ PATH=$HOME/.local/openmpi/bin:/usr/local/cuda/bin/:$PATH
$ export LD_LIBRARY_PATH=$HOME/.local/openmpi/lib:$LD_LIBRARY_PATH
$ tar -xvf fftw-3.3.6-pl2.tar.gz
$ cd fftw-3.3.6-pl2
$ mkdir build && cd build
$ ../configure --enable-shared --enable-float --enable-mpi --enable-threads --enable-openmp --enable-sse2 --enable-avx --prefix=$HOME/.local/fftw
$ make -j24
$ make install
$ export CPPFLAGS=-I$HOME/.local/fftw/include
$ export LDFLAGS=-$HOME/.local/fftw/lib
$ tar -xvf gromacs-5.1.4.tar.gz
$ cd gromacs-5.1.4
$ mkdir build && cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local/gromacs -DGMX_GPU=on -DGMX_MPI=on -DGMX_SIMD=AVX2_256 -DGMX_FFT_LIBRARY=fftw3 -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda -DCMAKE_PREFIX_PATH=$HOME/.local/fftw
$ make -j24
$ make install
现在软件安装完毕,最后进行环境变量设置
$ cd ~ && vim .bashrc
将下列几行写入.bashrc
文件并保存
CPPFLAGS=-I/home/jxm/.local/fftw/include
LDFLAGS=-I/home/jxm/.local/fftw/lib
PATH=$HOME/.local/openmpi/bin:/usr/local/cuda/bin/:$PATH
LD_LIBRARY_PATH=$HOME/.local/openmpi/lib:$LD_LIBRARY_PATH
PATH=$HOME/.local/gromacs/bin/:$PATH
source 一下
source ~/.bashrc
安装出现的问题1:
"nvcc fatal: Unsupported gpu architecture 'compute_20'"
这是因为cuda9.0不再支持计算能力为20的Fermi架构了,点此查看各型号GPU计算能力,但是gromacs的安装包总的makefile文件并没有去除这一项。解决方法很简单,找到相应makefile中的sm_20项删除即可。
打开解压缩的gromacs软件包中的相应文件:
gromacs-5.1.4/cmake/gmxManageNvccConfig.cmake
注释掉第204行的list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_20,code=sm_20")
即可正常编译。(ps: 这段代码实际上是先确定cuda版本,然后确定支持的计算架构(计算能力),正常新的cuda版本是向下兼容的,但是cuda9.0不支持比较老的compute_20的Fermi架构)
galamost 安装
单机版
Note: 我们大部分时候并不用并行的,所以安装单卡版即可。
step1: 安装boost库
给出安装脚本boost_install.sh(和boost压缩包的坚果云下载链接, boost_install.sh脚本中的一些参数可以根据需要修改,如安装路径,默认是/opt/boost-1.59
step2: 编译galamost源码
给出最新的galamost源码坚果云下载链接
./configure --prefix=/opt/galamost4 --boost=/opt/boost-1.59
make install -j 24
echo 'export PATH=/opt/galamost4/bin/:$PATH' >> ~/.bashrc # j加下环境变量
并行版本
./configure CFLAGS=-fPIC --disable-mcast --enable-shared --enable-mpi-thread-multiple --with-ib-include=/opt/libibverbs/include --with-ib-libpath=/opt/libibverbs/lib --with-cuda=/usr/local/cuda --enable-cuda --prefix=/opt/mvapich2
./configure --boost=/home/jxm/.local/software/anaconda3_5.3.0/envs/py27/include/boost
--cuda=/usr/local/cuda --gpu_mpi=on --cuda-arch=61
网友评论