仪器信息网APP
选仪器、听讲座、看资讯

【原创】初学VASP编译

快乐老家

  • 是我个人以前初学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。就好了。
猜你喜欢最新推荐热门推荐更多推荐
举报帖子

执行举报

点赞用户
好友列表
加载中...
正在为您切换请稍后...