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.logArchived: Compile VASP 6.4.3 on Vanda
- CPU architecture: Intel Xeon 8452Y x 2
makefile.include: avx512 instruction set, Intel OneAPI 2023b, Intel MPI# Default precompiler options CPP_OPTIONS = -DHOST=\"LinuxIFC\" \ -DMPI -DMPI_BLOCK=32000 -Duse_collective \ -DscaLAPACK \ -DCACHE_SIZE=4000 \ -Davoidalloc \ -Dvasp6 \ -Duse_bse_te \ -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 OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o OBJECTS_O1 += 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 = 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 (FFTW, BLAS, LAPACK, and scaLAPACK) # (Note: for Intel Parallel Studio's MKL use -mkl instead of -qmkl) FCL += -qmkl LLIBS += -L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -liomp5 -lpthread -lm -ldl INCS =-I$(MKLROOT)/include/fftw # HDF5-support (optional but strongly recommended) #CPP_OPTIONS+= -DVASP_HDF5 #HDF5_ROOT ?= /path/to/your/hdf5/installation #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
- Compile script
#!/bin/bash #PBS -N VASP #PBS -l select=1:ncpus=72:mpiprocs=72:ompthreads=1:mem=500GB #PBS -l place=excl 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.