git: 9a010091641e - main - science/sz3: Add sz3 3.2.1

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Mon, 03 Feb 2025 15:55:52 UTC
The branch main has been updated by sunpoet:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9a010091641e98796d3d41e51d88bcbfafbc5ece

commit 9a010091641e98796d3d41e51d88bcbfafbc5ece
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2025-02-03 15:12:15 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2025-02-03 15:50:42 +0000

    science/sz3: Add sz3 3.2.1
    
    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 is open and transparent. Open because all interested
    researchers and students can study or contribute to it. Transparent because all
    performance improvements are detailed in publications.
    
    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.
    
    SZ has implementations on CPU, GPU, and FPGA and is integrated in the main I/O
    libraries: HFD5, ADIOS, PnetCDF.
---
 science/Makefile      |  1 +
 science/sz3/Makefile  | 39 ++++++++++++++++++++++++++++
 science/sz3/distinfo  |  3 +++
 science/sz3/pkg-descr | 16 ++++++++++++
 science/sz3/pkg-plist | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 129 insertions(+)

diff --git a/science/Makefile b/science/Makefile
index 7c4802f84815..8a9535da9c1f 100644
--- a/science/Makefile
+++ b/science/Makefile
@@ -498,6 +498,7 @@
     SUBDIR += spglib
     SUBDIR += spheral
     SUBDIR += step
+    SUBDIR += sz3
     SUBDIR += tblite
     SUBDIR += teem
     SUBDIR += tfel
