主题:【原创】初学VASP编译

浏览0 回复0 电梯直达
jim123
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
是我个人以前初学VASP编译时,用一个多月才总结出来的经验,希望对后来者有所用处。里面有些内容是我当时在网上搜集资料后,并结合了我个人所用的并行结点机组的特定情况作为个案例。

我使用的机子是有50个结点CPU并行运算服务器,所用系统是基于Red hat 8.0 的Rock系统。

在编译VASP用的是intel forttran7.0编译器,对应的makefile:makefile.linux_ifc_P4,使用vasp.4.6版本。数学库为libgoto_p4_512-r0.94.so。。(在附件里有一个对应我所用机器已编译好的可用的makefile文件)

假设已安装下载mpich。

采用mpif90来编译vasp
  这里假设把libgoto_p4_512-r0.94.so放在/usr/local/lib目录中。
  A)进入vasp.4.lib目录中,把 makefile.linux_ifc_P4 拷贝成makefile。
  键入make命令,开始编译得到libdmy.a
  b)进入vasp.4.6目录中,把makefile.linux_ifc_P4拷贝成makefile
  把第50行的FC=ifc前加上注释号,也就是#
  第80行至82行的CPP有关内容加上注释号,改成下面的
  #CPP = $(CPP_) -DHOST=\"LinuxIFC\" \
  # -Dkind8 -DNGXhalf -DCACHE_SIZE=12000 -DPGF90 -Davoidalloc \
  # -DRPROMU_DGEMV -DRACCMU_DGEMV
  把第136行的BLAS
  BLAS= /opt/libs/libgoto/libgoto_p4_512-r0.6.so
  该成如下的内容:
  BLAS= /usr/local/lib/libgoto_p4_512-r0.94.so
  把第166行和167行有关FFT3D的行前加上注释号,如下面的
  #FFT3D = fft3dfurth.o fft3dlib.o
  #FFT3D = fftw3d.o fft3dlib.o /opt/libs/fftw-3.0.1/lib/libfftw3.a
  把202行和203行的FC等改为如下的内容:
  FC=mpif90
  FCL=$(FC)
  把212行有关CPP的行前的注释号去掉,改成如下的内容:
  CPP = $(CPP_) -DMPI -DHOST=\"LinuxIFC\" -DIFC \
  -Dkind8 -DNGZhalf -DCACHE_SIZE=4000 -DPGF90 -Davoidalloc \
  -DMPI_BLOCK=500 \
  -DRPROMU_DGEMV -DRACCMU_DGEMV
  把226和227行有关SCA的行,加上注释号,改成如下的
  #SCA= $(SCA_)/libscalapack.a \
  #$(BLACS)/LIB/blacsF77init_MPI-LINUX-0.a $(BLACS)/LIB/blacs_MPI-LINUX-0.a $(BLACS)/LIB/blacs F77init_MPI-LINUX-0.a
  表示不用scalapack库。
  把239和243行有关FFT3D的行,改成如下的内容:
  # FFT: fftmpi.o with fft3dlib of Juergen Furthmueller
  FFT3D = fftmpi.o fftmpi_map.o fft3dlib.o

  # fftw.3.0.1 is slighly faster and should be used if available
  #FFT3D = fftmpiw.o fftmpi_map.o fft3dlib.o /opt/libs/fftw-3.0.1/lib/libfftw3.a
  把这些都修改后,保存。
  再make。就好了。

为您推荐
您可能想找: 气相色谱仪(GC) 询底价
专属顾问快速对接
立即提交
可能感兴趣
猜你喜欢最新推荐热门推荐更多推荐
品牌合作伙伴