VASP6 with D4 issue on Cray systems
Posted: Tue Dec 19, 2023 7:02 am
Greetings!
I am attempting to install VASP6.4.1 with the DFT-D4 extension on a Cray EX system (AMD Milan architecture) but I am getting the following error:
I am able to install the DFT-D4 package with cmake using the same Fortran compiler I use to compile VASP and it passes all the tests.
In order for VASP to recognize the DFT-D4 installation I append the pkgconfig folder to PKG_CONFIG_PATH.
I am using the following modules: GCC/12.2.0, craype/2.7.20 (wrapper module with Fortran compiler), openblas/0.3.21, netlib-scalapack/2.2.0, hdf5/1.12.2-api-v112 and fftw/3.3.10
I think the issue is due to either the GCC version or some linking issue.
Any assistance/insight into the issue is greatly appreciated
Here is my make.include file:
I am attempting to install VASP6.4.1 with the DFT-D4 extension on a Cray EX system (AMD Milan architecture) but I am getting the following error:
Code: Select all
/usr/bin/ld: /home/oconquest/dftd4/build/lib64/libdftd4.a(rational.f90.o): undefined reference to symbol 'GOMP_loop_maybe_nonmonotonic_runtime_next@@GOMP_5.0'
/usr/bin/ld: /opt/cray/pe/gcc-libs/libgomp.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [makefile:132: vasp] Error 1
make[2]: Leaving directory '/home/oconquest/vasp.6.4.1-Custom/build/std'
cp: cannot stat 'vasp': No such file or directory
make[1]: *** [makefile:129: all] Error 1
make[1]: Leaving directory '/home/oconquest/vasp.6.4.1-Custom/build/std'
make: *** [makefile:17: std] Error 2
In order for VASP to recognize the DFT-D4 installation I append the pkgconfig folder to PKG_CONFIG_PATH.
I am using the following modules: GCC/12.2.0, craype/2.7.20 (wrapper module with Fortran compiler), openblas/0.3.21, netlib-scalapack/2.2.0, hdf5/1.12.2-api-v112 and fftw/3.3.10
I think the issue is due to either the GCC version or some linking issue.
Any assistance/insight into the issue is greatly appreciated
Here is my make.include file:
Code: Select all
CPP_OPTIONS = -DHOST=\"LinuxGNU\" \
-DMPI -DMPI_BLOCK=8000 -Duse_collective \
-DscaLAPACK \
-DCACHE_SIZE=4000 \
-Davoidalloc \
-Dvasp6 \
-Duse_bse_te \
-Dtbdyn \
-Dfock_dblbuf \
-Dsol_compat
CPP = gcc -E -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS)
FC = ftn
FCL = ftn
FREE = -ffree-form -ffree-line-length-none
FFLAGS = -w -ffpe-summary=none
OFLAG = -O2
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 = 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=znver3
FFLAGS += $(VASP_TARGET_CPU)
# For gcc-10 and higher (comment out for older versions)
FFLAGS += -fallow-argument-mismatch
# BLAS and LAPACK (mandatory)
OPENBLAS_ROOT ?= /software/setonix/2023.08/software/linux-sles15-zen3/gcc-12.2.0/openblas-0.3.21-af6tvcws5twsg2tyw6oxo3q2jxwnwooc
BLASPACK = -L$(OPENBLAS_ROOT)/lib -lopenblas
# scaLAPACK (mandatory)
SCALAPACK_ROOT ?= /software/setonix/2023.08/software/linux-sles15-zen3/gcc-12.2.0/netlib-scalapack-2.2.0-f5zvd7dyet3th5tiizuig75hbqwshnte
SCALAPACK = -L$(SCALAPACK_ROOT)/lib -lscalapack
LLIBS += $(SCALAPACK) $(BLASPACK)
# FFTW (mandatory)
FFTW_ROOT ?= /software/setonix/2023.08/software/linux-sles15-zen3/gcc-12.2.0/fftw-3.3.10-o2l6h6k4aujjws3btuuc2uvll7tr25k5
LLIBS += -L$(FFTW_ROOT)/lib -lfftw3
INCS += -I$(FFTW_ROOT)/include
# HDF5-support (optional but strongly recommended)
CPP_OPTIONS+= -DVASP_HDF5
HDF5_ROOT ?= /software/setonix/2023.08/software/linux-sles15-zen3/gcc-12.2.0/hdf5-1.12.2-oaojh265x56ohdfcct3yyojx7beb5rqp
LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran
INCS += -I$(HDF5_ROOT)/include
#DFT-D4 for the D4 dispersion correction
CPP_OPTIONS += -DDFTD4
LLIBS += $(shell pkg-config --libs dftd4)
INCS += $(shell pkg-config --cflags dftd4)
# For the VASP-2-Wannier90 interface (optional)
#CPP_OPTIONS += -DVASP2WANNIER90
#WANNIER90_ROOT ?= /path/to/your/wannier90/installation
#LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier