Makefile.include.gnu ompi mkl omp: Difference between revisions
No edit summary |
No edit summary |
||
| (One intermediate revision by one other user not shown) | |||
| Line 8: | Line 8: | ||
-Davoidalloc \ | -Davoidalloc \ | ||
-Dvasp6 \ | -Dvasp6 \ | ||
-Dtbdyn \ | -Dtbdyn \ | ||
-Dfock_dblbuf \ | -Dfock_dblbuf \ | ||
| Line 20: | Line 19: | ||
FREE = -ffree-form -ffree-line-length-none | FREE = -ffree-form -ffree-line-length-none | ||
FFLAGS = -w -ffpe-summary= | FFLAGS = -w -ffpe-summary=none | ||
OFLAG = -O2 | OFLAG = -O2 | ||
OFLAG_IN = $(OFLAG) | OFLAG_IN = $(OFLAG) | ||
DEBUG = -O0 | DEBUG = -O0 | ||
# For what used to be vasp.5.lib | # For what used to be vasp.5.lib | ||
| Line 52: | Line 47: | ||
# When compiling on the target machine itself, change this to the | # When compiling on the target machine itself, change this to the | ||
# relevant target when cross-compiling for another architecture | # relevant target when cross-compiling for another architecture | ||
VASP_TARGET_CPU ?= -march=native | |||
FFLAGS += $(VASP_TARGET_CPU) | |||
# For gcc-10 and higher (comment out for older versions) | # For gcc-10 and higher (comment out for older versions) | ||
FFLAGS += -fallow-argument-mismatch | FFLAGS += -fallow-argument-mismatch | ||
# Intel MKL | # Intel MKL for FFTW, BLAS, LAPACK, and scaLAPACK | ||
MKLROOT ?= /path/to/your/mkl/installation | MKLROOT ?= /path/to/your/mkl/installation | ||
LLIBS_MKL = -L$(MKLROOT)/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -lgomp -lpthread -lm -ldl | |||
INCS = -I$(MKLROOT)/include/fftw | INCS = -I$(MKLROOT)/include/fftw | ||
# HDF5-support (optional but strongly recommended) | # 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_MKL = -L$(SCALAPACK_ROOT)/lib -lscalapack -L$(MKLROOT)/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl | |||
LLIBS += $(LLIBS_MKL) | |||
# HDF5-support (optional but strongly recommended, and mandatory for some features) | |||
#CPP_OPTIONS+= -DVASP_HDF5 | #CPP_OPTIONS+= -DVASP_HDF5 | ||
#HDF5_ROOT ?= /path/to/your/hdf5/installation | #HDF5_ROOT ?= /path/to/your/hdf5/installation | ||
| Line 73: | Line 76: | ||
#LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier | #LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier | ||
# For the fftlib library ( | # For the fftlib library (hardly any benefit in combination with MKL's FFTs) | ||
#CPP_OPTIONS+= -Dsysv | #CPP_OPTIONS+= -Dsysv | ||
#FCL += fftlib.o | #FCL += fftlib.o | ||
| Line 80: | Line 83: | ||
#LIBS += fftlib | #LIBS += fftlib | ||
#LLIBS += -ldl | #LLIBS += -ldl | ||
# 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 = mpic++ -fopenmp | |||
#CXXFLAGS_ML = -O3 -std=c++17 -pedantic-errors -Wall -Wextra | |||
#INCLUDE_ML = | |||
</pre> | </pre> | ||
---- | ---- | ||
[[makefile.include]] | |||
[[Category:VASP]] | [[Category:VASP]] | ||
[[Category:Installation]] | [[Category:Installation]] | ||
Latest revision as of 13:45, 18 December 2024
# Default precompiler options
CPP_OPTIONS = -DHOST=\"LinuxGNU\" \
-DMPI -DMPI_BLOCK=8000 -Duse_collective \
-DscaLAPACK \
-DCACHE_SIZE=4000 \
-Davoidalloc \
-Dvasp6 \
-Dtbdyn \
-Dfock_dblbuf \
-D_OPENMP
CPP = gcc -E -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS)
FC = mpif90 -fopenmp
FCL = mpif90 -fopenmp
FREE = -ffree-form -ffree-line-length-none
FFLAGS = -w -ffpe-summary=none
OFLAG = -O2
OFLAG_IN = $(OFLAG)
DEBUG = -O0
# For what used to be vasp.5.lib
CPP_LIB = $(CPP)
FC_LIB = $(FC)
CC_LIB = gcc
CFLAGS_LIB = -O
FFLAGS_LIB = -O1
FREE_LIB = $(FREE)
OBJECTS_LIB = linpack_double.o
# For the parser library
CXX_PARS = g++
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 ?= -march=native
FFLAGS += $(VASP_TARGET_CPU)
# For gcc-10 and higher (comment out for older versions)
FFLAGS += -fallow-argument-mismatch
# Intel MKL for FFTW, BLAS, LAPACK, and scaLAPACK
MKLROOT ?= /path/to/your/mkl/installation
LLIBS_MKL = -L$(MKLROOT)/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -lgomp -lpthread -lm -ldl
INCS = -I$(MKLROOT)/include/fftw
# 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_MKL = -L$(SCALAPACK_ROOT)/lib -lscalapack -L$(MKLROOT)/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl
LLIBS += $(LLIBS_MKL)
# HDF5-support (optional but strongly recommended, and mandatory for some features)
#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
# For the fftlib library (hardly any benefit in combination with MKL's FFTs)
#CPP_OPTIONS+= -Dsysv
#FCL += fftlib.o
#CXX_FFTLIB = g++ -fopenmp -std=c++11 -DFFTLIB_USE_MKL -DFFTLIB_THREADSAFE
#INCS_FFTLIB = -I./include -I$(MKLROOT)/include/fftw
#LIBS += fftlib
#LLIBS += -ldl
# 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 = mpic++ -fopenmp
#CXXFLAGS_ML = -O3 -std=c++17 -pedantic-errors -Wall -Wextra
#INCLUDE_ML =