Parallel hdf5 and netcdf

hello every one,
here is what I get when compiling abinit 9.10.1:
Core build parameters

  • C compiler : gnu version 12.3

  • Fortran compiler : gnu version 12.3

  • architecture : intel core_i3 (64 bits)

  • debugging : basic

  • optimizations : standard

  • OpenMP enabled : no (collapse: ignored)

  • MPI enabled : yes (flavor: auto)

  • MPI in-place : no

  • MPI-IO enabled : yes

  • GPU enabled : no (flavor: none)

  • LibXML2 enabled : no

  • LibPSML enabled : no

  • XMLF90 enabled : no

  • HDF5 enabled : yes (MPI support: no)

  • NetCDF enabled : yes (MPI support: no)

  • NetCDF-F enabled : yes (MPI support: no)

  • FFT flavor : fftw3 (libs: user-defined)

  • LINALG flavor : netlib (libs: user-defined)

  • SCALAPACK enabled : no

  • ELPA enabled : no

  • MAGMA enabled : unknown (magma version >= 1.5 ? )

  • FCFLAGS : -g -ffree-line-length-none -fallow-argument-mismatch

  • NVCC_CFLAGS :

  • CPATH :

  • Build workflow : monolith
    with:

MPI settings

with_mpi=“yes”
enable_mpi_io=“yes”

linear algebra settings

with_linalg_flavor=“netlib”
LINALG_LIBS=“-L/usr/lib/x86_64-linux-gnu -llapack -lblas”

mandatory libraries

with_libxc=“yes”

LibXC

Website: http://www.tddft.org/programs/octopus/wiki/index.php/Libxc

Trigger and install prefix for LibXC (default is unset)

with_libxc=“/usr/lib/x86_64-linux-gnu/”

C preprocessor flags for LibXC (default is unset)

LIBXC_CPPFLAGS=“-I/usr/include”

C flags for LibXC (default is unset)

LIBXC_CFLAGS=“-I/usr/include”

Fortran flags for LibXC (default is unset)

LIBXC_FCFLAGS=“-I/usr/include”

Link flags for the LibXC library (default is unset)

LIBXC_FCFLAGS=“-I/usr/include”

Link flags for the LibXC library (default is unset)

#LIBXC_LDFLAGS=“”

Library flags for LibXC (default is unset)

LIBXC_LIBS=“-L/usr/lib/x86_64-linux-gnu -lxcf90 -lxc”
with_libxc=“yes”
with_hdf5=“yes”
with_netcdf=“yes”
with_netcdf_fortran=“yes”

fast fourier settings

with_fft_flavor=“fftw3”
FFTW3_CPPFLAGS=“-I/usr/include”
FFTW3_FCFLAGS=“-I/usr/include”
FFTW3_LIBS=“-L/usr/lib/x86_64-linux-gnu -lfftw3 -lfftw3f”

XML2 library (used by multibinit)

#with_libxml2=“yes”
#LIBXML2_FCFLAGS=“-I/usr/lib/x86_64-linux-gnu/”
#LIBXML2_LIBS=“-L/usr/include/libxml2/libxml/ -lxmlf90”

as you can see both hdf5 netcdf and netcdf-f are not recognized by abinit as parallel libraries…should I recompile them all from source or there is another workaround in abinit setting?

Hello,

What C and fortran compiler are you using? They should also be MPI. You should try setting

CC=mpicc
FC=“mpif90”
F77=“mpif77”

Otherwise, please provide the config.log file generated during the configure execution.

Best,
Olivier

Dear Olivier,
I set the compilers as you recommended but I still have the same problem…
Please find attached the config.log file.
I had a look at it, and for hdf5 for example, abinit is linking to the serial one !!!
/usr/lib/x86_64-linux-gnu/hdf5/serial
so why it is not linking to the parallel one??? or this is because it does not exist?
many many thanks,
Samir

config.log (191.3 KB)

Hi @samabdel! How did you install the hdf5 and netcdf libraries? Do you use precompiled binairies?

Cheers

Félix

Hi,
yes I use those already installed in Ubuntu.
Thanks

Hi,

Looking at your config.log file, the HDF5 configuration is performed at line 2218. You are not directing the installation to the specific folder you want. Probably it’s finding the serial version before the parallel? Same as for NETCDF on line 2264. Try to set

with_hdf5=“$PATH_TO_HDF5_PARAL”
with_netcdf=“$PATH_TO_NETCDF_PARAL”

Best,
Olivier

Hi,
After having set HDF5 library path to the correct one…abinit is complaining now about the hdf5 C compiler h5pcc???
config.log (186.8 KB)

Indeed, you have

configure:40206: WARNING: could not find the HDF5 C compiler
Please set the H5CC environment variable to a valid HDF5
C compiler (usually called ‘h5cc’ or ‘h5pcc’), so that
essential information about your HDF5 installation will be
exposed to the build system of ABINIT.

Try setting HDF5CC="$PATH_TO_HDF5_PARAL/bin/h5cc" manually?
Olivier

It is H5CC which should be set/defined…not HDF5CC.
I already set it but for some reason abinit is not taking it? don’t know why?

Sorry for the typo. Indeed it’s not finding it. Are you sure you are giving it correctly and that it is there and working?
Olivier

@Samabdel, It is possible that the hdf5 library downloaded using apt is not compiled in parallel. Did you install the libhdf5-mpi-dev and libnetcdf-mpi-dev using apt?

@samabdel what’s the status of this installation?