Page 1 of 1

Compilation Error using 8 Byte Integers (Intel Compiler)

Posted: Wed May 24, 2017 9:44 pm
by ThomasG
Dear all,

I've previously been running ABINIT using the Intel compilers, Intel MPI and Intel MKL (all version 2017), but upon calculating a slightly larger system, I received an error message because the number of entries in my WFK file is larger than supported for 4 byte integers. This message also stated that I should recompile it with 8 byte integers. However, when I do so (by adding -i8 and -ilp64 flags to the Fortran compiler and using the respective ilp64 options for the MKL library), the compilation fails with the following error message for the file m_xmpi.F90 in the 12_hide_mpi/ folder:

Code: Select all

make[3]: Entering directory `/home/lv70744/TGoetsch/abinit-8.2.3/src/12_hide_mpi'
/home/lv70744/TGoetsch/abinit-8.2.3/config/wrappers/wrap-mpifc -DHAVE_CONFIG_H -I. -I../..  -I../../src/11_memory_mpi -I../../src/11_memory_mpi -I../../src/10_defs -I../../src/10_defs -I../../src/incs -I../../src/incs -I/home/lv70744/TGoetsch/abinit-8.2.3/fallbacks/exports/include   -free -module /home/lv70744/TGoetsch/abinit-8.2.3/src/mods -i8 -ilp64 -O3 -g -extend-source -noaltparam -nofpscomp   -c -o m_xmpi.o m_xmpi.F90
./xmpi_max.finc(71): error #5286: Ambiguous generic interface XMPI_MAX: previously declared specific procedure XMPI_MAX_INT0D_I4B is not distinguishable from this declaration. [XMPI_MAX_INT0D_I8B]
subroutine xmpi_max_int0d_i8b(xval,xmax,comm,ier)
-----------^
compilation aborted for m_xmpi.F90 (code 1)
make[3]: *** [m_xmpi.o] Error 1
make[3]: Leaving directory `/home/lv70744/TGoetsch/abinit-8.2.3/src/12_hide_mpi'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/lv70744/TGoetsch/abinit-8.2.3/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/lv70744/TGoetsch/abinit-8.2.3'
make: *** [all] Error 2


I've used the following configuration file to make the code:

Code: Select all

enable_64bit_flags="yes"
enable_optim="yes"

CC="mpiicc"
CFLAGS_OPTIM="-O3"
 
CXX="mpiicpc"
CXXFLAGS_OPTIM="-O3"
 
FC="mpiifort"
FCFLAGS_OPTIM="-i8 -ilp64 -O3"
 
enable_mpi="yes"
enable_mpi_io="yes"
with_mpi_prefix="/cm/shared/apps/intel/compilers_and_libraries_2017.4.196/linux/mpi/intel64"
 
with_trio_flavor="netcdf"
 
with_fft_flavor="fftw3"
with_fft_incs="-I${MKLROOT}/include"
with_fft_libs=" -L${MKLROOT}/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_ilp64 -lpthread -lm -ldl"
with_linalg_flavor="mkl"
with_linalg_incs="-I${MKLROOT}/include"
with_linalg_libs=" -L${MKLROOT}/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_ilp64 -lpthread -lm -ldl"
with_dft_flavor="atompaw+libxc+wannier90"


I've also played around with the placement of the -i8 flag (because I first had it in the extra flags and thought it might have something to do with the position within the flags - that's why it's in the optimization flags here), but to no avail. The error only comes up when I use the -i8 flag though and does not seem to be connected to the usage of the ilp64 versions of the mkl.


Does anyone have any experience with this and could maybe shed some light on that? Since I have no experience using 64 bit integers, any tips would be highly appreciated! :)

All the best,
Thomas

Re: Compilation Error using 8 Byte Integers (Intel Compiler)

Posted: Fri Jul 21, 2017 5:24 pm
by pouillon
I've reported this issue in the bug tracker of the Abinit Gitlab. You can follow its evolution at: https://gitlab.abinit.org/trunk/abinit/issues/19