代码改变世界

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 ,编译就会通过了,后来发现很多这种问题都可以通过这种方法解决,可能是自己电脑的问题!