由于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)