compilation - How do I compile VASP 5.3.5 on Cray XC? -
i need compile vasp 5.3.5 on cray xc mpp machine. system has gnu, intel , cray compiling environments available. there choice of intel mkl or cray libsci blas, lapack, scalapck.
which best compiler use, best numerical library use , makefile options use?
tests on archer (http://www.archer.ac.uk) have shown using intel compiler intel mkl , fftw produce best performance , stable build of vasp 5.3.5 on cray xc30 system.
full compilation instructions can found at:
http://www.archer.ac.uk/documentation/software/vasp/compiling_5-3-5-phase2.php
briefly, procedure is:
module swap prgenv-cray prgenv-intel module load fftw module load cray-pe-hugepages2m
modify library makefile have following options:
cpp = gcc -e -p -c $*.f >$*.f fc=ftn cflags = -o3 fflags = -o3 -unroll -ip -no-prec-div -xavx free = -free
build library (assuming makefile called "makefile.cray_xc_intel.lib"):
cd vasp.5.lib make -f makefile.cray_xc_intel.lib
move main source code directory:
cd ../vasp.5.3
setup preprocessor options in makefile (this multiple k-points version):
cpp = $(cpp_) -dmpi -dhost=\"crayxc-intel\" \ -dngzhalf \ -dlongchar \ -dkind8 \ -dcache_size=2000 \ -davoidalloc \ -drpromu_dgemv \ -dmpi_block=100000 \ -duse_collective \ -drandom_array \ -dscalapack
set makefile compilation options:
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
set makefile linear algebra library options intel mkl:
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
finally, set makefile options linking fftw:
fft3d = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o
now build code (assuming makefile called "makefile.cray_xc_intel"):
make -f makefile.cray_xc_intel
Comments
Post a Comment