[Chapel Merge] Zarr profiling improvement

Branch: refs/heads/main
Revision: 1deca04cce61d5690a70e9bca91242ad53754204
Author: brandon-neth
Link: Zarr profiling improvement by brandon-neth · Pull Request #25652 · chapel-lang/chapel · GitHub
Log Message:
Zarr profiling improvement (#25652)

This PR makes 3 improvements to the Zarr module. First, it updates the
compression/decompression methods used to prevent threads from
contending for a global lock within the blosc library. This
significantly improves performance. Second, it removes the
initialization of the temporary array that blosc writes the decompressed
data into. These two changes improve read performance by 2.5-3x on
Perlmutter. Third, it fixes a bug in the profiling methods and adds a
method to reset the profiling timers.

Testing: locally with CHPL_COMM=none and on perlmutter using
CHPL_COMM=ofi

Reviewed By: @benharsh

Compare: Comparing 07f6ceb3fe56e0baeefda0624928885705685665...06f7914f142aca23c215d8e0b3e74dfdd7291ae2 · chapel-lang/chapel · GitHub

Diff:
M modules/packages/Zarr.chpl
D test/library/packages/Zarr/SKIPIF
https://github.com/chapel-lang/chapel/pull/25652.diff