Compiling VASP 5.3.5 on ARCHER (XC30)
This page provides compilation instructions for VASP 5.3.5 on ARCHER (Cray XC30, Ivy Bridge).
Thanks to Pierre Carrier of Cray Inc. for help with putting the Intel compiler build instructions together.
Module Setup
Swap to the Intel compiler suite; load the FFTW library module and the hugepages module:
module swap PrgEnv-cray PrgEnv-intel module add fftw module add craype-hugepages2M
Full list of loaded modules at compile time for the centrally installed version:
Modify the makefile
Full preprocessor flag list:
CPP = $(CPP_) -DMPI -DHOST=\"CrayXC-Intel\" \ -DNGZhalf \ -DLONGCHAR \ -Dkind8 \ -DCACHE_SIZE=2000 \ -Davoidalloc \ -DRPROMU_DGEMV \ -DMPI_BLOCK=100000 \ -Duse_collective \ -Drandom_array \ -DscaLAPACK
Above is for multiple k-point version of VASP. For the GAMMA-point only code you would add -DwNGZhalf ; for the noncollinear versions you would remove -DNGZhalf.; and for the Anderesen thermostat version you would add -Dtbdyn.
Other settings:
FC=ftn r 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
Use Intel MKL for linear algebra:
MKLROOT = /opt/intel/composer_xe_2015.2.164/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
Use the FFTW library for Fourier transforms:
# FFT: FFTW3 FFT3D = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o
Build the code
Get the makefiles from /usr/local/packages/vasp5/5.3.5-phase1/makefiles:
- makefile.cray_xc_intel.lib - Makefile for vasp5.lib source code
- makefile.cray_xc_intel - Makefile for multiple k-point VASP
- makefile.cray_xc.intel.gamma - Makefile for GAMMA-point only VASP
- makefile.cray_xc_intel.noncollinear - Makefile for multiple k-point, noncollinear VASP
- makefile.cray_xc_intel.tbdyn - Makefile for multiple k-point with Andersen thermostat
Build the library code
cd vasp.5.lib make -f makefile.cray_xe_intel.lib clean make -f makefile.cray_xe_intel.lib
Build the main code
cd vasp.5.3 make -f makefile.cray_xe_intel clean make -f makefile.cray_xe_intel
This will build the multiple k-point version of the code. Use the different makefiles for different versions of VASP (note: they all produce an executable called vasp).
Back to the VASP page