Compilation 如何在Cray XC上编译VASP 5.3.5?

Compilation 如何在Cray XC上编译VASP 5.3.5?,compilation,linear-algebra,cray,Compilation,Linear Algebra,Cray,我需要在Cray XC MPP机器上编译VASP 5.3.5。该系统提供Gnu、Intel和Cray编译环境。BLAS、LAPACK、SCALAPK还可以选择Intel MKL或Cray LibSci 使用哪种编译器、使用哪种数值库以及使用哪种Makefile选项?在ARCHER()上的测试表明,在Cray XC30系统上,将英特尔编译器与英特尔MKL和FFTW结合使用,可以产生最佳性能和最稳定的VASP 5.3.5版本 有关完整的编译说明,请访问: 简而言之,程序是: module swap

我需要在Cray XC MPP机器上编译VASP 5.3.5。该系统提供Gnu、Intel和Cray编译环境。BLAS、LAPACK、SCALAPK还可以选择Intel MKL或Cray LibSci

使用哪种编译器、使用哪种数值库以及使用哪种Makefile选项?

在ARCHER()上的测试表明,在Cray XC30系统上,将英特尔编译器与英特尔MKL和FFTW结合使用,可以产生最佳性能和最稳定的VASP 5.3.5版本

有关完整的编译说明,请访问:

简而言之,程序是:

module swap PrgEnv-cray PrgEnv-intel
module load fftw
module load cray-pe-hugepages2M
修改库生成文件以具有以下选项:

CPP     = gcc -E -P -C $*.F >$*.f
FC=ftn 
CFLAGS = -O3
FFLAGS = -O3 -unroll -ip -no-prec-div -xAVX
FREE   = -free
构建库(假设makefile名为“makefile.cray\u xc\u intel.lib”):

移动到主源代码目录:

cd ../vasp.5.3
在Makefile中设置预处理器选项(这适用于多个K点版本):

设置makefile编译选项:

FC=ftn
FCL=$(FC)

CPP_ = ./preprocess <$*.F | cpp -P -C -traditional >$*$(SUFFIX)

FFLAGS = -free -march=corei7-avx -assume byterecl  -m64

OFLAG  = -O3 -ip -fno-alias -unroll-aggressive -opt-prefetch -use-intel-optimized-headers -no-prec-div

OFLAG_LOW = -O1 -g -ftz
OBJ_LOW = broydon.o
最后,设置链接FFTW的makefile选项:

FFT3D   = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o
现在构建代码(假设makefile名为“makefile.cray\u xc\u intel”):

FC=ftn
FCL=$(FC)

CPP_ = ./preprocess <$*.F | cpp -P -C -traditional >$*$(SUFFIX)

FFLAGS = -free -march=corei7-avx -assume byterecl  -m64

OFLAG  = -O3 -ip -fno-alias -unroll-aggressive -opt-prefetch -use-intel-optimized-headers -no-prec-div

OFLAG_LOW = -O1 -g -ftz
OBJ_LOW = broydon.o
MKL_PATH = $(MKLROOT)/lib/intel64
BLAS=
LAPACK=
BLACS=
SCA=

LIB  = ../vasp.5.lib/linpack_double.o -L../vasp.5.lib -ldmy \
        ${MKL_PATH}/libmkl_blas95_lp64.a ${MKL_PATH}/libmkl_lapack95_lp64.a \
        ${MKL_PATH}/libmkl_scalapack_lp64.a  \
        -Wl,--start-group ${MKL_PATH}/libmkl_intel_lp64.a \
        ${MKL_PATH}/libmkl_sequential.a ${MKL_PATH}/libmkl_core.a \
        ${MKL_PATH}/libmkl_blacs_intelmpi_lp64.a  -Wl,--end-group -lpthread -lm
FFT3D   = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o
make -f makefile.cray_xc_intel