Skip to content

HDF5

A unique technology suite that makes possible the management of large and complex data.


hdf5 is one of three HDF packages available on RCC systems:

As described in HDF5's user guide:

The Hierarchical Data Format (HDF) implements a model for managing and storing data. The model includes an abstract data model and an abstract storage model (the data format), and libraries to implement the abstract model and to map the storage model to different storage mechanisms. The HDF5 library provides a programming interface to a concrete implementation of the abstract models. The library also implements a model of data transfer, i.e., efficient movement of data from one stored representation to another stored representation.

Using HDF5 on RCC Resources#

On the HPC, hdf5 can be accessed and used for many functions.

Below is an example which can be found on at the hd5 documentation page, compiling and linking hdf5 libraries on HPC using the gnu compiler:

1
2
3
[fsuID_hpc-login-40]$ module load gnu
[fsuID_hpc-login-40]$ gcc -c test_hdf5.c -I/opt/rcc/gnu/include/
[fsuID_hpc-login-40]$ gcc test_hdf5.o -L/opt/rcc/gnu/lib64 -lhdf5

These libraries are also available with the Intel compilers (module load intel). Using a different compiler will mean linking and including a different path, for example:

module load intel

Using HDF5 in Parallel#

HDF5 can also be used in parallel code. To do this, you will need to load on of the following modules:

$ module load gnu openmpi
or
$ module load intel openmpi

If you want to compile code with HDF5 with OpenMPI support, you will need to add the cooresponding flags to your compile script:

$ -I /opt/rcc/gnu/openmpi/include  
$ -L /opt/rcc/gnu/openmpi/lib64 -lhdf5 
or, if using intel
$ -I /opt/rcc/intel/openmpi/include
$ -L /opt/rcc/intel/openmpi/lib64 -lhdf5

The RCC uses the h5pcc parallel compiler wrapper for the HDF5 library. To view the parallel configuration, use the following command:

$ h5pcc -showconfig