Skip to content

Conversation

@jayeshkrishna
Copy link
Contributor

@jayeshkrishna jayeshkrishna commented Jan 16, 2026

Adding support for data compression using HDF5. Also,
adding support for initializing the MPI library with thread
support. This change also integrates a new version of
SCORPIO (1.9.1).

  • Updating CIME build system to support HDF5 (with
    and without data compression support)
  • Lossless data compression support using Blosc2 + Zstd
    and lossy compression support using ZFP
  • Adding HDF5 compression libraries for Frontier,
    Perlmutter and ANL compute nodes
  • Updating MPAS framework to support HDF5
  • Updating to SCORPIO version 1.9.1

SCORPIO version 1.9.1 includes,

  • Multiple fixes related to data compression
  • Misc bug fixes

[BFB]

Updating SCORPIO CMake script to detect and add HDF5 compression
filters (ZFP, Blosc2)
Adding support for writing E3SM output using SCORPIO+HDF5 with
compression.

* Users can use xmlchange to set PIO_TYPENAME to "hdf5c" to write
  data with compression
* Also points SCORPIO submodule to the development branch that
  supports HDF5 data compression (Data compression is only
  supported 3D+ variables for now)
Adding missing description (valid values) of ADIOS and HDF5 I/O
types in the driver namelist XML
Updating the CMake script that finds SCORPIO depdendencies to find
HDF5 filters for ZFP and Blosc2 compression libraries
Adding a testmod to force tests to use HDF5 with data compression
Adding testmod to force tests to use HDF5
Updating the MPAS framework and build system to support HDF5
(with and without data compression).
Adding comments on how to disable HDF5 compression for selected
E3SM variables.
Updating SCORPIO to 1.9.0

SCORPIO v1.9.0 includes the following changes,

* HDF5 data compression support
* Enhancements to lossy data compression support using ADIOS2
* More tuning knobs for I/O data compression
* HDF5 support for large variables
* Documentation fixes
* Misc bug fixes
Adding paths to HDF5 compression filters for Perlmutter+Cray+GNU
Adding paths to HDF5 compression filters for Frontier+Cray+GNU
@jayeshkrishna jayeshkrishna self-assigned this Jan 16, 2026
@jayeshkrishna jayeshkrishna added enhancement Scripts Coupler Related to code in driver-mct or driver-moab or component connections to the coupler. BFB PR leaves answers BFB SCORPIO The E3SM I/O library (derived from PIO) CMake build system MPAS-framework Concerning the MPAS framework labels Jan 16, 2026
@jayeshkrishna jayeshkrishna requested a review from jonbob January 16, 2026 19:49
Adding a compile flag to turn on thread support in MPI. The user
needs to build E3SM with "-DMPI_INIT_THREADED=1" to init MPI
with threads (MPI_THREAD_MULTIPLE)
Moving to the multi-threaded version of HDF5 and related libs
on anl workstation
SCORPIO v1.9.1 includes many fixes related to data compression,

* Fixed issues with multiple redef/enddef calls with HDF5
* Manual datatype conversion, as needed, for HDF5 output
* Fix typos for ADIOS+ZFP compression rate
* Disable HDF5+ZFP compression for scalars and 5D+ variables
  and variables with only unlimited dimensions
* Adding related tests
* put_vars_* support for CDF5 types when using PnetCDF
@jayeshkrishna jayeshkrishna force-pushed the jayeshkrishna/cime_config/hdf5_compression branch from db808ed to 47a940f Compare January 16, 2026 23:20
@jayeshkrishna jayeshkrishna marked this pull request as ready for review January 21, 2026 17:03
@bartgol bartgol added the CI: approved Allow gh actions PR testing on ghci-snl-* machines label Jan 21, 2026
@jayeshkrishna
Copy link
Contributor Author

jayeshkrishna commented Jan 21, 2026

Looks like a missing header (stdint) causing build failures (https://gcc.gnu.org/gcc-13/porting_to.html). Will fix this issue soon.

@jayeshkrishna jayeshkrishna marked this pull request as draft January 21, 2026 20:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BFB PR leaves answers BFB CI: approved Allow gh actions PR testing on ghci-snl-* machines CMake build system Coupler Related to code in driver-mct or driver-moab or component connections to the coupler. enhancement MPAS-framework Concerning the MPAS framework SCORPIO The E3SM I/O library (derived from PIO) Scripts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants