1

I want to compile the latest version of VASP 5 (5.4.1) on a Cray XC MPP machine. Does anyone have the settings I can use? The VASP distribution does not come with an example for Cray.

The build system has changed from the 5.3.5 version.

AndyT
  • 491
  • 2
  • 10

1 Answers1

1

Full compilation instructions can be found on the ARCHER (http://www.archer.ac.uk) website at:

http://www.archer.ac.uk/documentation/software/vasp/compiling_5-4-1-phase2.php

But in brief:

  1. Download and patch the source code

  2. Switch to Intel programming environment and load the fftw module:

    module swap PrgEnv-cray PrgEnv-intel
    module load fftw
    
  3. Create "makefile.include" with the following settings:

    # Precompiler options
    CPP_OPTIONS= -DMPI -DHOST=\"CrayXC-Intel\" \
                 -DIFC \
                 -DCACHE_SIZE=2000 \
                 -DPGF90 \
                 -Davoidalloc \
                 -DMPI_BLOCK=8000 \
                 -DscaLAPACK \
                 -Duse_collective \
                 -DnoAugXCmeta \
                 -Duse_bse_te \
                 -Duse_shmem \
                 -Dtbdyn
    
    CPP        = fpp -f_com=no -free -w0  $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)
    
    FC         = ftn
    FCL        = ftn
    
    FREE       = -free -names lowercase
    
    FFLAGS     = -assume byterecl
    OFLAG      = -O3 -ip -fno-alias -unroll-aggressive -opt-prefetch -use-intel-optimized-headers -no-prec-div
    OFLAG_IN   = $(OFLAG)
    DEBUG      = -O0
    
    MKL_PATH   = $(MKLROOT)/lib/intel64
    BLAS       =
    LAPACK     =
    BLACS      =
    SCALAPACK  =
    
    OBJECTS    = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o
    INCS       =
    
    LLIBS      = ${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
    
    OBJECTS_O1 += fft3dfurth.o fftw3d.o fftmpi.o fftmpiw.o
    OBJECTS_O2 += fft3dlib.o
    
    # For what used to be vasp.5.lib
    CPP_LIB    = $(CPP)
    FC_LIB     = $(FC)
    CC_LIB     = cc
    CFLAGS_LIB = -O
    FFLAGS_LIB = -O1
    FREE_LIB   = $(FREE)
    
    OBJECTS_LIB= linpack_double.o getshmem.o
    
    # Normally no need to change this
    SRCDIR     = ../../src
    BINDIR     = ../../bin
    
  4. Compile the code

    make all
    
AndyT
  • 491
  • 2
  • 10