E3SM-Project / scorpio

A high-level Parallel I/O Library for structured grid applications
18 stars 16 forks source link

Perform full matching of decomposition maps for ADIOS read #593

Closed dqwu closed 5 days ago

dqwu commented 1 week ago

The helper function for ADIOS read that compares the decomposition used for reads with the decomposition used for writes only compared a part (first 64 elements) of the decomposition to decide whether the write and read decompositions are identical. This change compares the entire decomposition maps (used for read and write) to determine if the maps are identical.

This change addresses the issue of non-BFB results observed in some recent SCREAM restart runs (when reading CICE restart files).

jayeshkrishna commented 1 week ago

This PR resolves the issue with different bfbhash es (from HOMMEXX) for restart runs with PnetCDF and ADIOS (Run with PnetCDF, write restart, restart with PnetCDF vs Run with ADIOS, write restart in ADIOS BP, restart with ADIOS). For ne30 (ne30pg2_ne30pg2.F20TR-SCREAMv1, CESS runs on anlgce) and ne256 (amip-decup.ne256pg2_ne256pg2.F20TR-SCREAMv1, DECADAL runs on frontier) SCREAM cases the issue (bfbhash mismatch) showed up during reads of CICE restarts

A workaround for the issue (without the fix in this PR) was to use PnetCDF for CICE restarts,

./xmlchange PIO_TYPENAME_ICE=pnetcdf