笔者根据自己的经验总结了VASP在Ubuntu系统的安装方法,分享给大家并方便自己查看。
下面两种编译方法(gfortran及MKL分别编译VASP)均需要VASP源码包及其补丁,这些可以在官网或通过其他途径下载。
vasp.5.4.1.05Feb16.tar.gz
patch.5.4.1.14032016.gz
patch.5.4.1.03082016.gz
下面路径设置中的/path/需要根据读者自己的安装路径做修改。此外,工作站联网除了用网线,还可以用USB无线网卡的。
一. gfortran编译VASP
1.准备工作
首先设备需要连接互联网,然后安装VASP编译过程所需要的环境包。参考[1]-[2]及自己的安装经验,环境包的的安装过程如下:
sudo apt-get install make
sudo apt-get install g++ build-essential
sudo apt-get install gfortran
sudo apt-get install libopenmpi-dev
sudo apt-get install libblas-dev
sudo apt-get install liblapack-dev
sudo apt-get install libscalapack-mpi-dev
sudo apt-get install libscalapack-openmpi1
sudo apt-get install libfftw3-dev
sudo apt-get install libfftw3-3
sudo apt-get install build-essential libopenmpi-dev libfftw3-dev libblas-dev liblapack-dev libscalapack-mpi-dev libblacs-mpi-dev (这一行看似重复了上面很多内容,但没有这一行安装的几百k的文件,编译过程会报错——找不到openmpi的环境包)
2.解压并打补丁
cd到源码包所在路径,然后进行如下操作:
tar -zxvf vasp.5.4.1.05Feb16.tar.gz
gunzip patch.5.4.1.14032016.gz
gunzip patch.5.4.1.03082016.gz
cd vasp.5.4.1
patch -p0 < ../patch.5.4.1.14032016
patch -p0 < ../patch.5.4.1.03082016
3.设置编译文件
cp -v arch/makefile.include.linux_gfortran makefile.include
根据如下内容修改makefile.include文件:
# Precompiler options
CPP_OPTIONS= -DMPI -DHOST=\"IFC91_ompi\" -DIFC \
-DCACHE_SIZE=4000 -Davoidalloc \
-DMPI_BLOCK=8000 -DscaLAPACK -Duse_collective \
-Duse_bse_te -Duse_shmem -Dtbdyn
CPP = gcc -E -P -C $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS)
FC = mpif90.openmpi
FCL = mpif90.openmpi
FREE = -ffree-form -ffree-line-length-none
FFLAGS =
OFLAG = -O2 -mtune=native -m64
OFLAG_IN = $(OFLAG)
DEBUG = -O0
LIBDIR = /usr/lib/x86_64-linux-gnu
BLAS = -L$(LIBDIR) -lblas
LAPACK = -L$(LIBDIR) -llapack
BLACS = -L$(LIBDIR) -lblacs-openmpi -lblacsCinit-openmpi -lblacsF77init-openmpi
SCALAPACK = -L$(LIBDIR) -lscalapack-openmpi $(BLACS)
OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o \
/usr/lib/x86_64-linux-gnu/libfftw3.a
INCS =-I/usr/include
LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS)
OBJECTS_O1 += fft3dfurth.o fftw3d.o fftmpi.o fftmpiw.o chi.o
OBJECTS_O2 += fft3dlib.o
# For what used to be vasp.5.lib
CPP_LIB = $(CPP)
FC_LIB = $(FC)
CC_LIB = gcc
CFLAGS_LIB = -O
FFLAGS_LIB = -O1
FREE_LIB = $(FREE)
OBJECTS_LIB= linpack_double.o getshmem.o
# Normally no need to change this
SRCDIR = ../../src
BINDIR = ../../bin
4.开始编译
make all
或者 make std 编译标准版本的VASP。如果编译过程出错,键入make veryclean清理上次编译失败的文件之后再进行新的尝试。
如果编译成功,则会在./bin 文件夹下面生成vasp_std可执行文件。
可以添加环境变量:export PATH=/path/vasp.5.4.1/bin:$PATH
使用方法类似:/usr/bin/mpirun.openmpi -np 8 /vasp/vasp.5.4.1/bin/vasp_std
二. MKL编译VASP
1.准备工作
首先设备同样需要连接互联网,然后安装VASP编译过程所需要的环境包。参考[3]及自己的安装经验,环境包的的安装过程如下:
sudo apt-get install make
sudo apt-get install build-essential
sudo apt-get install gfortran
2.安装Intel-parallel_studio XE 2019
Intel-parallel_studio XE 2019可以在官网免费注册账户并下载。
cd parallel_studio_xe_2019_cluster_edition
sh install.sh
然后根据提示一步步执行安装。
安装完毕之后设置 Intel的环境变量。
vi ~/.bashrc
单击i在.bashrc文件中添加如下内容:
#Intel
source /path/intel/bin/ifortvars.sh intel64
source /path /intel/mkl/bin/mklvars.sh intel64
export PATH=/path /intel/compilers_and_libraries_2019.0.117/linux/bin:$PATH
export LD_LIBRARY_PATH=/path/intel/compilers_and_libraries_2019.0.117:$LD_LIBRARY_PATH
然后 source ~/.bashrc 使环境变量生效。使用命令 which ifort 检查是否设置成功。
3.安装openmpi-2.0.2
在官网下载openmpi-2.0.2,键入下面命令或者使用浏览器进入下面的链接:
tar zxvf openmpi-2.0.2.tar.gz
cd openmpi-2.0.2
./configure --prefix=/path/openmpi CC=icc CXX=icpc F77=ifort FC=ifort
sudo make
sudo make install
安装完成之后类似上面设置环境变量,添加如下内容:
#openmpi
if [ -f /path/intel/bin/ifortvars.sh ]
then
source /path/intel/bin/ifortvars.sh intel64 2> /dev/null
export MPI=/path/openmpi
export PATH=$MPI/bin:$PATH
export LD_LIBRARY_PATH=$MPI/lib:$LD_LIBRARY_PATH
export MANPATH=$MANPATH:$MPI/share/man
export INFOPATH=$INFOPATH:$MPI/share/man
fi
然后 source ~/.bashrc 使环境变量生效。使用命令 which mpirun检查是否设置成功。
4.安装fftw-3.3.4
在官网下载fftw-3.3.4,键入下面命令或者使用浏览器进入下面的链接:
tar zxvf fftw-3.3.4.tar.gz
cd fftw-3.3.4
./configure--prefix=/path/fftw --enable-mpi F77=ifort F90=ifort
make -j4
make install
fftw可以不设置环境变量,如果想设置,可以添加如下内容:
export PATH=/path/fftw/bin:$PATH
export LD_LIBRARY_PATH=/path/fftw/lib:$LD_LIBRARY_PATH
检查 “/path/fftw-3.3.4/lib/libfftw3_mpi.a”文件是否存在,若存在,则安装成功。
5.解压并打补丁
cd到源码包所在路径,然后进行如下操作:
tar -zxvf vasp.5.4.1.05Feb16.tar.gz
gunzip patch.5.4.1.14032016.gz
gunzip patch.5.4.1.03082016.gz
cd vasp.5.4.1
patch -p0 < ../patch.5.4.1.14032016
patch -p0 < ../patch.5.4.1.03082016
6.设置编译文件
cp arch/makefile.include.linux_intel makefile.include
根据如下内容修改makefile.include文件:
# Precompiler options
CPP_OPTIONS= -DMPI -DHOST=\"IFC91_ompi\" -DIFC \
-DCACHE_SIZE=4000 -DPGF90 -Davoidalloc \
-DMPI_BLOCK=8000 -DscaLAPACK -Duse_collective \
-Duse_bse_te -Duse_shmem -Dtbdyn
CPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)
FC = mpif90
FCL = mpif90 -mkl=sequential
FREE = -free -names lowercase
FFLAGS = -assume byterecl
OFLAG = -O2 -axAVX2, AVX, SSE4.2
OFLAG_IN = $(OFLAG)
DEBUG = -O0
MKL_PATH = $(MKLROOT)/lib/intel64
BLAS =
LAPACK =
BLACS = -lmkl_blacs_intelmpi_lp64
SCALAPACK = $(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS)
OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o \
/path/fftw/lib/libfftw3_mpi.a
INCS =-I/path/fftw/include
LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS)
OBJECTS_O1 += fft3dfurth.o fftw3d.o fftmpi.o fftmpiw.o
OBJECTS_O2 += fft3dlib.o
# For what used to be vasp.5.lib
CPP_LIB = $(CPP)
FC_LIB = $(FC)
CC_LIB = icc
CFLAGS_LIB = -O
FFLAGS_LIB = -O1
FREE_LIB = $(FREE)
OBJECTS_LIB= linpack_double.o getshmem.o
# Normally no need to change this
SRCDIR = ../../src
BINDIR = ../../bin
7.开始编译
make all
或者 make std 编译标准版本的VASP。如果编译过程出错,键入make veryclean清理上次编译失败的文件之后再进行新的尝试。
如果编译成功,则会在./bin 文件夹下面生成vasp_std可执行文件。
可以添加环境变量:export PATH=/path/vasp.5.4.1/bin:$PATH
使用方法类似:/usr/bin/mpirun.openmpi -np 8 /vasp/vasp.5.4.1/bin/vasp_std
参考网址:
转载本文请联系原作者获取授权,同时请注明本文来自木留华科学网博客。
收藏
分享
分享到: