docker下使用centos6.6 安装vasp5.4步骤

由于Intel编译器支持的服务器系统列表为:

Supported operating systems for this
release include:
    - Red Hat Enterprise Linux* 4.0, 5.0, 6.0 (IA-32/Intel(R) 64)
    - Fedora* 15 (IA-32/Intel(R) 64)
    - SuSE Linux* Enterprise Server* 10.x, 11.0 SP1(IA-32/Intel(R)64)
    - Asianux* Server 3.0, 4.0 (IA-32/Intel(R) 64)
    - Ubuntu* 10.04 LTS, 11.04 (IA-32/Intel(R) 64)
    - Debian 6.0 (IA-32/Intel(R) 64)

只有centos(Red Hat Enterprise Linux)6.6是存在官方的docker镜像,所以,我们在这里使用centos6.6进行安装

[注意]

  • 服务器内存不能少于2G,否则将会编译错误
  • 在安装过程中,系统不能重启。否则部分环境变量将失效。

使用docker安装centos6.6

启动
#sudo docker build centos:6.6 ./
#sudo docker run -d --name {contanername} -v localpath:remotepath -t centos:6.6 '/bin/bash'
#sudo docker ps
#sudo docker exec -i -t containername '/bin/bash'

[注意]

  • {contanername} 换成你想起的容器名,比如vasp
  • localpath 本地路径
  • remotepath docker虚拟机的路径

比如我使用以下命令安装:
#sudo docker run -d --name vasp2 -v /home/panjie/:/home/panjie -t centos:6.6 '/bin/bash'

安装扩展包

vasp需要一些扩展包列表为gcc,which,glibc(32w位),libstdc++(32位):
yum install -y rsync gcc-c++ which glibc-static.i686 libstdc++.i686
上面的扩展必须安装,不然则会出现如下错误:

32-bit libraries not found on this system.

安装JRE1.6

官方对jre是这么说明的:

Finally, there is an optional package to consider: The 11.x version of the Intel Compiler for Linux has a graphical debugger, a new graphical interface for the IDB debugger. If you want to use this debugger, please make sure to install the JAVA JRE version 1.5 or higher.

也就是说,你要不安装的话,可能会有BUG
#yum install java-1.6.0-openjdk

安装编译器

编译器即把C语言的文件变成可执行文件的。编译器有很多,支持的功能也不一样。在编译、链接VASP时,推荐使用INTEL的编译器。这是由于VASP软件使用了很多Intel Math Kernel Library(Intel数学计算核心库)。而这个IMKL,当然需要配套使用Intel的编译器了。

我们上传的编译器,一般会是个tgz格式的压缩包。我们找到这个压缩包的位置,然后在那个位置上解压:
#tar xzvf l_ccompxe_2011.6.233.tgz

解压后进入解压后的文件夹,进行安装。
#./install.sh
接着会出一个安装向导,我们按提示进行安装即可。安装过程中,会提示我们选择证书,输入证书的绝对路径位置即可。

安装成功后,将得到如下提示:

- Set the environment variables for a terminal window using one of the following
  (replace "intel64" with "ia32" if you are using a 32-bit platform).
     For csh/tcsh:
        $ source install-dir/bin/compilervars.csh intel64
     For bash:
        $ source install-dir/bin/compilervars.sh intel64
     To invoke the installed compilers:
        For C++: icpc
        For C: icc
        For Fortran: ifort
  To get help, append the -help option or precede with the man command.
- To view a table of getting started documents: 
  install-dir/Documentation/en_US/documentation_c.htm.

分别给出了设置环境变量的方法和官方的参考文档的位置。
由于我们采用了默认路径安装,所以安装文档的位置为:
/opt/intel/composerxe/Documentation/en_US/documentation_c.htm

如果你注意观察的话,会发现在安装过程中提示的安装路径为:
composer_xe_2011_sp1。但我们
composerxe做为安装路径也可以,这是由于
composerxe链接到了
composer_xe_2011_sp1

设置环境变量

还是由于我们没有更改安装路径,所以环境变量位置应该为:
/opt/intel/composerxe/bin/compilervars.sh intel64

#vi ~/.bashrc

# .bashrc
source /opt/intel/composerxe/bin/compilervars.sh intel64 # 添加这行                   

使环境变量马上生效(如果有错误,执行以下命令时会报错)
#source ~/.bashrc

安装l_fcompxe

安装fcompxe的上面安装ccompxe一样。先解压,再安装。

安装openmpi

tar xzvf openmpi-1.6.5.tar.gz
cd openmpi-1.6.5
./configure --prefix="/home/$USER/.openmpi" CC=icc CXX=icpc F77=ifort FC=ifort

--prefix="/home/$USER/.openmpi" 当应用安装到当前登录用户的.openmpi文件夹中。CC=icc CXX=icpc F77=ifort FC=ifort为使用哪种编译器编译openmpi

make -j1
make install

make -j1使用1核进行编译;make install 安装

添加环境变量

export PATH="$PATH:/home/$USER/.openmpi/bin" >> /root/.bashrc
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/$USER/.openmpi/lib/"
>> /root/.bashrc
which mpif90
/home/.openmpi/bin/mpif90

最后一条命令将返回mpif90的1条路径,即我们上面刚刚设置过的。如果返回了几行信息(所有的环境变量路径,则说明没有生效)。

注意:以上只适用于docker环境,非docker环境请参考如下配置。

export PATH="$PATH:/home/$USER/.openmpi/bin" >> /home/$USER/.bashrc export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/$USER/.openmpi/lib/"
>> /home/$USER/.bashrc
which mpif90

安装fftw

tar xzvf fftw-3.3.4.tar.gz 
cd  fftw-3.3.4
./configure --prefix=/home/.fftw --enable-mpi
make -j1
make install

