在Rocks上编译带VTST代码(NEB)的vasp 5.2 NEW

Rocks 采用Ifc编译器,MKL数据库 VASP编译的过程

 创建用户:

  adduser -g root mu  

   passwd mu  

  rocks sync users

  rocks sync config

一    软件准备

VASP源代码(vasp.5.2.tar.gzvasp.5.lib.tar.gz),ifc编译器(l_cprof_p_11.1.064.tgz)icc编译器(l_cproc_p_11.1.064.tgz ),openmpi 软件

#su root       进入root用户,

二.ICC编译器安装

先解压l_cproc_p_11.1.064.tgz 得到l_cproc_p_11.1.064文件夹

进入l_cproc_p_11.1.064文件夹找到install.sh文件

执行./install.sh开始安装icc

-------------------------------------

注意选择: 2. Custom Install (For Advanced Users)

2. Custom Install - specify individual product components to install

在后面的安装选项中选择安装Intel(R) 64的,不安装IA-32 。安装过程中自带 Math Kernel Library 数学库。

并指定安装目录/share/apps/intel/icc

-------------------------------------
安装完毕 ICC安装完成

(卸载时 在目录外执行  安装目录/bin/intel64/uninstall_cproc.sh  进行卸载)

此时,mkl位置 /share/apps/intel/icc/mkl

 Ifc编译器安装

先解压l_cprof_p_11.1.064.tgz 得到l_cprof_p_11.1.064文件夹

进入l_cprof_p_11.1.064文件夹找到install.sh文件

执行./install.sh开始安装ifc

-------------------------------------

注意选择 2. Custom Install (For Advanced Users)

2. Custom Install - specify individual product components to install

在后面的安装选项中选择安装Intel(R) 64的,不安装IA-32 。不安装 Math Kernel Library 数学库。

并指定安装目录/share/apps/intel/ifc

-------------------------------------

安装完毕 ifc安装完成

(卸载时 在目录外执行  安装目录/bin/intel64/uninstall_cprof.sh  进行卸载,uninstall_debugger.sh也可以)

四.设置环境变量 

将icc和ifort命令加入环境变量,即在/root/.bashrc 和/home/mu/.bashrc 中加入

source  /share/apps/intel/ifc/bin/ifortvars.sh intel64
source  /share/apps/intel/icc/bin/iccvars.sh intel64

 然后 root用户和mu用户下分别执行source  ~/.bashrc 或 bash

which icc 和which ifort 看看能否找到

注意: 已开bash窗口执行后新环境变量才生效

 

验证ifort是否可以使用,

#which ifort

写一个简单的a.f90

program test

write(*,*) "iello"

pause

end

然后#ifort a.f90 -o test

#./test

 五. mkl和fftw安装

 mkl在安装icc时已安装,位置 /share/apps/intel/icc/mkl

cd  /share/apps/intel/icc/mkl/interfaces/fftw3xf

make libem64t compiler=intel 
得到 libfftw3xf_intel.a

这样,mkl和fftw就齐全了

 另一种方法:

1)在intel网站下载 l_mkl_p_10.2.3.029.tar.gz  

tar –zxvf l_mkl_p_10.2.3.029.tar.gz

进入解压得到的目录 l_mkl_p_10.2.3.029

执行 ./install.sh,安装和卸载与icc等类似。

fftw安装    http://www.fftw.org/

cd  /share/apps/fftw-3.2.2

env CC=gcc F77=ifort  ./configure --prefix=/share/apps/fftw --enable-mpi    

make  && make install

六、openmpi的安装

1)下载openmpi,并解压。进入openmpi目录执行:

./configure --prefix=/share/apps/openmpi/  CC=icc CXX=icpc F77=ifort FC=ifort

make

make install

加入环境变量:

在/root/.bashrc 和/home/mu/.bashrc 中加入

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/share/apps/intel/icc/mkl/lib/em64t:/share/apps/openmpi/lib

(不换行)

export PATH=$PATH:/share/apps/openmpi/bin

root用户和mu用户下分别执行: source  ~/.bashrc


 另一种方法 :impi的安装及使用  

1 进入源文件所在的目录, ./install.sh 进行安装,

注意选择  1.  Install cluster node software on an automounted shared file system

安装时注意选择安装目录 /share/apps/intel/impi

(卸载时目录外执行   相应目录下uninstall.sh  进行卸载)

 2、增加环境变量

在/root/.bashrc 和/home/mu/.bashrc 中加入

source  /share/apps/intel/impi/bin64/mpivars.sh

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/share/apps/intel/icc/mkl/lib/em64t:/share/apps/intel/impi/lib64

root用户和mu用户下分别执行: source  ~/.bashrc

注意:impi的的并行编译器为mpiifort

 

.vasp 安装

1su root ,

vasp.5.2.12.tar.gz

vasp.5.lib.tar.gz

vtstcode.tar.gz

(其中 vtstcode.tar.gz   来自:http://theory.cm.utexas.edu/vtsttools/index.php 

 

拷贝到 /share/apps/vasp 目录下,并将

 vasp.5.2.12.tar.gz

vasp.5.lib.tar.gz

vtstcode.tar.gz

分别解压

并将vtstcode的内容复制到/share/apps/vasp/vasp.5.2.

 chown -Rv  mu:root vasp.5.2

 chown -Rv  mu:root vasp.5.lib

 su mu

2)进入vasp.5.lib所在目录

根据自己机子的情况选择合适的makefile

一般选择 makefile.linux_ifc_P4 (即 ifort编译器和intelcpu

编辑makfile

18行 CPP     = gcc -E -P -C  .F> *.f  改为

CPP     = icc -E -P -C  .F> *.f

19行的  FCifc    修改为   FCifort(也可以是绝对路径)

并添加 CC = icc

 make

如果编译通过,说明前面安装的数学库和编译器等都是正确的

 

3)进入vasp.5.2所在目录

执行  perl mkbdrpro.pl  bdr_changes,产生  bdrpro.F

然后将 cp makefile.linux_ifc_P4  makefile,打开 makefile

 

84行和85CPP前加上#注释掉(即将前面的串行配置去掉)

第94行 FFLAGS =  -FR -lowercase -assume byterecl 后面加上  -heap-arrays 64 (针对 ifort 10 以上)

第109行 OFLAG=-O2 -ip -ftz  改为 OFLAG=-O3 

 130行的BLAS=  加上#注释掉 

133 LAPACK= ../vasp.5.lib/lapack_double.o前加#注释

136 LAPACK= -lmkl_lapack 改为

LAPACK= -L/share/apps/intel/icc/mkl/lib/em64t  -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -i-static

140-142行的LIB=   四行前加#

154行前FFT3D   = fft3dfurth.o fft3dlib.o 前加#

172行前#去掉,并改成 FC=mpif90

173行前#去掉,并改成 FCL=$(FC)

190行到193行 CPP    =  前的#去掉,并在192-DMPI_BLOCK=8000 后面加 \,并将

-DCACHE_SIZE=4000 改为 -DCACHE_SIZE=16000 (仅供参考,可以使用默认)

213-215LIB=  #去掉

221行 #FFT3D  = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o  /opt/libs/fftw-3.1.2/lib/libfftw3.a

 改为 FFT3D   = fftmpi.o fftmpi_map.o fftw3d.o fft3dlib.o  /share/apps/intel/icc/mkl/interfaces/fftw3xf/libfftw3xf_intel.a


前面是基本的并行编译配置

后面加上Bader电荷计算和VTST代码等配置:

1) 找到有 sphpro.o的行(大约在240行)将

steep.o    chain.o    dyna.o     sphpro.o   us.o  core_rel.o \

改为

steep.o    chain.o    dyna.o     sphpro.o   bdrpro.o   us.o  core_rel.o \

2) 大约仍在240行,在steep.o chain.o之间加入

dimer.o  dynmat.o  neb.o  lanczos.o  instanton.o  sd.o  cg.o  qm.o  lbfgs.o  bfgs.o  fire.o   opt.o(注意换行)

3) 在main.F    CALL CHAIN_FORCE(T_INFO%NIONS,DYN%POSION,TOTEN,TIFOR, &

               LATT_CUR%A,LATT_CUR%B,IO%IU6)

替换为:

   CALL CHAIN_FORCE(T_INFO%NIONS,DYN%POSION,TOTEN,TIFOR, &

                TSIF,LATT_CUR%A,LATT_CUR%B,IO%IU6)

保存退出

 

然后 make 得到 vasp ,并 mv vasp vaspmpi

make  clean

make makeparam ,得到 makeparam

make clean

修改makefile 的190行

CPP    = $(CPP_) -DMPI  -DHOST=\"LinuxIFC\" -DIFC \
     -DCACHE_SIZE=16000 -DPGF90 -Davoidalloc -DNGZhalf \
     -DMPI_BLOCK=8000 \
    -DRPROMU_DGEMV  -DRACCMU_DGEMV

去掉-DNGZhalf

make,并 mv  vasp vaspsoc

vaspmpi, makeparam和vaspsoc拷贝到 /share/apps/mybin下,并执行 source ~/.bashrc


注意:基本sge提交脚本见另一篇博文《Vasp sge提交的基本脚本》,当提交多节点任务时注意INCAR中NPAR设置,否则会报错。


八 增加其他用户

    /usr/sbin/adduser    -g root han

    passwd han   

    rocks sync users

    rocks sync config


  /home/han/.bashrc 内添加

source  /share/apps/intel/ifc/bin/ifortvars.sh intel64
source  /share/apps/intel/icc/bin/iccvars.sh intel64

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/share/apps/intel/icc/mkl/lib/em64t:/share/apps/openmpi/lib

(不换行)

export PATH=$PATH:/share/apps/openmpi/bin

然后

 

source /home/han/.bashrc

 

搞定收工!!!!

===============

后记:

1)LAPACK 与BLAS库也可以使用其它的,如在Rocks集群上quantum-espresso(pwscf)安装中使用的LAPACK 与BLAS库,相应设置:

BLAS= -L/share/apps/lapack-3.3.0 -lblas

LAPACK= -llapack

或者 BLAS采用Kazushige Goto's BLAS,LAPACK采用lapack_double.o 的编译得到vasp,据说计算速度最快。

2)fftw库也可以使用MKL自带的,注意 FFT3D = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o/opt/libs/fftw-3.1.2/lib/libfftw3.a中的路径与文件名(一般为mkl安装路径/interfaces/fftw3xf/libfftw3xf_intel.a)。

http://blog.sciencenet.cn/blog-588243-496054.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值