Redhat上采用Ifc编译器,MKL数据库 VASP5.3编译的过程
-----------------------------------------------------
创建用户:
adduser -g root mu
passwd mu
rocks sync users
rocks sync config
一 . 软件准备
VASP源代码(vasp.5.3.3.tar.gz和vasp.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命令加入环境变量
新建一个文件user.sh,加入
INTELROOT=/share/apps/intel/intel2
. $INTELROOT/ifc/bin/ifortvars.sh intel64
. \$INTELROOT/icc/bin/iccvars.sh intel64
然后 source user.sh
which icc 和which ifort 看看能否找到
验证ifort是否可以使用,
#which ifort
写一个简单的a.f90
program test
write(*,*) "iello"
pause
end
然后#ifort a.f90 -o test
#./test
五. mkl和fftw安装
1)mkl在安装icc时已安装,位置 /share/apps/intel/icc/mkl
2)fftw安装 (推荐) /
cd /share/apps/fftw-3.2.2
env CC=gcc F77=ifort ./configure --prefix=/share/apps/fftw --enable-mpi
make && make install
六、openmpi的安装
下载openmpi,并解压。进入openmpi目录执行:
./configure --prefix=/share/apps/openmpi/ CC=icc CXX=icpc F77=ifort FC=ifort
make
make install
加入环境变量,在user.sh中加入
. \$INTELROOT/icc/mkl/tools/environment/mklvarsem64t.sh
export LD_LIBRARY_PATH=/share/apps/openmpi/lib:\$LD_LIBRARY_PATH
export PATH=/share/apps/openmpi/bin:\$PATH
然后 source user.sh
七.vasp 安装
1)su root ,将 vasp.5.3.3.tar.gz,vasp.5.lib.tar.gz,vtstcode.tar.gz
(其中 vtstcode.tar.gz 来自:http://theory.cm.utexas.edu/vtsttools/index.php )
拷贝到 /share/apps/vasp 目录下,并将分别解压
2)进入vasp.5.lib所在目录
根据自己机子的情况选择合适的makefile
一般选择 makefile.linux_ifc_P4 (即 ifort编译器和intel的cpu)
编辑makfile
18行 CPP = gcc -E -P -C $*.F >$*.f 改为
CPP = icc -E -P -C $*.F >$*.f
19行的 FC=ifc 修改为 FC=ifort(也可以是绝对路径)
并添加 CC = icc
make
如果编译通过,说明前面安装的数学库和编译器等都是正确的
3)进入vasp.5.3所在目录
然后将 cp makefile.linux_ifc_P4 makefile.mpi ,打开 makefile.mpi
在98行和99行CPP前加上#注释掉(即将前面的串行配置去掉)
第108行 FFLAGS = -FR -lowercase -assume byterecl 改为
FFLAGS = -FR -names lowercase -assume byterecl -mssse3 -heap-arrays 64
(针对 ifort 10 以上)
第123行 OFLAG=-O2 -ip 改为 OFLAG=-O2 -ip -ftz
第138行 #MKL_PATH 的#去掉.
第141行 MKL_PATH 前加上#注释掉
第144行(空行)增加 IFC_LIB_PATH=/export/apps/intel/intel2/ifc/lib/intel64
第147行 # BLAS= -Wl,--start-group \$(MKL_PATH)/libmkl_intel_lp64.a \$(MKL_PATH)/libmkl_intel_thread.a \$(MKL_PATH)/libmkl_core.a -Wl,--end-group -lguide
改为 BLAS= -Wl,--start-group \$(MKL_PATH)/libmkl_intel_lp64.a \$(MKL_PATH)/libmkl_sequential.a \$(MKL_PATH)/libmkl_core.a \$(MKL_PATH)/libmkl_lapack95_lp64.a \$(IFC_LIB_PATH)/libiomp5.a \$(IFC_LIB_PATH)/libimf.a -Wl,--end-group -lpthread -lm
第149行BLAS 前加上#注释掉
(注意不换行)
第149行BLAS 前加上#注释掉
第158行 LAPACK 前加上#注释掉
第169行到171行 LIB 三行前加上#注释掉
将182行前FFT3D = fft3dfurth.o fft3dlib.o 前加#
将205行前#去掉,并改成 FC=/share/apps/intel/intel2/openmpi/bin/mpif90
将206行前#去掉,变为 FCL=$(FC)
将223行到226行 CPP = 前的#去掉,改成
CPP = \$(CPP_) -DMPI -DHOST=\"LinuxIFC\" -DIFC \
-DCACHE_SIZE=5000 -DPGF90 -Davoidalloc -DNGZhalf \
-DMPI_BLOCK=262144 -Duse_collective -DscaLAPACK \
-DRPROMU_DGEMV -DRACCMU_DGEMV
第234和235行BLACS和SCA前加#
将241-243行LIB 前#去掉
将253行 #FFT3D = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o /opt/libs/fftw-3.1.2/lib/libfftw3.a
改为 FFT3D = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o /data1/software/vasp/fftw-3.1.2/lib/libfftw3.a
第258行 #INCS 去掉#,改成 INCS = -I/data1/software/vasp/fftw-3.1.2/include
然后 make -f vasp.mpi 得到 vasp ,并 mv vasp vasp.mpi
make clean -f vasp.mpi
make makeparam -f vasp.mpi ,得到 makeparam
make clean -f vasp.mpi
八.vasp+vtst安装
cd vtstcode
sed -i "s/^..*#ifdef/#ifdef/g" *
sed -i "s/^..*#endif/#endif/g" *
将所有的文件中#if 和#endif前的空格去掉,因为fpp预编译要求#在第一个字符位.
然后并将vtstcode的内容复制到/share/apps/vasp/vasp.5.3下.
执行 perl mkbdrpro.pl bdr_changes,产生 bdrpro.F
cp makefile.mpi makefile.neb
后面加上Bader电荷计算和VTST代码等配置:
打开 makefile.neb
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行,在chain.o之前加入
bfgs.o dynmat.o instanton.o lbfgs.o sd.o cg.o dimer.o bbm.o \
fire.o lanczos.o neb.o qm.o opt.o\
注意: bbm.o 是vtst3.0新加的,vtst2.4没有.
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 -f makefile.neb 得到 vasp ,并 mv vasp vasp.mpi.neb
make clean -f makefile.neb
九. 其它版本VASP的编译:
1)Gamma点版本:
cp makefile.mpi makefile.gamma
在makefile.gamma修改
CPP = \$(CPP_) -DMPI -DHOST=\"LinuxIFC\" -DIFC \
-DCACHE_SIZE=5000 -DPGF90 -Davoidalloc -DNGZhalf \
-DMPI_BLOCK=262144 -Duse_collective -DscaLAPACK \
-DRPROMU_DGEMV -DRACCMU_DGEMV
中 -DNGZhalf的后面加上 -DwNGZhalf
然后 make -f makefile.gamma 得到 vasp ,并 mv vasp vasp.mpi.gamma.neb
2)SOC版本:
cp makefile.mpi makefile.soc
在makefile.soc修改
CPP = \$(CPP_) -DMPI -DHOST="LinuxIFC" -DIFC
-DCACHE_SIZE=5000 -DPGF90 -Davoidalloc -DNGZhalf
-DMPI_BLOCK=262144 -Duse_collective -DscaLAPACK
-DRPROMU_DGEMV -DRACCMU_DGEMV
中去掉-DNGZhalf
然后 make -f makefile.soc 得到 vasp ,并 mv vasp vasp.mpi.soc.neb
注意:1)执行任务前先 source user.sh
2)基本sge提交脚本见另一篇博文《Vasp sge提交的基本脚本》。
搞定收工!!!!
===============
后记:
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库也可以使用VASP自带的或MKL自带的
cd /share/apps/intel/icc/mkl/interfaces/fftw3xf
make libem64t compiler=intel
得到 libfftw3xf_intel.a
注意: vasp5.2.x和vasp5.3.x 不推荐使用intel的fftw,有一个奇怪的问题,做并行时,若不设NPAR参数计算结果会有问题.
3)另一种并行库 :impi的安装及使用
1、 进入源文件所在的目录, ./install.sh 进行安装,
注意选择 1. Install cluster node software on an automounted shared file system
安装时注意选择安装目录 /share/apps/intel/impi
(卸载时目录外执行 相应目录下uninstall.sh 进行卸载)
2、增加环境变量
在user.sh 中加入
. /share/apps/intel/impi/bin64/mpivars.sh
注意:impi的的并行编译器为mpiifort。
2)mkl的直接安装:
在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等类似。
转载本文请联系原作者获取授权,同时请注明本文来自穆跃文科学网博客。
链接地址:/blog-588243-656034.html
上一篇:山西大学邮箱在android手机上收发设置
下一篇:BigDFT的安装