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

Popular posts from this blog

How has firefox/gecko HTML+CSS rendering changed in version 38? -

javascript - Complex json ng-repeat -

jquery - Cloning of rows and columns from the old table into the new with colSpan and rowSpan -