Page 1 of 1

Error installing vasp.6.4.1 with gcc

Posted: Thu May 18, 2023 11:00 am
by amihai_silverman1
Error while installing vasp.6.4.1 on CENTOS7 cluster using gcc also fails.
Help is required.
Thanks, Amihai

/usr/local/intel_oneapi2022/mkl/2022.0.2/lib/intel64/libmkl_blacs_openmpi_lp64.so: undefined reference to `ompi_mpi_dblprec'
/usr/local/intel_oneapi2022/mkl/2022.0.2/lib/intel64/libmkl_blacs_openmpi_lp64.so: undefined reference to `ompi_mpi_op_sum'
/usr/local/intel_oneapi2022/mkl/2022.0.2/lib/intel64/libmkl_blacs_openmpi_lp64.so: undefined reference to `ompi_mpi_real'
collect2: error: ld returned 1 exit status
make[2]: *** [vasp] Error 1
make[2]: Leaving directory `/home/amihai/src/vasp.6.4.1.gcc/build/std'
cp: cannot stat ‘vasp’: No such file or directory
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/amihai/src/vasp.6.4.1.gcc/build/std'
make: *** [std] Error 2


$ which gcc
/usr/local/gcc11.2/bin/gcc
$ which mpif90
/usr/local/intel_oneapi2022/mpi/2021.5.1/bin/mpif90
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)


$ cat makefile.include
# Default precompiler options
CPP_OPTIONS = -DHOST=\"LinuxGNU\" \
-DMPI -DMPI_BLOCK=8000 -Duse_collective \
-DscaLAPACK \
-DCACHE_SIZE=4000 \
-Davoidalloc \
-Dvasp6 \
-Duse_bse_te \
-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

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=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 ?= /usr/local/intel_oneapi2022/mkl/2022.0.2
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 ?= /usr/lib64/openmpi3
#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)
#CPP_OPTIONS+= -DVASP_HDF5
#HDF5_ROOT ?= /usr/lib64/openmpi
#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

Re: Error installing vasp.6.4.1 with gcc

Posted: Fri May 19, 2023 3:08 pm
by andreas.singraber
Hello!

Can you please elaborate how this post is related to your previous one here?

This time it seems you based your setup on makefile.include.gnu_ompi_mkl_omp which is a build with GNU compiler, OpenMPI and Intel MKL. Was this your intention (a pure GNU build would be based on makefile.include.gnu_omp)? However, in your post you mention
$ which mpif90
/usr/local/intel_oneapi2022/mpi/2021.5.1/bin/mpif90
So you are not using the GNU compiler here but actually the Intel one. As in the other post could you please post the outputs of

Code: Select all

mpif90 --version
mpif90 -show
Please note that our template makefile.include files rely on the correct mpif90 alias command. This is usually the case for the simpler Intel-only (FC=mpiifort) or GNU-only (FC=mpif90) builds. However, for the "mixed" builds like the ones you are using we must assume that the correct compiler is behind the mpif90 command. Whether this is actually the case is very system-dependent and not in our control.

Best,
Andreas Singraber

Re: Error installing vasp.6.4.1 with gcc

Posted: Sun May 21, 2023 6:22 am
by amihai_silverman1
Hi, you may ignore this post. I tried the compilation with gcc since previously the compilation with the Intel compilers failed to complete.
Thanks, Amihai