HDF5 - hierarchical data format
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
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.
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:
HDF5DIR, HDF5INCLUDE, HDF5LIB
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.