diff --git a/science/sz3/Makefile b/science/sz3/Makefile
new file mode 100644
index 000000000000..e65b8ad06873
--- /dev/null
+++ b/science/sz3/Makefile
@@ -0,0 +1,39 @@
+PORTNAME=	sz3
+PORTVERSION=	3.2.1
+DISTVERSIONPREFIX=	v
+CATEGORIES=	science
+
+MAINTAINER=	sunpoet@FreeBSD.org
+COMMENT=	Modular Error-bounded Lossy Compression Framework for Scientific Datasets
+WWW=		https://szcompressor.org/ \
+		https://github.com/szcompressor/SZ3
+
+LICENSE=	BSD4CLAUSE
+LICENSE_FILE=	${WRKSRC}/copyright-and-BSD-license.txt
+
+LIB_DEPENDS=	libgsl.so:math/gsl \
+		libzstd.so:archivers/zstd
+
+USES=		cmake pkgconfig
+
+CMAKE_OFF=	BUILD_H5Z_FILTER \
+		BUILD_MDZ \
+		SZ3_DEBUG_TIMINGS \
+		SZ3_USE_BUNDLED_ZSTD
+CMAKE_ON=	BUILD_SHARED_LIBS \
+		BUILD_STATIC_LIBS
+
+DATADIR=	${PREFIX}/share/SZ3
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	szcompressor
+GH_PROJECT=	SZ3
+
+post-patch:
+# Clean up bundled libraries
+	@${RM} -r ${WRKSRC}/tools/zstd/
+
+post-install:
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/sz3*
+
+.include <bsd.port.mk>
diff --git a/science/sz3/distinfo b/science/sz3/distinfo
new file mode 100644
index 000000000000..638b3b67e6a1
--- /dev/null
+++ b/science/sz3/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1738088812
+SHA256 (szcompressor-SZ3-v3.2.1_GH0.tar.gz) = 24ed1c8159832734a241df66b857eca64d18a2e8e949ef583a2d0bfe01c6b7e1
+SIZE (szcompressor-SZ3-v3.2.1_GH0.tar.gz) = 4474033
diff --git a/science/sz3/pkg-descr b/science/sz3/pkg-descr
new file mode 100644
index 000000000000..8cba5dafde49
--- /dev/null
+++ b/science/sz3/pkg-descr
@@ -0,0 +1,16 @@
+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 is open and transparent. Open because all interested
+researchers and students can study or contribute to it. Transparent because all
+performance improvements are detailed in publications.
+
+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.
+
+SZ has implementations on CPU, GPU, and FPGA and is integrated in the main I/O
+libraries: HFD5, ADIOS, PnetCDF.
diff --git a/science/sz3/pkg-plist b/science/sz3/pkg-plist
new file mode 100644
index 000000000000..cbe94507605e
--- /dev/null
+++ b/science/sz3/pkg-plist
@@ -0,0 +1,70 @@
+bin/sz3
+bin/sz3_smoke_test
+include/SZ3/api/impl/SZAlgoInterp.hpp
+include/SZ3/api/impl/SZAlgoLorenzoReg.hpp
+include/SZ3/api/impl/SZAlgoNopred.hpp
+include/SZ3/api/impl/SZDispatcher.hpp
+include/SZ3/api/impl/SZImpl.hpp
+include/SZ3/api/impl/SZImplOMP.hpp
+include/SZ3/api/sz.hpp
+include/SZ3/compressor/Compressor.hpp
+include/SZ3/compressor/SZGenericCompressor.hpp
+include/SZ3/compressor/SZIterateCompressor.hpp
+include/SZ3/compressor/specialized/SZBlockInterpolationCompressor.hpp
+include/SZ3/compressor/specialized/SZExaaltCompressor.hpp
+include/SZ3/compressor/specialized/SZTruncateCompressor.hpp
+include/SZ3/decomposition/Decomposition.hpp
+include/SZ3/decomposition/InterpolationDecomposition.hpp
+include/SZ3/decomposition/LorenzoRegressionDecomposition.hpp
+include/SZ3/decomposition/NoPredictionDecomposition.hpp
+include/SZ3/decomposition/TimeSeriesDecomposition.hpp
+include/SZ3/def.hpp
+include/SZ3/encoder/ArithmeticEncoder.hpp
+include/SZ3/encoder/BypassEncoder.hpp
+include/SZ3/encoder/Encoder.hpp
+include/SZ3/encoder/HuffmanEncoder.hpp
+include/SZ3/encoder/RunlengthEncoder.hpp
+include/SZ3/lossless/Lossless.hpp
+include/SZ3/lossless/Lossless_bypass.hpp
+include/SZ3/lossless/Lossless_zstd.hpp
+include/SZ3/predictor/ComposedPredictor.hpp
+include/SZ3/predictor/LorenzoPredictor.hpp
+include/SZ3/predictor/MetaLorenzoPredictor.hpp
+include/SZ3/predictor/MetaRegressionPredictor.hpp
+include/SZ3/predictor/PolyRegressionCoeffAux.hpp
+include/SZ3/predictor/PolyRegressionCoeffAux.m
+include/SZ3/predictor/PolyRegressionPredictor.hpp
+include/SZ3/predictor/Predictor.hpp
+include/SZ3/predictor/RegressionPredictor.hpp
+include/SZ3/preprocessor/PreFilter.hpp
+include/SZ3/preprocessor/PreProcessor.hpp
+include/SZ3/preprocessor/Transpose.hpp
+include/SZ3/preprocessor/Wavelet.hpp
+include/SZ3/quantizer/LinearQuantizer.hpp
+include/SZ3/quantizer/Quantizer.hpp
+include/SZ3/utils/ByteUtil.hpp
+include/SZ3/utils/Config.hpp
+include/SZ3/utils/Extraction.hpp
+include/SZ3/utils/FileUtil.hpp
+include/SZ3/utils/Interpolators.hpp
+include/SZ3/utils/Iterator.hpp
+include/SZ3/utils/KmeansUtil.hpp
+include/SZ3/utils/MemoryUtil.hpp
+include/SZ3/utils/MetaDef.hpp
+include/SZ3/utils/QuantOptimizatioin.hpp
+include/SZ3/utils/Statistic.hpp
+include/SZ3/utils/Timer.hpp
+include/SZ3/utils/inih/INIReader.h
+include/SZ3/utils/inih/LICENSE.txt
+include/SZ3/utils/ska_hash/LICENSE.txt
+include/SZ3/utils/ska_hash/bytell_hash_map.hpp
+include/SZ3/utils/ska_hash/flat_hash_map.hpp
+include/SZ3/utils/ska_hash/unordered_map.hpp
+include/SZ3/version.hpp
+include/SZ3/version.hpp.in
+include/SZ3c/sz3c.h
+lib/cmake/SZ3/SZ3Config.cmake
+lib/cmake/SZ3/SZ3ConfigVersion.cmake
+lib/cmake/SZ3/SZ3Targets.cmake
+lib/libSZ3c.so
+%%DATADIR%%/testfloat_8_8_128.dat