HDF5 Libraries and Binaries

HDF5 - hierarchical data format

Documentation

HDF5 is a data model, library, and file format for storing and managing data. It can represent very complex data objects and a wide variety of metadata. For a documentation visit the HDF group support portal

Installed versions

We cannot support all combinations of hdf5, compiler and mpi. If none of the installed version works, please contact support for installation of missing versions.

Serial HDF-5

VersionCompilerModuleAPI
1.10.5intel/18.0.6hdf5/intel/1.10.5v110
1.10.5gcc/7.5.0hdf5/gcc.7/1.10.5v110
1.10.5gcc/8.3.0hdf5/gcc.8/1.10.5v110
1.10.6gcc/8.3.0hdf5/gcc.8/1.10.6v110
1.10.7gcc/9.3.0hdf5/gcc.9/1.10.7v110
1.12.1intel/19.0.5hdf5/intel/1.12.1v112
1.12.2gcc/8.3.0hdf5/gcc.8/1.12.2v112
1.12.2gcc/9.3.0hdf5/gcc.9/1.12.2v112
1.12.2intel/2022.2hdf5/intel/1.12.2v112

Parallel HDF-5

VersionCompiler, MPIModuleAPI
1.10.5intel/18.0.6, impi/2018.5hdf5-parallel/impi/intel/1.10.5v110
1.12.0intel/19.1.2, impi/2019.8hdf5-parallel/impi/intel/1.12.0v112
1.10.6intel/18.0.6, openmpi/intel/3.1.6hdf5-parallel/ompi/intel/1.10.6v110
1.10.5gcc/8.3.0, openmpi/gcc.9/3.1.5hdf5-parallel/ompi/gcc.8/1.10.5v110
1.10.6gcc/9.2.0, openmpi/gcc.9/3.1.5hdf5-parallel/ompi/gcc.9/1.10.6v110
1.12.1gcc/8.3.0, openmpi/gcc.9/3.1.5hdf5-parallel/ompi/gcc.8/1.12.0v112

The libraries are threadsafe and can be used in omp-parallel codes. To see configure-details on the installed libraries, load a hdf5-module and issue cat $HDF5DIR/libhdf5.settings!

Modules and Prerequisites

  • module avail hdf5 shows all available hdf5 versions
  • module show <modulename> shows environment variables set when loading the module
  • module help <modulename> shows some details on compilers and MPI

Loading a module adds the path to some hdf5-binaries to $PATH. For convenience, some other environmental variables are extended or defined, which satisfies the needs of several software packages for linking the hdf5-libraries:

PATH, LD_RUN_PATH

C_INCLUDE_PATH, CPLUS_INCLUDE_PATH,

HDF5DIR, HDF5INCLUDE, HDF5LIB

HDF5_HOME, HDF5_ROOT

The module files do not require any prerequisites. All dynamically linked libraries are found, since RPATH is defined in libraries and binaries. For an example, consider

  • readelf -a $HDF5DIR/libhdf5_hl.so | grep RPATH

Linking the hdf5-libraries in user programs

Loading a hdf5-module does not link the libraries automatically, when compiling some other software. hdf5 does not deliver any standard way to detect the path to the libraries like pkg-config. So you have to configure Makefiles or install-scripts “by hand”. The environment variables exported by the modules should allow short and flexible notation.

hdf5-modules do not have any effect during the runtime of your binaries. If the hdf5-libraries are linked dynamically, it is recommended to set RPATH in the binary. Otherwise the hdf5-libraries (and others) will not be found, during runtime. This can be done with the compiler option -Wl,-rpath=$LD_RUN_PATH, which passes the rpath to the linker.

hdf5 compiler wrapper

The compiler wrapper h5cc, h5fc (parallel h5pcc and h5pfc) can be used to build programs linking the hdf5-libraries. These wrappers set rpath for all libraries to be linked dynamically for hdf5.

Installing the hdf5-libraries at HLRN

Read more