jasonmumu的个人博客分享 http://blog.sciencenet.cn/u/jasonmumu

博文

Ubuntu18.04编译VASP.5.4.1两种方法的详细过程(修改版)

已有 915 次阅读 2021-9-14 13:59 |个人分类:软件的安装|系统分类:科研笔记

笔者曾在2018-9-28根据自己的经验总结了VASPUbuntu系统的安装方法,但是可能由于包含一些过时的信息而被屏蔽,这里笔者修改之后重新分享给需要的朋友并方便自己查看。

下面两种编译方法(gfortranMKL分别编译VASP)均需要VASP源码包及其补丁,这些可以在官网或通过其他途径下载。

vasp.5.4.1.05Feb16.tar.gz

patch.5.4.1.14032016.gz (可选)

patch.5.4.1.03082016.gz (可选)

下面路径设置中的/path/需要根据读者自己的安装路径做修改。

一. 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

这里是笔者在2018年使用的编译方法,麻烦了些。目前有非常简单的编译方法,可以参考[3]中的方式,其中对于较老的服务器推荐makefile.include 文档中“OFLAG = -O2”改写为:“OFLAG = -O2 -xhost”。

1.      准备工作

首先设备同样需要连接互联网,然后安装VASP编译过程所需要的环境包。参考[4]-[5]及自己的安装经验,环境包的的安装过程如下:

sudo apt-get install make

sudo apt-get install build-essential

sudo apt-get install gfortran

2.      安装Intel-parallel_studio XE 2019

笔者使用的版本是intel 2019,下面是环境变量的设置。

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 检查是否设置成功。

或者把上述内容添加到env_intel.sh 文件中并放到特定的目录中,如~/,每次执行VASP计算之前执行source ~/env_intel.sh; 或者把source ~/env_intel.sh 放入VASP的计算脚本中。

3.      安装openmpi-2.0.2

在官网下载openmpi-2.0.2,键入下面命令或者使用浏览器进入下面的链接:

wget https://www.open-mpi.org/software/ompi/v2.0/downloads/openmpi-2.0.2.tar.gz

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,键入下面命令或者使用浏览器进入下面的链接:

wget http://www.fftw.org/fftw-3.3.4.tar.gz

tar zxvf fftw-3.3.4.tar.gz

cd fftw-3.3.4

./configure--prefix=/path/fftw --enable-mpi F77=ifort F90=ifort

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

 

参考网址:

[1] http://ishxiao.com/blog/ubuntu/2017/10/15/how-to-compile-install-vasp-5.4.1.html

[2] http://www.ivofilot.nl/posts/view/31/How+to+compile+VASP+5.4.1+for+Linux+Debian+using+the+GNU+compiler

[3] http://bbs.keinsci.com/thread-21495-1-1.html

[4] https://www5.hp-ez.com/hp/calculations/page232

[5] https://blog.csdn.net/qq_28849289/article/details/79188425




https://wap.sciencenet.cn/blog-3311084-1304148.html

上一篇:Pymol 入门:Pymol的安装与作图
下一篇:MKL离线编译CP2K 7.1+Plumed的详细过程

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2022-1-22 17:30

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部