Page 1 of 1

Error locating the fft subroutines

Posted: Wed May 18, 2022 5:28 pm
by michail_stamatakis1
Dear Developers.

I tried to install vasp 5.4.4 in an AMD cluster. I get an error related with the fft libraries. I am using the open-source fftw3 libraries. I am using as well pre-installed versions of BLAS, Lapack, ans ScaLapack.

I attach the makefile.include file, and the complete output of the compilation. Because of too many characters, I can not attach the complete output, I show only the errors.

Thank you.

makefile.include
----------------------------------------------------------------------------------------------
# Precompiler options
CPP_OPTIONS= -DHOST=\"LinuxGNU\" \
-DMPI -DMPI_BLOCK=8000 \
-Duse_collective \
-DscaLAPACK \
-DCACHE_SIZE=4000 \
-Davoidalloc \
-Duse_bse_te \
-Dtbdyn \
-Duse_shmem

CPP = /opt/gridware/depots/54e7fb3c/el7/pkg/compilers/gcc/9.3.0/bin/gcc -E -P -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS)

FC = /opt/gridware/depots/54e7fb3c/el7/pkg/mpi/openmpi/4.0.4/gcc-9.3.0+ucx-1.8.0/bin/mpif90
FCL = /opt/gridware/depots/54e7fb3c/el7/pkg/mpi/openmpi/4.0.4/gcc-9.3.0+ucx-1.8.0/bin/mpif90

FREE = -ffree-form -ffree-line-length-none

FFLAGS = -w
OFLAG = -O2
OFLAG_IN = $(OFLAG)
DEBUG = -O0

LIBDIR = /opt/gridware/depots/54e7fb3c/el7/pkg/compilers/gcc/9.3.0/lib64
BLAS = /opt/gridware/depots/54e7fb3c/el7/pkg/libs/blas/3.8.0/gcc-9.3.0/libblas.a
LAPACK = /opt/gridware/depots/54e7fb3c/el7/pkg/libs/lapack/3.9.0/gcc-9.3.0/lib64/liblapack.a
BLACS =
SCALAPACK = /opt/gridware/depots/54e7fb3c/el7/pkg/libs/scalapack_atlasshared/2.2.0/gcc-9.3.0+openmpi-4.0.4+atlas-3.10.3/lib/libscalapack.so

LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS)

FFTW ?= /opt/gridware/depots/54e7fb3c/el7/pkg/libs/fftw3_double/3.3.10/gcc-9.3.0+openmpi-4.0.4
FFTWF ?= /opt/gridware/depots/54e7fb3c/el7/pkg/libs/fftw3_float/3.3.10/gcc-9.3.0+openmpi-4.0.4
LLIBS += /opt/gridware/depots/54e7fb3c/el7/pkg/libs/fftw3_double/3.3.10/gcc-9.3.0+openmpi-4.0.4/lib/libfftw3.a /opt/gridware/depots/54e7fb3c/el7/pkg/libs/fftw3_double/3.3.10/gcc-9.3.0+openmpi-4.0.4/lib/libfftw3_mpi.a /opt/gridware/depots/54e7fb3c/el7/pkg/libs/fftw3_float/3.3.10/gcc-9.3.0+openmpi-4.0.4/lib/libfftw3f.a /opt/gridware/depots/54e7fb3c/el7/pkg/libs/fftw3_float/3.3.10/gcc-9.3.0+openmpi-4.0.4/lib/libfftw3f_mpi.a
INCS = -I/opt/gridware/depots/54e7fb3c/el7/pkg/libs/fftw3_double/3.3.10/gcc-9.3.0+openmpi-4.0.4/include -I/opt/gridware/depots/54e7fb3c/el7/pkg/libs/fftw3_float/3.3.10/gcc-9.3.0+openmpi-4.0.4/include

