vasp的简单编译
这里提供了两套编译VASP的方法,分别是gcc + openmpi + lapack + blas + scalapack + fftw和intelmpi + mkl为例来说明vasp的简单编译,编译以vasp5.4.4为例
方法一:gcc+openmpi+lapack+blas+scalapack+fftw来编译 vasp
在正式编译vasp之前,我们解压vasp.5.4.4.tar.gz,在arch文件夹下,我们可以找到一个makefile.include.linux_gnu,这个文件告诉我们编译vasp需要用到的数学库和mpi。那么我们先编译这些数学库和openmpi
openmpi
首先是openmpi的编译:(这里我以当前最新版的openmpi-3.1.4为例说明)
创建一个可以用来放置openmpi安装位置的文件夹,比如在家目录下创建一个文件夹(mkdir ~/soft/openmpi/3.1.4/gfortran)用来放置openmpi的可执行程序和相应的库文件。
解压openmpi-3.1.4.tar.gz: tar zxvf openmpi-3.1.4.tar.gz
进入解压后的openmpi文件夹:cd openmpi-3.1.4
接着Configure:./configure –prefix=~/soft/openmpi/3.1.4/gfortran FC=gfortran
开始编译和安装:make && make install
这样我们就把openmpi安装到了~/soft/openmpi/3.1.4/gfortran下。
设置openmpi的环境:
在~/.bashrc(vi ~/.bashrc)下写上以下内容:
##############################
#########openmpi-3.1.4#########
##############################
export OPENMPI=~/soft/openmpi/3.1.4/gfortran
PATH=$OPENMPI/bin:$PATH
LD_LIBRARY_PATH=$OPENMPI/lib:$LD_LIBRARY_PATH
INCLUDE=$OPENMPI/include:$INCLUDE
CPATH=$OPENMPI/include:$CPATH
MANPATH=$OPENMPI/share/man:$MANPATH
更新环境source ~/.bashrc
数学库lapack+blas+scalapack+fftw的编译
在安装数学库之前,我们首先创建一个文件夹用于放置数学库的文件mkdir ~/lib/gfortran
fftw(https://www.fftw.org/)
这里使用fftw-3.3.8。
编译fftw需要创建一个类似前面安装openmpi一样的一个安装文件夹,比如在家目录下创建一个文件夹(mkdir ~/soft/fftw/3.3.8)用来放置fftw的可执行程序和相应的库文件。
首先老规矩解压:tar zxvf fftw-3.3.8.tar.gz
进去fftw-3.3.8:cd fftw-3.3.8
然后configure:./configure --prefix=~/soft/fftw/3.3.8 --enable-mpi --enable-openmp --enable-threads --enable-shared MPICC=mpicc CC=gcc F77=gfortran
(具体的参数解释可以使用./configure --help查看)
开始编译和安装:make && make install
这样我们就把fftw安装到了~/soft/fftw/3.3.8下。
设置fftw-3.3.8的环境
##############################
###########fftw-3.3.8###########
##############################
export LD_LIBRARY_PATH="~/soft/fftw/3.3.8/lib:$LD_LIBRARY_PATH"
更新环境source ~/.bashrc
Lapack (http://www.netlib.org/lapack/)
vasp官网上介绍对vasp6的安装可以用lapack3.6以上的库,但是需要在makefile.include里面加上CPP_OPTIONS += -DLAPACK36 (参考网站:https://www.vasp.at/wiki/index.php/Installing_VASP.6.X.X)
这里我们是编译vasp5.4.4,选择lapack-3.5.0
解压lapack-3.5.0:tar zxvf lapack-3.5.0.tar.gz
进入lapack文件夹cd lapack-3.5.0
生成并修改make.inc文件 cp make.inc.example make.inc
vi make.inc将倒数第四行BLASLIB = ../../librefblas.a修改为BLASLIB = ~/lib/gfortran/librefblas.a
然后编译make blaslib
在BLAS/SRC/下生成librefblas.a,将这个库文件拷贝到~/lib/gfortran下
接着make生成liblapack.a和libtmglib.a,将这两个库文件也拷贝到~/lib/gfortran下。
这样lapack和blas编译完成
Scalapack (http://www.netlib.org/scalapack/)
Scalapack库没有版本要求,我们就以当前最新版的scalapack-2.1.0为例
首先解压:tar zxvf scalapack-2.1.0.tar.gz
进入scalapack-2.1.0文件夹:cd scalapack-2.1.0
生成SLmake.inc文件:cp SLmake.inc.example SLmake.inc
修改SLmake.inc的最后两行到三行:
BLASLIB = -lblas
LAPACKLIB = -llapack
修改为:
BLASLIB = ~/lib/gfortran/librefblas.a
LAPACKLIB = ~/lib/gfortran/liblapack.a
然后编译:make生成库文件libscalapack.a,将这个库文件拷贝到~/lib/gfortran下。
vasp 编译
至此vasp编译的前期准备工作已经做完了。接下来开始编译vasp5.4.4
前面已经解压过vasp5.4.4的安装包了
进去vasp.5.4.4安装包:cd vasp.5.4.4
拷贝生成makefile.include:cp arch/makefile.include.linux_gnu makefile.include
修改makefile.include
将makefile.include里面的第24行到34行修改为
LIBDIR = ~/lib/gfortran
BLAS = $(LIBDIR)/librefblas.a
LAPACK = $(LIBDIR)/libtmglib.a$(LIBDIR)/liblapack.a
BLACS =
SCALAPACK = $(LIBDIR)/libscalapack.a$(BLACS)
LLIBS =$(SCALAPACK) $(LAPACK) $(BLAS)
FFTW ?=~/soft/fftw/3.3.8
LLIBS +=-L$(FFTW)/lib -lfftw3
INCS =-I$(FFTW)/include
这样就创建了vasp的编译文件,接下来就是需要漫长的编译等待:make all,顺利编译完成可以在bin下看到三个可执行文件vasp_gam, vasp_ncl, vasp_std
方法2:
intel 全家桶编译 vasp
以上是比较麻烦的做法。下面我们以intel parallel studio XE(2021年以后改为oneAPI BASE Toolkit+HPC Toolkit)为例,由于intel集成了全部的数学库,我们不需要安装多余的库,只需要配置好环境并且编译fftw3xf就可以了
intel 全家桶
intel parallel studio XE是最常见的并行编译器,几乎所有服务器自带,而且编译比较简单,这里就不介绍intel parallel studio 的编译,直接从设置intel parallel studio的环境开始,以下是怎么设置intel parallel studio的环境配置
vi ~/.bashrc
将下面的内容写入:
##############################
###########intel2019###########
##############################
source /opt/intel/compilers_and_libraries_2019.5.281/linux/bin/compilervars.sh intel64
source /opt/intel/impi/2019.5.281/intel64/bin/mpivars.sh intel64
source /opt/intel/mkl/bin/mklvars.sh intel64
export LD_LIBRARY_PATH= /opt/intel/2019.update5/mkl/lib/intel64:$LD_LIBRARY_PATH
更新环境source ~/.bashrc
编译 libfftw3xf_intel.a
首先查看自己的服务器上是否已经编译好:ls /opt/intel/mkl/interfaces/fftw3xf 查看是否有libfftw3xf_intel.a文件。假如没有在自己家目录下创建一个文件夹mkdir -p ~/intel/fftw3xf
cp –r /opt/intel/2019.update5/mkl/interfaces/fftw3xf~/intel/fftw3xf
cd ~/intel/fftw3xf
make intel64
顺利的话,生成libfftw3xf_intel.a文件。
vasp 编译
然后进入vasp.5.4.4解压包
拷贝生成makefile.include:cp arch/makefile.include.linux_intel makefile.include
修改makefile.include第19~20行为
FFLAGS = -assume byterecl -w -heap-arrays 64
OFLAG = -O2 -xCORE-AVX2
修改26行为
LAPACK = $(MKL_PATH)/libmkl_intel_lp64.a
在修改第30行,并在后面加上
OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o
$(MKLROOT)/interfaces/fftw3xf/libfftw3xf_intel.a
或者自己编译的libfftw3xf_intel.a
OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o
~/intel/fftw3xf/libfftw3xf_intel.a
这样就创建了vasp的编译文件,接下来就是需要漫长的编译等待:make all,顺利编译完成可以在bin下看到三个可执行文件vasp_gam, vasp_ncl, vasp_std
宇宙的奥妙(9)内行星与外行星根据从地球所见行星在天空中的运动,可以将行星分为两类。内行星包括水星和金星,它们的轨道比地球更加靠近太阳。在天球上,它们与太阳的距离从来不会太远,水星上限角为28度,
宇宙信使的中微子穿越地球南极冰立方天文台取得了对神秘中微子探索的进展,中微子是人类的陌生朋友,它们每时每刻穿越了人的身体和前方的一切物体,人们却浑然不知,中微子行进的路途或近或远,从最遥远太空的天涯海角到
从贾尼别科夫效应到网球拍定理地球会瞬间两极反转吗在地理上划分,我们知道地球有南极点和北极点,这是地球自转轴的两个端点。在地磁上划分,有地磁南极和地磁北极,其中地磁南极靠近地理北极点,地磁北极则靠近地理南极点。科学研究显示,我们的
NASA拍到两个星系正在碰撞犹如天使之翼NASA拍摄到VV689系统中两个星系正在发生碰撞和合并,称之为天使之翼。(NASA)美国国家航空航天局(NASA)拍摄到两个星系正在发生碰撞和合并,犹如宇宙中巨大的翅膀,故称其为
只因一点灰尘枉费十年工夫只因一点灰尘枉费十年工夫1905年,美国天文学家洛韦尔(18551916)根据天王星海王星的运动不能解释的一些现象,预言在海王星外可能还存在一颗未知的大行星,他还指出了这颗未知的行
SpaceX发射53颗星链卫星全球互联网再进一步美国私人太空探索技术公司SpaceX,(4月)29日通过猎鹰9号火箭,发射53颗星链卫星,为打通全球互联网更进一步。SpaceX公司的猎鹰9号,周五(4月29日)在佛州卡纳维拉尔角
俗语三星高照,新年来到,是指哪三星?在以前的农村,三星远比夜空中的北极星北斗星天狼星牛郎织女星有名,也比太阳系内的金木水火土等行星名气大,原因是农村缺乏天文常识,不懂科学,分不清哪颗星叫什么名字。即便是系内的几颗大行
一秒内就能毁灭地球的星体,超级磁铁磁星这是宇宙中最强大的星体,有史以来最大的旋转磁铁,它就是宇宙海洋中的大白鲨,它不会吃下你,它只会把你组成所有的原子化为灰烬。普通的中子星就已经很可怕了,但其中的磁星才是真正的大佬。像
深海中被发现第四种水原来水并非只有固态液态和气态不知道大家每天的水摄入量达标了吗?水在自然界存在多种形态,而科学家发现地球还存在第四种水,它到底是什么呢?这种水叫做超临界水。生命之源水科学家是如何发现第四种水的呢?超临界水到底是
神舟十三号已成功着陆!为何飞船返回时剧烈燃烧,升空时不会?很多人都有一个疑问,航天十三号升空的时候,上面的字儿都能看得清清楚楚,可是回来后,返回舱表面烧成了一个碳球。还好宇航员们都穿着宇航服,不用担心高温带来的影响。神舟十三返回舱颜色泾渭
机智号小直升机拍到了降落火星时使用的隔热罩与降落伞残骸科学家希望在分析残骸后,能对未来任务的设计起到帮助。机智号小直升机去年二月时,毅力号火星探测车和携带的机智号小直升机一同着陆在了火星表面,过程中先后利用了隔热罩与降落伞来减速,最后