Fast Error-bounded Lossy HPC Data Compression with SZ
📜 Abstract
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. In this paper, we optimize the error-bounded HPC data compression, by proposing a novel HPC data compression method that works very effectively on compressing large-scale HPC data sets. The compression method starts by linearizing multi-dimensional snapshot data. The key idea is to fit/predict the successive data points with the bestfit selection of curve fitting models. The data that can be predicted precisely will be replaced by the code of the corresponding curve-fitting model. As for the unpredictable data that cannot be approximated by curve-fitting models, we perform an optimized lossy compression via a binary representation analysis. We evaluate our proposed solution using 13 real-world HPC applications across different scientific domains, and compare it to many other state-of-the-art compression methods (including Gzip, FPC, ISABELA, NUMARCK, ZFP, FPZIP, etc.). Experiments show that the compression ratio of our compressor ranges in 3.3/1 - 436/1, which is higher than the second-best solution ZFP by as little as 2x and as much as an order of magnitude for most cases. The compression time of SZ is comparable to other solutions’, while its decompression time is less than the second best one by 50%-90%. On an extreme-scale use case, experiments show that the compression ratio of SZ exceeds that of ZFP by 80%.
✨ Summary
Contribution and method
The paper introduces SZ, an error-bounded lossy compressor for floating-point data generated by large-scale HPC simulations. Its design targets reduced storage and I/O costs while guaranteeing that every reconstructed value remains within a user-specified absolute error bound, relative error bound, or a selected combination of the two.
The compressor first treats a multidimensional array as a one-dimensional sequence using the array’s intrinsic memory order. This avoids the computational cost of constructing space-filling curves while preserving useful locality when data are partitioned into parallel tiles. It then predicts each value from previously decompressed values using three selectable models: preceding-neighbor fitting, linear fitting, and quadratic fitting. If the best prediction satisfies the requested error bound, SZ stores a two-bit model code rather than the value itself. Otherwise, the value is classified as unpredictable and compressed separately.
For unpredictable values, SZ analyzes their IEEE 754 representation. It subtracts the midpoint of their value range to move them closer to zero, determines the mantissa precision required by the error bound and range, truncates insignificant mantissa bits, and applies XOR- and leading-zero-based encoding to neighboring values. The model-selection stream is subsequently suitable for additional compression with Gzip because consecutive model codes are often highly repetitive.
Evaluation and findings
The evaluation covers 13 applications from seven scientific domains, including hydrodynamics, magnetohydrodynamics, particle simulation, diffusion, gravity, shock simulation, and climate modeling. On the first 12 applications, SZ achieves reported compression ratios from 3.3:1 to 436:1. Among the tested error-bounded methods, SZ generally outperforms ZFP, with BlastBS identified as an exception where ZFP is slightly better. SZ strictly satisfies the specified absolute error bound in the experiments. Its compression time is generally comparable to competing methods, while decompression is substantially faster. On the 1.5 TB ATM climate-simulation workload, SZ achieves ratios of 5.4:1 and 4.02:1 for absolute error bounds of 10^-4 and 10^-6, respectively, compared with 3:1 and 2.3:1 for ZFP; SZ decompression is approximately four times faster in that experiment.
Limitations and subsequent influence
The approach is most effective when the serialized data exhibit local smoothness that can be captured by its prediction models. Its compression ratio decreases for less-smooth data such as BlastBS. The paper also identifies future support for formats such as netCDF and HDF5 as an open direction.
The work became the initial published version of the SZ compressor family. The project’s later development history identifies subsequent SZ versions based on multidimensional prediction, error-controlled quantization, and high-compression-ratio optimization. (github.com) Later research extended the framework to GPU implementations, including cuSZ, and to SZ3, a modular framework that supports interchangeable predictors, configurable compression pipelines, and automatic best-fit predictor selection. (szcompressor.org) The official project repository currently describes SZ3 as the actively developed version and SZ2 as a legacy version, indicating continued software evolution from the system introduced in this paper. (github.com)