OBJECTS = /opt/gridware/depots/54e7fb3c/el7/pkg/libs/fftw3_double/3.3.10/gcc-9.3.0+openmpi-4.0.4/lib/libfftw3.so /opt/gridware/depots/54e7fb3c/el7/pkg/libs/fftw3_double/3.3.10/gcc-9.3.0+openmpi-4.0.4/lib/libfftw3_mpi.so /opt/gridware/depots/54e7fb3c/el7/pkg/libs/fftw3_float/3.3.10/gcc-9.3.0+openmpi-4.0.4/lib/libfftw3f.so /opt/gridware/depots/54e7fb3c/el7/pkg/libs/fftw3_float/3.3.10/gcc-9.3.0+openmpi-4.0.4/lib/libfftw3f_mpi.so

OBJECTS_O1 +=
OBJECTS_O2 +=

# 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 getshmem.o

# For the parser library
CXX_PARS = g++

LIBS += parser
LLIBS += -Lparser -lparser -lstdc++

# Normally no need to change this
SRCDIR = /users/3052157/vasp/vasp.5.4.4.pl2/src
BINDIR = /opt/apps/vasp/5.4.4/gcc-9.3.0+openmpi-4.0.4+blas-3.8.0+lapack-3.9.0+scalapack-2.2.0+fftw3-3.3.10/bin

#================================================
# GPU Stuff
#
#CPP_GPU = -DCUDA_GPU -DRPROMU_CPROJ_OVERLAP -DCUFFT_MIN=28 -UscaLAPACK # -DUSE_PINNED_MEMORY
#
#OBJECTS_GPU= fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d_gpu.o fftmpiw_gpu.o

CC = /opt/gridware/depots/54e7fb3c/el7/pkg/compilers/gcc/9.3.0/bin/gcc
CXX = /opt/gridware/depots/54e7fb3c/el7/pkg/compilers/gcc/9.3.0/bin/g++
CFLAGS = -fPIC -DADD_ -openmp -DMAGMA_WITH_MKL -DMAGMA_SETAFFINITY -DGPUSHMEM=300 -DHAVE_CUBLAS

#CUDA_ROOT ?= /opt/gridware/depots/54e7fb3c/el7/pkg/libs/nvidia-cuda/11.0.3
#NVCC := $(CUDA_ROOT)/bin/nvvm
#CUDA_LIB := -L$(CUDA_ROOT)/bin/lib64 -llibnvToolsExt -llibcudart -llibcufft -llibcublas

GENCODE_ARCH := -gencode=arch=compute_30,code=\"sm_30,compute_30\" \
-gencode=arch=compute_35,code=\"sm_35,compute_35\" \
-gencode=arch=compute_60,code=\"sm_60,compute_60\"

MPI_INC = /opt/gridware/depots/54e7fb3c/el7/pkg/mpi/openmpi/4.0.4/gcc-9.3.0+ucx-1.8.0/include
----------------------------------------------------------------------------------------------

Compilation output
----------------------------------------------------------------------------------------------
[3052157@node117 [kelvin2] vasp.5.4.4.pl2]$ module load compilers/gcc/9.3.0
[3052157@node117 [kelvin2] vasp.5.4.4.pl2]$ module load mpi/openmpi/4.0.4/gcc-9.3.0+ucx-1.8.0
[3052157@node117 [kelvin2] vasp.5.4.4.pl2]$ module load libs/blas/3.8.0/gcc-9.3.0
[3052157@node117 [kelvin2] vasp.5.4.4.pl2]$ module load libs/lapack/3.9.0/gcc-9.3.0
[3052157@node117 [kelvin2] vasp.5.4.4.pl2]$ module load libs/scalapack_atlasshared/2.2.0/gcc-9.3.0+openmpi-4.0.4+atlas-3.10.3
[3052157@node117 [kelvin2] vasp.5.4.4.pl2]$ module load libs/fftw3_double/3.3.10/gcc-9.3.0+openmpi-4.0.4
[3052157@node117 [kelvin2] vasp.5.4.4.pl2]$ module load libs/fftw3_float/3.3.10/gcc-9.3.0+openmpi-4.0.4
[3052157@node117 [kelvin2] vasp.5.4.4.pl2]$ module list
Currently Loaded Modulefiles:
1) services/s3cmd
2) null
3) compilers/gcc/9.3.0
4) libs/gcc/9.3.0
5) mpi/openmpi/4.0.4/gcc-9.3.0+ucx-1.8.0
6) libs/blas/3.8.0/gcc-9.3.0
7) libs/lapack/3.9.0/gcc-9.3.0
8) libs/atlas/3.10.3/gcc-4.8.5
9) libs/scalapack_atlasshared/2.2.0/gcc-9.3.0+openmpi-4.0.4+atlas-3.10.3
10) libs/fftw3_double/3.3.10/gcc-9.3.0+openmpi-4.0.4
11) libs/fftw3_float/3.3.10/gcc-9.3.0+openmpi-4.0.4

[3052157@node117 [kelvin2] vasp.5.4.4.pl2]$ make all
< lots of outputs ... >
gw_model.o:gw_model.f90:(.text+0x15dc): more undefined references to `fft3d_mpi_' follow
steep.o: In function `__steep_MOD_edstep':
steep.f90:(.text+0x708): undefined reference to `fftwav_mpi_'
steep.f90:(.text+0x1ed0): undefined reference to `fftwav_mpi_'
steep.f90:(.text+0x1f80): undefined reference to `fftwav_mpi_'
david_inner.o: In function `__david_inner_MOD_eddav_inner':
david_inner.f90:(.text+0x7a8e): undefined reference to `fftext_mpi_'
rot.o: In function `__rot_MOD_edwav':
rot.f90:(.text+0x697b): undefined reference to `fftwav_mpi_'
rot.f90:(.text+0x794f): undefined reference to `fftwav_mpi_'
rot.f90:(.text+0x7e73): undefined reference to `fftext_mpi_'
stm.o: In function `fft_one_':
stm.f90:(.text+0x45): undefined reference to `cfftml_'
stm.o: In function `wrt_stm_file_':
stm.f90:(.text+0x1c4): undefined reference to `fftchk_furth_'
stm.f90:(.text+0x49e): undefined reference to `cfttab_'
elpol.o: In function `__elpol_MOD_set_sv_berry':
elpol.f90:(.text+0x2a78): undefined reference to `fftwav_mpi_'
elpol.o: In function `__elpol_MOD_mnmat':
elpol.f90:(.text+0x3f9f): undefined reference to `fftwav_mpi_'
elpol.f90:(.text+0x4086): undefined reference to `fftext_mpi_'
hamil_lr.o: In function `__hamil_lr_MOD_hamiltmu_lr':
hamil_lr.f90:(.text+0x1acf): undefined reference to `fftext_mpi_'
hamil_lr.f90:(.text+0x2346): undefined reference to `fftext_mpi_'
hamil_lr.o: In function `__hamil_lr_MOD_lr_hamil':
hamil_lr.f90:(.text+0x34f8): undefined reference to `fftwav_mpi_'
lr_helper.o: In function `tr_pot_charge_':
lr_helper.f90:(.text+0x8bf4): undefined reference to `fft3d_mpi_'
lr_helper.o: In function `potxc2_':
lr_helper.f90:(.text+0x8d66): undefined reference to `fft3d_mpi_'
lr_helper.f90:(.text+0x8ddc): undefined reference to `fft3d_mpi_'
hamil_lrf.o: In function `__hamil_lrf_MOD_hamiltmu_lrf':
hamil_lrf.f90:(.text+0x11e3): undefined reference to `fftext_mpi_'
hamil_lrf.f90:(.text+0x1482): undefined reference to `fftext_mpi_'
hamil_lrf.o: In function `__hamil_lrf_MOD_lrf_hamil':
hamil_lrf.f90:(.text+0x1cc1): undefined reference to `fftwav_mpi_'
hamil_lrf.o: In function `__hamil_lrf_MOD_hamiltmu_commutator':
hamil_lrf.f90:(.text+0x47b4): undefined reference to `fftext_mpi_'
hamil_lrf.o: In function `__hamil_lrf_MOD_lrf_commutator':
hamil_lrf.f90:(.text+0x5da8): undefined reference to `fftwav_mpi_'
wannier.o: In function `__wannier_MOD_set_sv_wannier':
wannier.f90:(.text+0x52e0): undefined reference to `fftwav_mpi_'
wannier.o: In function `__wannier_MOD_wannmat':
wannier.f90:(.text+0xde4e): undefined reference to `fftwav_mpi_'
wannier.f90:(.text+0xdf41): undefined reference to `fftext_mpi_'
twoelectron4o.o: In function `__twoelectron4o_MOD_twoelectron4o_acc':
twoelectron4o.f90:(.text+0x2bb5): undefined reference to `fft3d_mpi_'
twoelectron4o.f90:(.text+0x2ced): undefined reference to `fft3d_mpi_'
twoelectron4o.f90:(.text+0x3798): undefined reference to `fftext_mpi_'
mlwf.o: In function `__mlwf_MOD_mlwf_dpsi_dk':
mlwf.f90:(.text+0x95cf): undefined reference to `fftext_mpi_'
wave_cacher.o: In function `__wave_cacher_MOD_store_gw_acc_final':
wave_cacher.f90:(.text+0x8a19): undefined reference to `fftext_mpi_'
wave_cacher.f90:(.text+0x8d53): undefined reference to `fftext_mpi_'
wave_cacher.o: In function `__wave_cacher_MOD_store_gw_acc':
wave_cacher.f90:(.text+0x9e8b): undefined reference to `fftwav_mpi_'
wave_cacher.f90:(.text+0xa3e1): undefined reference to `fftwav_mpi_'
chi_base.o: In function `__chi_base_MOD_oep_charge':
chi_base.f90:(.text+0x14b39): undefined reference to `fftext_mpi_'
chi_base.o: In function `__chi_base_MOD_oep_gw':
chi_base.f90:(.text+0x16780): undefined reference to `fftwav_mpi_'
chi_base.f90:(.text+0x16a67): undefined reference to `fft3d_mpi_'
chi_base.f90:(.text+0x16b8b): undefined reference to `fftext_mpi_'
chi_base.f90:(.text+0x17341): undefined reference to `fftwav_mpi_'
chi_base.f90:(.text+0x1764a): undefined reference to `fft3d_mpi_'
chi_base.f90:(.text+0x1775b): undefined reference to `fftext_mpi_'
chi_base.o: In function `__chi_base_MOD_add_xi_spectral':
chi_base.f90:(.text+0x1c186): undefined reference to `fftext_mpi_'
chi_base.o: In function `__chi_base_MOD_add_xi':
chi_base.f90:(.text+0x2089d): undefined reference to `fftext_mpi_'
chi_base.o: In function `__chi_base_MOD_screened_two_electron_cached':
chi_base.f90:(.text+0x234a8): undefined reference to `fftext_mpi_'
chi_base.o: In function `__chi_base_MOD_screened_two_electron_integral':
chi_base.f90:(.text+0x25801): undefined reference to `fftext_mpi_'
local_field.o: In function `__local_field_MOD_twoelectron4o_acc_hartree_sflip':
local_field.f90:(.text+0x10a6): undefined reference to `fft3d_mpi_'
local_field.f90:(.text+0x10e9): undefined reference to `fft3d_mpi_'
local_field.f90:(.text+0x1170): undefined reference to `fftext_mpi_'
local_field.f90:(.text+0x1b05): undefined reference to `fftext_mpi_'
local_field.o: In function `__local_field_MOD_oneelectron_trans':
local_field.f90:(.text+0x2d74): undefined reference to `fft3d_mpi_'
local_field.o: In function `__local_field_MOD_twoelectron4o_acc_hartree':
local_field.f90:(.text+0x4ae6): undefined reference to `fft3d_mpi_'
local_field.f90:(.text+0x4b29): undefined reference to `fft3d_mpi_'
local_field.f90:(.text+0x4bb0): undefined reference to `fftext_mpi_'
local_field.f90:(.text+0x5551): undefined reference to `fftext_mpi_'
local_field.o: In function `__local_field_MOD_twoelectron4o_acc_ex2':
local_field.f90:(.text+0x6e42): undefined reference to `fftext_mpi_'
local_field.f90:(.text+0x7b05): undefined reference to `fftext_mpi_'
local_field.o: In function `__local_field_MOD_twoelectron4o_acc_ex2_inter':
local_field.f90:(.text+0x9a37): undefined reference to `fftext_mpi_'
local_field.o:local_field.f90:(.text+0xa6d6): more undefined references to `fftext_mpi_' follow
local_field.o: In function `__local_field_MOD_extract_local_field_effects':
local_field.f90:(.text+0x19b6e): undefined reference to `fft3d_mpi_'
local_field.o: In function `__local_field_MOD_calculate_local_field_dft':
local_field.f90:(.text+0x1a7c0): undefined reference to `fft3d_mpi_'
local_field.f90:(.text+0x1a8b0): undefined reference to `fft3d_mpi_'
ump2.o: In function `__mp2_MOD_calc_2orbital_ftod':
ump2.f90:(.text+0x3666): undefined reference to `fftext_mpi_'
ump2.f90:(.text+0x4200): undefined reference to `fftext_mpi_'
ump2kpar.o: In function `__mp2kpar_MOD_twoelectron4o_acc_mp2':
ump2kpar.f90:(.text+0x101f): undefined reference to `fftext_mpi_'
ump2kpar.f90:(.text+0x1974): undefined reference to `fftext_mpi_'
fcidump.o: In function `__fcidump_MOD_invert_kpoint':
fcidump.f90:(.text+0x7f8): undefined reference to `fftext_mpi_'
fcidump.o:fcidump.f90:(.text+0xa790): more undefined references to `fftext_mpi_' follow
acfdt.o: In function `__acfdt_MOD_total_charge_fock':
acfdt.f90:(.text+0xcb2): undefined reference to `fft3d_mpi_'
acfdt.f90:(.text+0x13c4): undefined reference to `fft3d_mpi_'
acfdt.o: In function `__acfdt_MOD_fock_acfdt':
acfdt.f90:(.text+0x2999): undefined reference to `fft3d_mpi_'
rmm-diis_mlr.o: In function `__rmm_diis_mlr_MOD_linear_response_diis':
rmm-diis_mlr.f90:(.text+0x5f55): undefined reference to `fftext_mpi_'
linear_response_NMR.o: In function `__mlr_main_nmr_MOD_ps_biot_savart_dr':
linear_response_NMR.f90:(.text+0xbb8): undefined reference to `fft3d_mpi_'
linear_response_NMR.o: In function `__mlr_main_nmr_MOD_mlr_proj_in_empty_subspace_blas_':
linear_response_NMR.f90:(.text+0x888e): undefined reference to `fftext_mpi_'
linear_response_NMR.o: In function `__mlr_main_nmr_MOD_mlr_proj_in_empty_subspace_blas':
linear_response_NMR.f90:(.text+0xa64e): undefined reference to `fftext_mpi_'
linear_response_NMR.o: In function `__mlr_main_nmr_MOD_mlr_proj_in_empty_subspace':
linear_response_NMR.f90:(.text+0xc3a1): undefined reference to `fftext_mpi_'
linear_response_NMR.o: In function `__mlr_main_nmr_MOD_mlr_commutator_rq':
linear_response_NMR.f90:(.text+0xd902): undefined reference to `fftwav_mpi_'
linear_response_NMR.f90:(.text+0xdb48): undefined reference to `fftext_mpi_'
linear_response_NMR.f90:(.text+0xe1a8): undefined reference to `fftwav_mpi_'
linear_response_NMR.f90:(.text+0xe950): undefined reference to `fftext_mpi_'
linear_response_NMR.o: In function `__mlr_main_nmr_MOD_mlr_commutator':
linear_response_NMR.f90:(.text+0xfdc0): undefined reference to `fftext_mpi_'
linear_response_NMR.f90:(.text+0xfe92): undefined reference to `fftwav_mpi_'
linear_response_NMR.f90:(.text+0x10dda): undefined reference to `fftwav_mpi_'
linear_response_NMR.f90:(.text+0x10ff0): undefined reference to `fftext_mpi_'
linear_response_NMR.o: In function `__mlr_main_nmr_MOD_mlr_lq_psi':
linear_response_NMR.f90:(.text+0x11d30): undefined reference to `fftwav_mpi_'
linear_response_NMR.f90:(.text+0x12321): undefined reference to `fftext_mpi_'
linear_response_NMR.o: In function `pscurrent_para_two_kpt_':
linear_response_NMR.f90:(.text+0x190c5): undefined reference to `fftwav_mpi_'
linear_response_NMR.f90:(.text+0x19299): undefined reference to `fftwav_mpi_'
linear_response_NMR.f90:(.text+0x19481): undefined reference to `fftwav_mpi_'
linear_response_NMR.f90:(.text+0x19669): undefined reference to `fftwav_mpi_'
linear_response_NMR.f90:(.text+0x19841): undefined reference to `fftwav_mpi_'
linear_response_NMR.o:linear_response_NMR.f90:(.text+0x19a29): more undefined references to `fftwav_mpi_' follow
auger.o: In function `__auger_MOD_auger_2e4o':
auger.f90:(.text+0x1f8a): undefined reference to `fftext_mpi_'
auger.f90:(.text+0x2c6f): undefined reference to `fftext_mpi_'
auger.o: In function `__auger_MOD_calculate_auger':
auger.f90:(.text+0x5a4a): undefined reference to `fftini_mpi_'
dmatrix.o: In function `__dmatrix_MOD_dmatrix_calculate_jij':
dmatrix.f90:(.text+0x893f): undefined reference to `fft3d_mpi_'
dmatrix.f90:(.text+0x8e6d): undefined reference to `fft3d_mpi_'
dmatrix.o: In function `__dmatrix_MOD_dmatrix_calculate_kij':
dmatrix.f90:(.text+0xa5cb): undefined reference to `fft3d_mpi_'
main.o: In function `performance_test.4522':
main.f90:(.text+0x1010): undefined reference to `fftwav_mpi_'
main.f90:(.text+0x1133): undefined reference to `fft3d_mpi_'
main.f90:(.text+0x11d2): undefined reference to `fft3d_mpi_'
main.f90:(.text+0x11f0): undefined reference to `fft3d_mpi_'
main.f90:(.text+0x12d6): undefined reference to `fftext_mpi_'
main.f90:(.text+0x13fa): undefined reference to `fftwav_mpi_'
main.o: In function `MAIN__':
main.f90:(.text+0x9115): undefined reference to `fftchk_mpi_'
main.f90:(.text+0x9418): undefined reference to `fftchk_mpi_'
main.f90:(.text+0xac25): undefined reference to `fftchk_mpi_'
main.f90:(.text+0x12cb6): undefined reference to `fftini_mpi_'
main.f90:(.text+0x12ccb): undefined reference to `mapset_'
main.f90:(.text+0x12dc3): undefined reference to `mapset_'
main.f90:(.text+0x12dd8): undefined reference to `mapset_'
main.f90:(.text+0x12e63): undefined reference to `mapset_'
main.f90:(.text+0x15802): undefined reference to `fftmakeplan_mpi_'
collect2: error: ld returned 1 exit status
make[2]: *** [vasp] Error 1
make[2]: Leaving directory `/users/3052157/vasp/vasp.5.4.4.pl2/build/std'
cp: cannot stat 'vasp': No such file or directory
make[1]: *** [all] Error 1
make[1]: Leaving directory `/users/3052157/vasp/vasp.5.4.4.pl2/build/std'
make: *** [std] Error 2
[3052157@node117 [kelvin2] vasp.5.4.4.pl2]$ exit
exit
srun: error: node117: task 0: Exited with exit code 2

Re: Error locating the fft subroutines

Posted: Wed Jul 27, 2022 3:39 pm
by henrique_miranda
I think this question has been answered before in this forum. See for example here:
forum/viewtopic.php?f=2&t=6053&p=6055

This is also mentioned on our wiki page here:
wiki/index.php/Installing_VASP.5.X.X#Fa ... Transforms

Let me know if this solves the issue!