VASP 5.4.4編譯


之前根據sobereva老師的視頻寫過名為 VASP 5.4.4極簡安裝方法 的隨筆,筆者親自實踐過,編譯的也沒問題,測試作業也正常,但是后來發現這樣編譯的vasp仍有問題,運行內存會不斷增長,大概半小時后,mem到達了最大值,然后使用swap繼續增長,mem和swap全用光了之后,作業直接斷掉。於是乎筆者使用較新的編譯器(parallel_studio_xe_2020_update4_cluster_edition)試了一下,並參考了 VASP安裝與運行 的makefile.include 以及使用了fftw,這樣編譯出來的vasp目前沒出現問題。

parallel_studio_xe的安裝同 VASP 5.4.4極簡安裝方法 ,然后將

. /opt/intel/parallel_studio_xe_2020.4.912/psxevars.sh

加入 /etc/profile 后重啟終端,出現了

Intel(R) Parallel Studio XE 2020 Update 4 for Linux*
Copyright 2009-2020 Intel Corporation.

然后

which icc ifort icpc mpiifort

發現都能找的到,開始編譯fftw,此處為 fftw-3.3.9

./configure -prefix=/opt/fftw339 CC=icc F77=ifort MPICC=mpiicc -enable-mpi
make
make install

最后進行vasp編譯,在此列出我的makefile.include供參考

# Precompiler options
CPP_OPTIONS= -DHOST=\"LinuxIFC\"\
             -DMPI -DMPI_BLOCK=8000 \
             -Duse_collective \
             -DscaLAPACK \
             -DCACHE_SIZE=4000 \
             -Davoidalloc \
             -Duse_bse_te \
             -Dtbdyn \
             -Duse_shmem\
             -Dlibbeef
CPP        = fpp -f_com=no -free -w0  $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)

FC         = mpiifort
FCL        = mpiifort -mkl

FREE       = -free -names lowercase

FFLAGS     = -assume byterecl -w  -heap-arrays 64
OFLAG      = -O2 -xhost
OFLAG_IN   = $(OFLAG)
DEBUG      = -O0

MKL_PATH = /opt/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64/
BLAS       =-L$(MKL_PATH) -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lmkl_blacs_intelmpi_lp64 -lmkl_scalapack_lp64
LAPACK     =
BLACS      = 
SCALAPACK  = OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o /opt/fftw339/lib/libfftw3_mpi.a INCS =-I/opt/fftw339/include

BEEF = -L/home/zhu/software/beef/lib -lbeef

LLIBS      = $(SCALAPACK) $(LAPACK) $(BLAS) $(BEEF)


OBJECTS_O1 += 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

# For the parser library
CXX_PARS   = icpc

LIBS       += parser
LLIBS      += -Lparser -lparser -lstdc++

# Normally no need to change this
SRCDIR     = ../../src
BINDIR     = ../../bin

#================================================
# GPU Stuff

CPP_GPU    = -DCUDA_GPU -DRPROMU_CPROJ_OVERLAP -DUSE_PINNED_MEMORY -DCUFFT_MIN=28 -UscaLAPACK

OBJECTS_GPU = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d_gpu.o fftmpiw_gpu.o

CC         = icc
CXX        = icpc
CFLAGS     = -fPIC -DADD_ -Wall -openmp -DMAGMA_WITH_MKL -DMAGMA_SETAFFINITY -DGPUSHMEM=300 -DHAVE_CUBLAS

CUDA_ROOT  ?= /usr/local/cuda/
NVCC       := $(CUDA_ROOT)/bin/nvcc -ccbin=icc
CUDA_LIB   := -L$(CUDA_ROOT)/lib64 -lnvToolsExt -lcudart -lcuda -lcufft -lcublas

GENCODE_ARCH    := -gencode=arch=compute_30,code=\"sm_30,compute_30\" \
                   -gencode=arch=compute_35,code=\"sm_35,compute_35\" \
                   -gencode=arch=compute_60,code=\"sm_60,compute_60\"

MPI_INC    = $(I_MPI_ROOT)/include64/

 PS:筆者控制變量,將PSXE2020換成PSXE2019,還是會出現之前的問題,並沒有測試使用fftw與否的影響。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM