SZ: Fast Error-Bounded Floating-point Data Compressor for Scientific Applications

Sheng Di, Dingwen Tao, Franck Cappello

Today’s HPC applications are producing extremely large amounts of data, thus it is necessary to use an efficient compression before storing them to parallel file systems.

We developed the error-bounded HPC data compressor, by proposing a novel HPC data compression method that works very effectively on compressing large-scale HPC data sets.

The key features of SZ are listed below. 

1. Compression: Input: a data set (or a floating-point array with any dimensions) ; Output: the compressed byte stream

    Decompression: input: the compressed byte stream ; Output: the original data set with the compression error of each data point being within a pre-specified error bound ∆.

2. SZ supports C, Fortran, and Java. 

3. SZ supports two types of error bounds. The users can set either absolute error bound or relative error bound, or a combination of the two bounds (with operator AND or OR).

4. SZ supports three compression modes (similar to Gzip): SZ_BEST_SPEED, SZ_DEFAULT_COMPRESSION, and SZ_BEST_COMPRESSION. SZ_BEST_SPEED results in the fastest compression. The best compression factor will be reached when using SZ_BEST_COMPRESSION and Gzip_BEST_COMPRESSION meanwhile. SZ_DEFAULT_COMPRESSION is a tradeoff between the SZ_BEST_SPEED and SZ_BEST_COMPRESSION.

5. More detailed usage and examples can be found under the directories doc/user-guide.pdf and example/ respectively, in the package. 

6. Download

Version SZ 1.4.6-beta

-->>> Github of SZ <<<-

-->>> Source Code Download <<<--

(Contact: or

If you download the code, please let us know who you are. We are very keen of helping you using the SZ library.

A paper describing SZ is to appear in IPDPS16, and its technical report is available to download.

7. Version history: We recommend the latest version SZ 1.4.6

8. Other versions are available upon request