ZFP

About

ZFP is a compressed format for representing multidimensional floating-point and integer arrays. It is widely used in various applications, including data compression, data archiving, and data management. For more information, visit the official ZFP website.

Note

On Discoverer we use zfp as main productive compressed format for representing multidimensional floating-point and integer arrays for applications that employ HDF5 and NetCDF.

Supported versions

In case your applications requite the use of another compressed format for representing multidimensional floating-point and integer arrays, you can install it by yourself, but those builds will not be supported by the Discoverer HPC team.

To check which zfp versions and build types are currently supported on Discoverer, execute on the login node:

module avail zfp

Compiler support

Warning

Currently, we support only LLVM builds of ZFP. No other builds will be officially supported. If you still see some environment modules for other compiler sets, they are not supported and will be retired soon.

Loading

If you need to access the latest version of the ZFP library, load the module without specifying the version:

module load zfp

In case you need to access a specific version of the ZFP library, you can specify the version:

module load zfp/<version>

Build recipes and tests

We use the recent LLVM Compiler Infrastructure to build the ZFP library code. We do not support any other compilers for that purpose. The LLVM.org compilers are the default compilers on Discoverer Petascale Supercomputer. Since the code of the library does not include Fortran, the compiled binaries are not Fortran-compatible and can be used with any other compiler collection. That means our build of zfp is optimised for producing the fastest possible binaries for CPU-based applications.

For those who are interested in the process of compiling and optimizing the code of ZFP we follow, there is public access to our build recipes at:

https://gitlab.discoverer.bg/vkolev/recipes/-/tree/main/zfp

There are also logs that were collected during the compilation and testing processes.

Getting help

See Getting help