centos7安装Amber16 && AmberTools
2018-04-16 17:46 丨o聽乄雨o丨 阅读(5881) 评论(0) 编辑 收藏 举报Centos7 安装amber16
1.准备下载好的amber(Amber16.tar.bz2)及tools(AmberTools16.tar.bz2)安装包:
$ cd MySoftware_home
$ tar xvfj Amber16.tar.bz2
$ tar xvfj AmberTools16.tar.bz2
两个压缩包会解压到一个名为amber16的文件夹里
2.设置AMBERHOME主目录环境变量:
1 $ export AMBERHOME=/home/myname/amber16 # (for bash, zsh, ksh, etc.) 别忘记更改myname为自己的用户名
3.安装依赖的软件及软件库:
1 $ sudo yum install gcc gcc-gfortran gcc-c++ flex tcsh zlib-devel bzip2-devel libXt-devel libXext-devel libXdmcp-devel tkinter openmpi openmpi-devel perl perl-ExtUtils-MakeMaker
4. 切换到amber目录,执行编译脚本:
$ cd $AMBERHOME $ ./configure --help # 执行此命令可以看到不同的编译模式,不同的参数设置,我以前也什么都不懂,看完后理解就好很多 $ ./configure gnu # 使用gcc编译器编译
# 如果安装过程中不想使用miniconda安装python,则可以自己指定python路径,python的版本有要求,注意查看
$ ./configure --with-python ~/Programs/Python-2.7.15/bin/python gnu
此命令会产生出amber.sh和amber.csh文件,这两个文件可以用于添加amber所需的环境变量。
5.添加可执行文件,python,库等环境变量信息:
$ source amber.sh # 添加环境变量信息,也可以自己手动在~/.bashrc中添加
6.编译安装:
$ make install # 编译安装
7.编译测试:
$ make test # 编译测试
$ make clean # 删除make临时文件,不然做下一步make时会报错
8.多线程(openmpi)编译安装:
8.1 下载openmpi1.[5-9]安装包:
网址:https://www.open-mpi.org/software/ompi/v1.6/
版本要求在$AMBERHOME/AmberTools/src/configure_openmpi中有说明, mpidirs=`/bin/ls -d openmpi-1.[5-9]*/ 2>/dev/null | tail -n 1`
8.2 解压openmpi解压到 $AMBERHOME/AmberTools/src:
$ tar zxvf openmpi-1.6.5.tar.gz
8.3 在src目录编译,(如果本身系统已经装了openmpi合适版本,which mpirun命令返回openmpi的目录即可,就可以忽略8.2及8.3步骤):
1 $ ./configure_openmpi gnu (intel) # 编译,此命令会产生出amber.sh和amber.csh文件,这两个文件可以用于添加amber所需的环境变量。
8.4 添加环境变量(在前文定义好了amber相关环境变量的基础上):
$ source $AMBERHOME/AmberTools/src/amber.sh
也可以手动添加环境变量:
1 $ export MPI_HOME=$AMBERHOME/AmberTools 2 $ export PATH=$PATH:$MPI_HOME/bin 3 $ export LD_LIBRARY_PATH=$MPI_HOME/lib:$LD_LIBRARY_PATH 4 $ export DO_PARALLEL="mpirun -np 4" # Note the value below may depend on your MPI implementation,因为某些测试中需要用到的线程较多,所以最好设置4个或8个
8.5 配置openmpi后,回到$AMBERHOME编译amber:
$ cd $AMBERHOME $ ./configure -mpi gnu
# 用自己python的情况
$ ./configure -mpi --with-python ~/Programs/Python-2.7.15/bin/python gnu
8.6 Amber安装测试:
$ make install $ make test
$ make clean
9.GPU版本编译安装:
9.1 显卡驱动及cuda8.0安装:
可参见链接:https://www.cnblogs.com/mar-q/p/7482720.html
设置环境变量,尤其是要设置CUDA_HOME:
#CUDA export CUDA_HOME=/usr/local/cuda
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib:$LD_LIBRARY_PATH
9.2 切换到amber目录,编译:
$ cd $AMBERHOME $ make clean $ ./configure -cuda gnu $ ./configure -cuda -mpi gnu
9.3 安装测试
$ make install
$ make test
注:单行版及串行版都需要编译,这样可执行程序才会不缺少。
错误解决:
1. 如果编译过程出现Fatal Error: File 'netcdf.mod' opened at (1) is not a GFORTRAN module file错误:
这个错误需要回到$AMBERHOME/include文件夹内,把所有的netcdf.*文件全部删除,然后再重复上面的步骤5-6
2. make install过程中出现一个奇怪的错误,编译安装时,安装程序暂停止在以下命令,并且一天都跑不过去:
( cd parmed && /home/wangq/Programs/amber16/bin/amber.python setup.py install --no-setuptools -f --prefix=/home/wangq/Programs/amber16 --install-scripts=/home/wangq/Programs/amber16/bin )
按下 ctrl+c 大约5次,结束会程序,并报下面错误:
[wangq@localhost parmed]$ /home/wangq/Programs/amber16/bin/amber.python setup.py install --no-setuptools -f --prefix=/home/wangq/Programs/amber16 --install-scripts=/home/wangq/Programs/amber16/bin Traceback (most recent call last): File "setup.py", line 145, in <module> version=versioneer.get_version(), File "/home/wangq/Programs/amber16/AmberTools/src/parmed/versioneer.py", line 1427, in get_version return get_versions()["version"] File "/home/wangq/Programs/amber16/AmberTools/src/parmed/versioneer.py", line 1401, in get_versions pieces = from_vcs_f(cfg.tag_prefix, root, verbose) File "/home/wangq/Programs/amber16/AmberTools/src/parmed/versioneer.py", line 1068, in git_pieces_from_vcs pieces["distance"] = int(count_out) # total number of commits ValueError: invalid literal for int() with base 10: "spawn ssh git@172.16.25.11\r\ngit@172.16.25.11's password: \r\n^Z^Z^Z^C"
经过多天的解决及google,还是没有发现解决问题的方法。。。
偶然情况下,在命令暂停时,按了多次 ctrl+z 及一次 ctrl+c 及多次 enter 后,编译过程进行到了下一步:
running install
running build
running build_py
但是程序又会停止在这一步,不动了。。偶然尝试,又按一次 ctrl+c 后,编译竟然顺利通过。
最后通过尝试,确定了解决方法,即:
当程序卡在第一阶段时,按一次 ctrl+c ,再按多次 enter ,就会到达第二阶段,然后再按多次 enter ,编译就会通过了,后来发现很多这种问题都可以通过这种方法解决,可能是自己电脑的问题!