配置环境变量

export PATH=/home/.fftw/bin:$PATH >> /root/.bashrc
export LD_LIBRARY_PATH=/home/.fftw/lib:$LD_LIBRARY_PATH >> /root/.bashrc
which fftw-wisdom
/home/.fftw/bin/fftw-wisdom

注意:非docker环境如下:

export PATH=/home/$USER/.fftw/bin:$PATH >> /home/$USER/.bashrc
export LD_LIBRARY_PATH=/home/USER/.fftw/lib:$LD_LIBRARY_PATH >> /home/$USER/.bashrc
which fftw-wisdom
/home/.fftw/bin/fftw-wisdom

安装vasp

解压文件

在同一文件夹下,分别解压vasp.5.4.1和vasp.5.lib。

复制并更改配置文件

cp makefile.include vasp.5.4.1
cd vasp.5.4.1
vi makefile.include
  • 28行设置MKL路径MKLROOT =/opt/intel/mkl
  • 33行只使用openmpi BLACS =-L$(MKL_PATH) -lmkl_blacs_openmpi_lp64
  • 38行设置fftw OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o /home/.fftw/lib/libfftw3_mpi.a
  • 39行设置fftw INCS =-I/home/.fftw/include

上面主要是进行了一些配置,我们需要要给这个配置相应的值。比如mkl在哪了, libffw3_mpi.a的具体位置是什么,.fftw/include的位置在哪。所以,在设置的同时,我们最好查看一下本机对应的路径是否存在。如果不存在,说明位置你记错了,或是前面哪些步骤你忘了安装了。

make

万事具备,在确认服务器有不小于2G的内存后,执行:
make all
然后就是漫长的等待。

添加环境变量

echo export PATH=/home/panjie/vasp.5.4.1/bin:$PATH >> /root/.bashrc
source ~/.bashrc

我们注意到此时,我们设置环境变量使用的是echo xxx >> xx,然后使用source ~/.bashrc生使环境变量生效,这样做的好处是,当系统重启后,该环境变量仍然生效。

安装TorquePBS

该死的vasp_std等命令好像不能直接执行,还需要一个TorquePBS的队列管理。

安装依赖

yum install -y libxml2-devel openssl-devel boost-devel libtool openssh-clients

查看主机名、新建用户、设置新用户密码:

hostname
useradd panjie
passwd panjie

提示框出现后,输入两次密码
得到主机名:28bf0f7e77e6

解压安装

tar vxzf torque-6.1.1.1.tar.gz  
cd torque-6.1.1.1
./configure --prefix=/usr/local/torque --with-scp --with-default-server={hostname}
make
make install

将hostname替换成你自己的主机名

配置信息并启动服务

cp contrib/init.d/trqauthd /etc/init.d/
chkconfig --add trqauthd
echo /usr/local/lib > /etc/ld.so.conf.d/torque.conf
ldconfig
service trqauthd start

校验主机名

这步其实前面我们已经做了,重复一遍无所谓了,万一我们以后更改主机名呢
echo <pbs_server's_hostname> > /var/spool/torque/server_name
将 <pbs_server’s_hostname> 替换为你的主机名

设置环境变量

echo export PATH=/usr/local/bin/:/usr/local/sbin/:$PATH >> ~/.bashrc
source ~/.bashrc

初始化服务

./torque.setup root

添加节点

如果你是多节点运算,那么需要将节点信息添加到:/var/spool/torque/server_priv/nodes

添加开机自启动并运行demon

cp contrib/init.d/pbs_server /etc/init.d
chkconfig --add pbs_server
service pbs_server restart
cp contrib/init.d/pbs_mom /etc/init.d
chkconfig --add pbs_mom
service pbs_mom start
#cp contrib/init.d/{pbs_{server,sched,mom},trqauthd} /etc/init.d/

# for i in pbs_server pbs_sched pbs_mom trqauthd; do chkconfig --add $i; chkconfig $ion; done

5、在torque的解压路径运行./torque.setup panjie时运行下面两句,设置环境变量

TORQUE=/usr/local/torque-xxx

echo "TORQUE=$TORQUE" >>/etc/profile

echo "export PATH=\$PATH:$TORQUE/bin:$TORQUE/sbin" >>/etc/profile

source/etc/profile

./torque.setup panjie

创建自己的镜像

前面安装了这么多,终于到了可以创建自己的镜像的时候。有了自己的镜像,将使得我们以后在各种环境下,快速的安装vasp.

步骤:
0 安装ssh
1 退出镜像
2 commit新镜像
3 登录镜像仓库
4 push 镜像

exit

# 使用镜像

docker pull xxxx:4.5.1
docker run -d –name {containername} -t xxxx:4.5.1 -p 2122:22


再然后,我们可以通过xshell等终端连接运行docker服务器的2122端口来进行登录了。

# 参考资源
> [https://cndaqiang.github.io/2018/01/09/ubuntu-install-vasp/](https://cndaqiang.github.io/2018/01/09/ubuntu-install-vasp/)

> [https://software.intel.com/en-us/articles/using-intel-compilers-for-linux-under-redhat-enterprise-linux-or-centos](https://software.intel.com/en-us/articles/using-intel-compilers-for-linux-under-redhat-enterprise-linux-or-centos)
> [http://docs.adaptivecomputing.com/torque/5-1-1/Content/topics/hpcSuiteInstall/manual/1-installing/installingTorque.htm](http://docs.adaptivecomputing.com/torque/5-1-1/Content/topics/hpcSuiteInstall/manual/1-installing/installingTorque.htm)
    原文作者:myskies
    原文地址: https://segmentfault.com/a/1190000014817477
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