Compile VASP 6.5.1 on Vanda

  • CPU architecture: Intel Xeon 8452Y x 2
  • makefile.include: avx512 instruction set, Intel OneAPI 2023b, Intel MPI, O3 optimization
# Default precompiler options
CPP_OPTIONS = -DHOST=\"LinuxIFC\" \
              -DMPI -DMPI_BLOCK=32000 -Duse_collective \
              -DscaLAPACK \
              -DCACHE_SIZE=4000 \
              -Davoidalloc \
              -Dvasp6 \
              -Dtbdyn \
              -Dfock_dblbuf \
              -D_OPENMP

CPP         = fpp -f_com=no -free -w0  $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)

FC          = mpiifx -qopenmp
FCL         = mpiifx

FREE        = -free -names lowercase

FFLAGS      = -assume byterecl -w

OFLAG       = -O3 -xCORE-AVX512 -qopt-zmm-usage=high
OFLAG_IN    = $(OFLAG)
DEBUG       = -O0

# For what used to be vasp.5.lib
CPP_LIB     = $(CPP)
FC_LIB      = $(FC)
CC_LIB      = icx
CFLAGS_LIB  = -O
FFLAGS_LIB  = -O1
FREE_LIB    = $(FREE)

OBJECTS_LIB = linpack_double.o

# For the parser library
CXX_PARS    = icpx
LLIBS       = -lstdc++

##
## Customize as of this point! Of course you may change the preceding
## part of this file as well if you like, but it should rarely be
## necessary ...
##

# When compiling on the target machine itself, change this to the
# relevant target when cross-compiling for another architecture
VASP_TARGET_CPU ?= -xHOST
FFLAGS     += $(VASP_TARGET_CPU)
 
# Intel MKL for FFTW, BLAS, LAPACK, and scaLAPACK
# (Note: for Intel Parallel Studio's MKL use -mkl instead of -qmkl)
FCL        += -qmkl
#MKLROOT    ?= /path/to/your/mkl/installation
INCS        =-I$(MKLROOT)/include/fftw
LLIBS      +=  -L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -liomp5 -lpthread -lm -ldl

# Use a separate scaLAPACK installation (optional but recommended in combination with OpenMPI)
# Comment out the two lines below if you want to use scaLAPACK from MKL instead
#SCALAPACK_ROOT ?= /path/to/your/scalapack/installation
#LLIBS      += -L${SCALAPACK_ROOT}/lib -lscalapack

# HDF5-support (optional but strongly recommended, and mandatory for some features)
#CPP_OPTIONS+= -DVASP_HDF5
#HDF5_ROOT  ?= /cm/shared/apps/hdf5/1.14.0
#LLIBS      += -L$(HDF5_ROOT)/lib -lhdf5_fortran
#INCS       += -I$(HDF5_ROOT)/include

# For the VASP-2-Wannier90 interface (optional)
#CPP_OPTIONS    += -DVASP2WANNIER90
#WANNIER90_ROOT ?= /path/to/your/wannier90/installation
#LLIBS          += -L$(WANNIER90_ROOT)/lib -lwannier

# For the fftlib library (hardly any benefit in combination with MKL's FFTs)
#CPP_OPTIONS+= -Dsysv
#FCL         = mpif90 fftlib.o -qmkl
#CXX_FFTLIB  = icpc -qopenmp -std=c++11 -DFFTLIB_USE_MKL -DFFTLIB_THREADSAFE
#INCS_FFTLIB = -I./include -I$(MKLROOT)/include/fftw
#LIBS       += fftlib

# For machine learning library vaspml (experimental)
CPP_OPTIONS += -Dlibvaspml
CPP_OPTIONS += -DVASPML_USE_CBLAS
CPP_OPTIONS += -DVASPML_USE_MKL
CPP_OPTIONS += -DVASPML_DEBUG_LEVEL=3
CXX_ML      = mpiicpx -fiopenmp
CXXFLAGS_ML = -O3 -std=c++17 -Wall
INCLUDE_ML  =
  • Compile script You should submit compilation as a job or compile by submit an interactive job on Vanda. You should also specify your project code.
#!/bin/bash
#PBS -N VASP
#PBS -l select=1:ncpus=72:mpiprocs=72:ompthreads=1:mem=100GB
#PBS -P PROJECT_CODE
 
module load intel/2023b
cd $PBS_O_WORKDIR
make veryclean
make all DEPS=1 -j 72 > compile.log

Compile VASP on a GPU server (Hopper, Apex etc.)

It is strongly recommended to use the containerized version of VASP on GPU clusters. The containerized version can be pulled from our group docker repository. You should use singularity to build and run vasp using container.

If you want to compile by yourself, you can follow the makefiles on our group GitHub repository.