Compiling VASP 5.3.3 on ARCHER (XC30)
This page provides compilation instructions for VASP 5.3.3 on ARCHER (Cray XC30, Ivy Bridge).
Module Setup
Swap to the GNU compiler suite; load the FFTW library module and the hugepages module:
module swap PrgEnv-cray PrgEnv-gnu module add fftw module add craype-hugepages2M
Full list of loaded modules at compile time for the centrally installed version:
Currently Loaded Modulefiles: 1) modules/3.2.6.7 2) eswrap/1.0.20-1.010200.643.0 3) switch/1.0-1.0500.41328.1.120.ari 4) craype-network-aries 5) PrgEnv-gnu/5.0.41 6) atp/1.7.0 7) rca/1.0.0-2.0500.41336.1.120.ari 8) alps/5.0.3-2.0500.8095.1.1.ari 9) dvs/2.3_0.9.0-1.0500.1522.1.180 10) csa/3.0.0-1_2.0500.41366.1.129.ari 11) job/1.5.5-0.1_2.0500.41368.1.92.ari 12) xpmem/0.1-2.0500.41356.1.11.ari 13) gni-headers/3.0-1.0500.7161.11.4.ari 14) dmapp/6.0.1-1.0500.7263.9.31.ari 15) pmi/4.0.1-1.0000.9753.86.2.ari 16) ugni/5.0-1.0500.0.3.306.ari 17) udreg/2.3.2-1.0500.6756.2.10.ari 18) cray-libsci/12.1.2 19) gcc/4.8.1 20) craype/2.01 21) pbs/12.1.400.132424 22) craype-ivybridge 23) cray-mpich/6.1.1 24) packages-archer 25) fftw/3.3.0.4 26) craype-hugepages2M
Modify the makefile
Full preprocessor flag list:
CPP = $(CPP_) -DMPI -DHOST=\"CrayXC-GNU\" \ -DNGZhalf \ -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.
Additional changes:
FFLAGS = -ffree-form -ffree-line-length-none OFLAG = -O2 -fexternal-blas -ffast-math -funroll-loops \ -finline-functions -funswitch-loops -fpredictive-commoning \ -fgcse-after-reload -fipa-cp-clone
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.3-phase1/makefiles:
- makefile.cray_xc_gnu.lib - Makefile for vasp5.lib source code
- makefile.cray_xc_gnu - Makefile for multiple k-point VASP
- makefile.cray_xc.gnu.gamma - Makefile for GAMMA-point only VASP
- makefile.cray_xc_gnu.noncollinear - Makefile for multiple k-point, noncollinear VASP
- makefile.cray_xc_gnu.tbdyn - Makefile for multiple k-point with Andersen thermostat
Build the library code
cd vasp.5.lib make -f makefile.cray_xe_gnu.lib clean make -f makefile.cray_xe_gnu.lib
Patch the source code
Apply the patch from:
/usr/local/packages/vasp5/patches/vasp.5.3.3-gfortran.patch
to the source code:
cd vasp.5.3 patch -p0 < /usr/local/packages/vasp5/patches/vasp.5.3.3-gfortran.patch
Build the main code
cd vasp.5.3 make -f makefile.cray_xe_gnu clean make -f makefile.cray_xe_gnu
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