Skip to content

[SZ3] [package list]

SZ3/3.3.2-cpeGNU-26.03-hdf5 (SZ3-3.3.2-cpeGNU-26.03-hdf5.eb)

Install with the EasyBuild-user module:

eb SZ3-3.3.2-cpeGNU-26.03-hdf5.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider SZ3/3.3.2-cpeGNU-26.03-hdf5.

EasyConfig:

# Based on a easyconfig by the Juelich Supercomputing Centre
# Adapted for LUMI by Orian Louant
#
#DOC This version uses the `cray-hdf5` and `cray-netcdf` modules.

easyblock = 'CMakeMake'

local_GSL_version =          '2.8'           # https://ftp.gnu.org/gnu/gsl/
local_zlib_version =         '2.3.3'         # https://github.com/zlib-ng/zlib-ng/releases
local_zstd_version =         '1.5.7'         # https://github.com/facebook/zstd/releases

local_SZ3_version =          '3.3.2'         # https://github.com/szcompressor/SZ3/releases

name =          'SZ3'
version =       local_SZ3_version
version_suffix = '-hdf5'

homepage = 'https://szcompressor.org'

whatis = ['SZ3 is a modular parametrizable lossy compressor framework for scientific data']

description = """
SZ is a modular parametrizable lossy compressor framework for scientific data
(floating point and integers). It has applications in simulations, AI and
instruments. It is a production quality software and a research platform for
lossy compression.

SZ can be used for classic use-cases: visualization, accelerating I/O,
reducing memory and storage footprint and more advanced use-cases like
compression of DNN models and training sets, acceleration of computation,
checkpoint/restart, reducing streaming intensity and running efficiently large
problems that cannot fit in memory. Other use-cases will augment this list as
users find new opportunities to benefit from lossy compression of scientific
data.
"""

doc_urls = [
    'PDF documentation on https://github.com/szcompressor/SZ2/tree/master/doc'
]

software_license_urls = ['https://github.com/szcompressor/SZ/blob/master/copyright-and-BSD-license.txt']

toolchain = {'name': 'cpeGNU', 'version': '26.03'}
toolchain_opts = {'openmp': True, 'pic': True}

# https://github.com/szcompressor/SZ3/releases/download/v3.3.2/SZ3-v3.3.2.zip
source_urls = ['https://github.com/szcompressor/SZ3/releases/download/v%(version)s']
sources =     ['SZ3-v%(version)s.zip']
checksums =   ['8eadebe5cb5739fc8346d7bf911db66626fc92d1d27e67bc8f962d0d152ef342']

build_deps = [
    ('buildtools',          '%(toolchain_version)s', '', True),
    ('craype-accel-host',   EXTERNAL_MODULE),
]

deps = [
    ('cray-hdf5',   EXTERNAL_MODULE),
    ('GSL',         local_GSL_version,  '-OpenMP'),
    ('zlib',        local_zlib_version),
    ('zstd',        local_zstd_version),
]

pre_configure_opts = 'module unload cray-libsci cray-mpich xpmem rocm && '
pre_build_opts = pre_configure_opts

local_common_configure_opts = ' '.join([
    '-DBUILD_SZ3_BINARY=ON',       # Default value is actually ON
    '-DBUILD_H5Z_FILTER=ON',       # Build the H5Z-SZ3 filter - default value is OFF
    '-DBUILD_MDZ=ON',              # Build MDZ (MMD-SZ) - default value is OFF
    '-DBUILD_PARAVIEW_PLUGIN=OFF', # Default value is OFF
    '-DSZ3_USE_BUNDLED_ZSTD=OFF',
])
configure_opts = [
    local_common_configure_opts + ' -DBUILD_SHARED_LIBS=OFF',
    local_common_configure_opts + ' -DBUILD_SHARED_LIBS=ON',
]

post_install_cmds = [
    'mkdir -p %(installdir)s/share/licenses/%(name)s',
    'cd ../SZ3-master && cp copyright-and-BSD-license.txt %(installdir)s/share/licenses/%(name)s',   
]

sanity_check_paths = {
    'files': ['lib/libSZ3c.a', f'lib/libSZ3c.{SHLIB_EXT}', 
              'lib/libhdf5sz3.a', f'lib/libhdf5sz3.{SHLIB_EXT}',
              'include/SZ3c/sz3c.h'],
    'dirs':  [],
}

sanity_check_cmds = [
    'sz3 --help',
    'sz3_smoke_test',
    'sz3_customized_demo',
    'mdz',
    'mdz_smoke_test',
]

env_mod_category = 'data'

[SZ3] [package list]