Initial contribution of LibPressio ecosystem (#32630)

* Add libpressio and dependencies; some of these packages are
  maintained as forks of the original repositories and in those
  cases the docstring mentions this.
* Add optional dependency in adios2 on libpressio
* cub package: set CUB_DIR environment variable for dependent
  installations
* Clear R_HOME/R_ENVIRON before Spack installation (avoid sources
  outside of Spack from affecting the installation in Spack)
* Rename dlib to dorian3d-dlib and update dependents; add new dlib
  implementation. Pending an official policy on how to handle
  packages with short names, reviewer unilaterally decided that
  the rename was acceptable given that the new Spack dlib package
  is referenced more widely (by orders of magnitude) than the
  original

Co-authored-by: Samuel Li <shaomeng@users.noreply.github.com>
This commit is contained in:
Robert Underwood 2022-10-17 15:30:54 -04:00 committed by GitHub
parent fb090a69f4
commit da6aeaad44
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
35 changed files with 1407 additions and 23 deletions

View file

@ -201,6 +201,8 @@ def clean_environment():
env.unset("CMAKE_PREFIX_PATH")
env.unset("PYTHONPATH")
env.unset("R_HOME")
env.unset("R_ENVIRON")
# Affects GNU make, can e.g. indirectly inhibit enabling parallel build
# env.unset('MAKEFLAGS')

View file

@ -60,6 +60,9 @@ class Adios2(CMakePackage, CudaPackage):
variant("mpi", default=True, description="Enable MPI")
# Compression libraries
variant(
"libpressio", default=False, when="@2.8:", description="Enable LibPressio for compression"
)
variant("blosc", default=True, when="@2.4:", description="Enable Blosc compression")
variant("bzip2", default=True, when="@2.4:", description="Enable BZip2 compression")
variant("zfp", default=True, description="Enable ZFP compression")
@ -103,6 +106,7 @@ class Adios2(CMakePackage, CudaPackage):
depends_on("hdf5~mpi", when="+hdf5~mpi")
depends_on("hdf5+mpi", when="+hdf5+mpi")
depends_on("libpressio", when="+libpressio")
depends_on("c-blosc", when="+blosc")
depends_on("bzip2", when="+bzip2")
depends_on("libpng@1.6:", when="+png")
@ -178,6 +182,7 @@ def cmake_args(self):
from_variant("ADIOS2_USE_SZ", "sz"),
from_variant("ADIOS2_USE_ZFP", "zfp"),
from_variant("ADIOS2_USE_CUDA", "cuda"),
from_variant("ADIOS2_USE_LIBPRESSIO", "libpressio"),
self.define("BUILD_TESTING", self.run_tests),
self.define("ADIOS2_BUILD_EXAMPLES", False),
self.define("ADIOS2_USE_Endian_Reverse", True),

View file

@ -0,0 +1,37 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Arc(CMakePackage):
"""ARC is an automatic resiliency library designed to provide security
to lossy compressed data or other uint8_t data arrays
forked from: https://github.com/FTHPC/ARC to support Spack after developer
left grad school
"""
homepage = "https://github.com/FTHPC/ARC"
url = "https://github.com/FTHPC/ARC"
git = "https://github.com/robertu94/ARC"
maintainers = ["robertu94"]
version("master", branch="master")
version("2021-12-01", commit="49d4a5df53a082f15a6959aef434224fd7b9beac")
depends_on("libpressio+sz+zfp", when="+examples")
variant("examples", description="build examples", default=False)
variant("shared", description="build shared libraries", default=True)
def cmake_args(self):
args = [
self.define("BUILD_TESTING", self.run_tests),
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
self.define_from_variant("BUILD_EXAMPLES", "examples"),
]
return args

View file

@ -0,0 +1,30 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Bitgroomingz(CMakePackage):
"""BGZ: Bit Grooming Compressor"""
homepage = "https://github.com/disheng222/BitGroomingZ"
git = "https://github.com/disheng222/BitGroomingZ"
maintainers = ["robertu94"]
version("master", branch="master")
version("2022-10-14", commit="a018b20cca9f7d6a5396ab36230e4be6ae1cb25b")
variant("shared", default=True, description="build shared libs")
depends_on("zlib")
def cmake_args(self):
args = []
if "+shared" in self.spec:
args.append("-DBUILD_SHARED_LIBS=ON")
else:
args.append("-DBUILD_SHARED_LIBS=OFF")
return args

View file

@ -39,6 +39,9 @@ class Cub(Package):
version("1.7.1", sha256="50b8777b83093fdfdab429a61fccdbfbbb991b3bbc08385118e5ad58e8f62e1d")
version("1.4.1", sha256="7c3784cf59f02d4a88099d6a11e357032bac9eac2b9c78aaec947d1270e21871")
def setup_dependent_build_environment(self, env, dependent_spec):
env.set("CUB_DIR", self.prefix.include.cub.cmake)
def install(self, spec, prefix):
mkdirp(prefix.include)
install_tree("cub", join_path(prefix.include, "cub"))

View file

@ -6,19 +6,24 @@
from spack.package import *
class Cusz(MakefilePackage):
"""cuSZ is a CUDA-based error-bounded lossy compressor for scientific
data (floating point and integers).
"""
class Cusz(CMakePackage, CudaPackage):
"""A GPU accelerated error-bounded lossy compression for scientific data"""
homepage = "https://szcompressor.org"
url = "https://github.com/szcompressor/cuSZ/releases/download/v0.1.2/cuSZ-0.1.2.tar.gz"
git = "https://github.com/szcompressor/cuSZ"
maintainers = ["dingwentao", "jtian0"]
homepage = "https://szcompressor.org/"
git = "https://github.com/szcompressor/cusz"
url = "https://github.com/szcompressor/cuSZ/archive/refs/tags/v0.3.tar.gz"
version("master", branch="master")
version("0.1.2", sha256="c6e89a26b295724edefc8052f62653c5a315c78eaf6d5273299a8e11a5cf7363")
maintainers = ["jtian0", "dingwentao"]
def install(self, spec, prefix):
mkdir(prefix.bin)
install("bin/cusz", prefix.bin)
conflicts("~cuda")
conflicts("cuda_arch=none", when="+cuda")
version("develop", branch="develop")
version("0.3", sha256="0feb4f7fd64879fe147624dd5ad164adf3983f79b2e0383d35724f8d185dcb11")
depends_on("cub", when="^ cuda@:10.2.89")
def cmake_args(self):
cuda_arch = self.spec.variants["cuda_arch"].value
args = ["-DBUILD_TESTING=OFF", ("-DCMAKE_CUDA_ARCHITECTURES=%s" % cuda_arch)]
return args

View file

@ -24,5 +24,5 @@ class Dbow2(CMakePackage):
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants)
depends_on("opencv+calib3d+features2d+highgui+imgproc")
depends_on("dlib")
depends_on("dorian3d-dlib")
depends_on("eigen", type="link")

View file

@ -0,0 +1,30 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Digitrounding(CMakePackage):
"""Standalone version of Digit rounding compressor"""
homepage = "https://github.com/disheng222/digitroundingZ"
git = "https://github.com/disheng222/digitroundingZ"
maintainers = ["robertu94"]
version("master", branch="master")
version("2020-02-27", commit="7b18679aded7a85e6f221f7f5cd4f080f322bc33")
depends_on("zlib")
variant("shared", default=True, description="build shared libraries")
def cmake_args(self):
args = []
if "+shared" in self.spec:
args.append("-DBUILD_SHARED_LIBS=ON")
else:
args.append("-DBUILD_SHARED_LIBS=OFF")
return args

View file

@ -2,20 +2,37 @@
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Dlib(CMakePackage):
"""DLib is a collection of C++ classes to solve common tasks in C++
programs, as well as to offer additional functionality to use OpenCV
data and to solve computer vision problems."""
"""toolkit containing machine learning algorithms and tools
for creating complex software in C++ to solve real world problems"""
homepage = "https://github.com/dorian3d/DLib"
git = "https://github.com/dorian3d/DLib.git"
homepage = "http://dlib.net/"
url = "https://github.com/davisking/dlib/archive/v19.19.tar.gz"
git = "https://github.com/davisking/dlib"
maintainer = ["robertu94"]
version("master", branch="master")
version("19.22", sha256="5f44b67f762691b92f3e41dcf9c95dd0f4525b59cacb478094e511fdacb5c096")
version("19.21", sha256="116f52e58be04b47dab52057eaad4b5c4d5c3032d927fe23d55b0741fc4107a0")
version("19.20", sha256="fc3f0986350e8e53aceadf95a71d2f413f1eedc469abda99a462cb528741d411")
version("19.19", sha256="7af455bb422d3ae5ef369c51ee64e98fa68c39435b0fa23be2e5d593a3d45b87")
depends_on("cmake@3.0:", type="build")
depends_on("opencv+calib3d+features2d+highgui+imgproc+imgcodecs+flann")
variant("shared", default=True, description="build the shared libraries")
depends_on("zlib")
depends_on("libpng")
depends_on("libjpeg")
depends_on("blas")
depends_on("lapack")
depends_on("libsm")
depends_on("libx11")
def cmake_args(self):
args = []
if "+shared" in self.spec:
args.append("-DBUILD_SHARED_LIBS=ON")
return args

View file

@ -0,0 +1,21 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Dorian3dDlib(CMakePackage):
"""DLib is a collection of C++ classes to solve common tasks in C++
programs, as well as to offer additional functionality to use OpenCV
data and to solve computer vision problems."""
homepage = "https://github.com/dorian3d/DLib"
git = "https://github.com/dorian3d/DLib.git"
version("master", branch="master")
depends_on("cmake@3.0:", type="build")
depends_on("opencv+calib3d+features2d+highgui+imgproc+imgcodecs+flann")

View file

@ -0,0 +1,19 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Fpzip(CMakePackage):
"""fpzip compressor"""
homepage = "https://github.com/llnl/fpzip"
url = "https://github.com/LLNL/fpzip/releases/download/1.3.0/fpzip-1.3.0.tar.gz"
git = "https://github.com/llnl/fpzip"
maintainers = ["robertu94"]
version("master", branch="master")
version("1.3.0", sha256="248df7d84259e3feaa4c4797956b2a77c3fcd734e8f8fdc51ce171dcf4f0136c")

View file

@ -0,0 +1,50 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Libdistributed(CMakePackage):
"""a collection of facilities for MPI that create for higher level
facilities for programming in C++"""
homepage = "https://github.com/robertu94/libdistributed"
url = "https://github.com/robertu94/libdistributed/archive/0.0.3.tar.gz"
git = "https://github.com/robertu94/libdistributed"
maintainers = ["robertu94"]
version("master", branch="master")
version("0.4.0", sha256="7895d268c4f9b5444e4378f60b5a28198720bc48633d0e5d072c39e3366b096c")
version("0.3.0", sha256="57443c72a5a9aa57d7f8760c878a77dcffca0b3b5ccf5124cdf5c1fad8a44ae8")
version("0.2.0", sha256="4540136d39f98a21c59a7e127cb0568266747bfff886edf0f0007be4959a09a3")
version("0.1.2", sha256="c22f93e6ea781ea33812481b19c7bc5e688e51f91991debc7f27a493ef2c78b3")
version("0.1.1", sha256="a5201fd754588034e2c87a21f0283dd9fda758d7820450179eabd68b3dae8cb6")
version("0.1.0", sha256="e10daa6d4a6dc371057e92d2b706ae16450b41ed7c0d386cffeb68e160f556c1")
version("0.0.10", sha256="3af4ce81b3ae016e80e401adfcfad856e15a76da4d2a81535cb4bd993c11104b")
version("0.0.8", sha256="78bc1fbc99e46ea0e03cb181623262be0f527767efd3249baa249cb24b794762")
version("0.0.7", sha256="b2c65752df7bc55fcdc9a5eb7b36c203667f2fb6382d3eaecdaf1504421d4d7b")
version("0.0.6", sha256="05ce6ae880aec19f6945ee5f3c2f4099343ca6b555ea6c8e005a48a6e09faf5b")
version("0.0.5", sha256="09c1e9a0b34371fa8e6f3d50671bcce7fcc3e4c7c26f3e19017b07b64695d199")
version("0.0.4", sha256="7813980011091822534d196d372b8cb6fdc12d35acd5acb42c6eeeaf10a44490")
version("0.0.3", sha256="c476b3efe20e1af4c976e89ff81b7eed01ddddae73ac66f005108747facbeff7")
version("0.0.2", sha256="c25309108fe17021fd5f06ba98386210708158c439e98326e68f66c42875e58a")
version("0.0.1", sha256="4c23ce0fd70a12ee5f8760ea00377ab6370d86b30ab42476e07453b19ea4ac44")
depends_on("mpi@2:")
depends_on("libstdcompat@0.0.2:", when="@0.1.0:")
def cmake_args(self):
args = []
if self.run_tests:
args.append("-DBUILD_TESTING=ON")
else:
args.append("-DBUILD_TESTING=OFF")
return args
@run_after("build")
@on_package_attributes(run_tests=True)
def test(self):
make("test")

View file

@ -0,0 +1,29 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class LibpressioAdios2(CMakePackage):
"""An IO plugin to read/write ADIOS2 files for LibPressio"""
homepage = "https://github.com/robertu94/libpressio_adios2"
url = "https://github.com/robertu94/libpressio_adios2/archive/refs/tags/0.0.1.tar.gz"
maintainers = ["robertu94"]
version("0.0.2", sha256="8ab4b5a0dd8038d52f54aa9b5a67b83a8f7cd096db4c5a413fe0c6caf678e402")
version("0.0.1", sha256="ab9c7e26114e8d81f8ad8aca703855079cd3441f9b72e01d9b4aeb0c57ce0746")
depends_on("libpressio@0.85.0:+mpi", when="@0.0.2")
depends_on("libpressio@0.60.0:+mpi")
depends_on("adios2@2.8.0:+mpi")
def cmake_args(self):
args = [
self.define("BUILD_TESTING", self.run_tests),
self.define("LIBPRESSIO_ADIOS2_WERROR", False),
]
return args

View file

@ -0,0 +1,25 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class LibpressioErrorinjector(CMakePackage):
"""LibPressioErrorInjector injects errors into data for sensitivity studies"""
homepage = "https://github.com/robertu94/libpressio-errorinjector"
git = "https://github.com/robertu94/libpressio-errorinjector"
maintainers = ["robertu94"]
version("0.8.0", commit="0bfac9a06b1ae34a872b8b599dd4ccb46aa2db4e")
version("0.7.0", commit="0b5a5b15121be248a3e5af925f9ad88b3d43fef6")
depends_on("libpressio@0.88.0:", when="@0.8.0:")
depends_on("libpressio@:0.87.0", when="@:0.7.0")
def cmake_args(self):
args = ["-DBUILD_TESTING=OFF"]
return args

View file

@ -0,0 +1,30 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class LibpressioNvcomp(CMakePackage, CudaPackage):
"""LibPressio Bindings for NVCOMP"""
homepage = "https://github.com/robertu94/libpressio-nvcomp"
url = "https://github.com/robertu94/libpressio-nvcomp/archive/refs/tags/0.0.3.tar.gz"
git = "https://github.com/robertu94/libpressio-nvcomp"
maintainers = ["robertu94"]
version("0.0.3", sha256="21409d34f9281bfd7b83b74f5f8fc6d34794f3161391405538c060fb59534597")
version("0.0.2", commit="38d7aa7c283681cbe5b7f17b900f72f9f25be51c")
depends_on("nvcomp@2.2.0:", when="@0.0.3:")
depends_on("libpressio@0.88.0:", when="@:0.0.2")
conflicts("~cuda")
conflicts("cuda_arch=none", when="+cuda")
def cmake_args(self):
cuda_arch = self.spec.variants["cuda_arch"].value
args = [("-DCMAKE_CUDA_ARCHITECTURES=%s" % cuda_arch)]
return args

View file

@ -0,0 +1,49 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class LibpressioOpt(CMakePackage):
"""Metacompressor which preforms optimization of compressor settings for LibPressio"""
homepage = "https://github.com/robertu94/libpressio_opt"
git = "git@github.com:robertu94/libpressio_opt"
url = "https://github.com/robertu94/libpressio_opt/archive/refs/tags/0.11.0.tar.gz"
maintainers = ["robertu94"]
version("develop", branch="develop")
version("sdr-develop", branch="develop", git="git@github.com:szcompressor/SDRFramework")
version("0.13.5", sha256="cc0e6a46335aa3552b8ab57757d39855f4fba71e661f706ec99519cb2c8a2f3c")
version("0.13.4", sha256="e9f715d11fe3558a31e1d9a939150209449ec8636ded047cb0adcd3db07569ae")
version("0.13.3", sha256="98436b7fa6a53dd9cc09a9b978dc81c299501930cb8b844713080fc42d39d173")
version("0.13.2", sha256="8a16ba23b5078b0ee3a75d8a64ba64b492ecfadc221dd28ae463f4d3f4f7d847")
version("0.13.1", sha256="a831d326871c183a7e64b2015d687da3f17cf89c2d7d1d6770e3acbc1346aa8c")
version("0.13.0", sha256="6a64116dd6727e2dc05840b0e804fcaf82debde09c69e4905197462a769e998e")
version("0.12.1", sha256="e5d0b4d8b4885dfe555148e23f34e0bc904a898871dea8d412265075f1f8c858")
version("0.12.0", sha256="5f28f37de858634cf481d911f202360f078902803f82b5f49b7eec9b59948d64")
version("0.11.0", sha256="cebbc512fcaa537d2af1a6919d6e0400cdc13595d71d9b90b74ad3eb865c9767")
depends_on("libpressio+libdistributed+mpi")
depends_on("libpressio@0.88.0:", when="@0.13.5:")
depends_on("libpressio@0.85.0:", when="@0.13.3:")
depends_on("libpressio@0.66.1:", when="@:0.13.2")
depends_on("libdistributed@0.0.11:")
depends_on("libdistributed@0.4.0:", when="@0.13.3:")
depends_on("dlib@19.22:")
def cmake_args(self):
args = []
if self.run_tests:
args.append("-DBUILD_TESTING=ON")
else:
args.append("-DBUILD_TESTING=OFF")
return args
@run_after("build")
@on_package_attributes(run_tests=True)
def test(self):
make("test")

View file

@ -0,0 +1,43 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class LibpressioRmetric(CMakePackage):
"""LibPressio metric that runs R code"""
url = "https://github.com/robertu94/libpressio-rmetric/archive/refs/tags/0.0.2.tar.gz"
git = "https://github.com/robertu94/libpressio-rmetric"
homepage = git
maintainers = ["robertu94"]
version("master", branch="master")
# note versions <= 0.0.3 do not build with spack
version("0.0.6", sha256="b23a79448cd32b51a7301d6cebf4e228289712dd77dd76d86821741467e9af46")
version("0.0.5", sha256="51eb192314ef083790dd0779864cab527845bd8de699b3a33cd065c248eae24c")
version("0.0.4", sha256="166af5e84d7156c828a3f0dcc5bf531793ea4ec44bbf468184fbab96e1f0a91f")
version("0.0.3", sha256="c45948f83854c87748c7ec828ca2f06d7cf6f98a34f763b68c13a4e2deb7fd79")
depends_on("libpressio@0.88.0:", when="@0.0.5:")
depends_on("libpressio@0.85.0:", when="@:0.0.4")
depends_on("r")
depends_on("r-rcpp")
depends_on("r-rinside")
def cmake_args(self):
args = []
if self.run_tests:
args.append("-DBUILD_TESTING=ON")
else:
args.append("-DBUILD_TESTING=OFF")
return args
@run_after("build")
@on_package_attributes(run_tests=True)
def test(self):
make("test")

View file

@ -0,0 +1,25 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class LibpressioSperr(CMakePackage):
"""A LibPressio plugin for Sperr"""
homepage = "https://github.com/robertu94/libpressio-sperr"
url = "https://github.com/robertu94/libpressio-sperr/archive/refs/tags/0.0.1.tar.gz"
git = homepage
maintainers = ["robertu94"]
depends_on("libpressio@0.88.0:", when="@0.0.3:")
depends_on("libpressio@:0.88.0", when="@:0.0.2")
depends_on("sperr")
depends_on("pkgconfig", type="build")
version("master", branch="master")
version("0.0.2", sha256="61995d687f9e7e798e17ec7238d19d917890dc0ff5dec18293b840c4d6f8c115")
version("0.0.1", sha256="e2c164822708624b97654046b42abff704594cba6537d6d0646d485bdf2d03ca")

View file

@ -0,0 +1,100 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class LibpressioTools(CMakePackage):
"""General Utilities for LibPressio"""
homepage = "https://github.com/robertu94/pressio-tools"
url = "https://github.com/robertu94/pressio-tools/archive/refs/tags/0.0.15.tar.gz"
git = "https://github.com/robertu94/pressio-tools"
maintainers = ["robertu94"]
version("master", branch="master")
version("0.1.6", sha256="a67a364f46dea29ff1b3e5c52c0a5abf2d9d53412fb8d424f6bd71252bfa7792")
version("0.1.5", sha256="b35f495fae53df87dd2abf58c0c51ed17710b16aaa2d0842a543fddd3b2a8035")
version("0.1.4", sha256="39adc4b09a63548a416ee4b1dcc87ec8578b15a176a11a2845c276c6c211f2d0")
version("0.1.3", sha256="4e6c39061d6d829936dfeb569ea997854694ef1a46f112e306672ee1cc1567a0")
version("0.1.2", sha256="a3379fd7c53c2eb0b5cdbf0e7eed37ae2a415f737885310d3da4d34fa55c618e")
version("0.1.1", sha256="adec3ea9a12677c647fbc3a1f9909fde6f2dd5ed662ed0ee5cd753b26397643e")
version("0.1.0", sha256="e016b1785f2dc5c8a8565ff3d7b50980788e057e61905a91ef1d16da73297a06")
version("0.0.24", sha256="b369efcc17f339fdd5741d817f1b7908bd2b5df5686c5406c6b1123b0daa82c5")
version("0.0.23", sha256="08a141be14e63e491216a89d45737040fc3450c5b793e6a4819cd06f876b2b0b")
version("0.0.22", sha256="9fcb20a3bf24e139386e94b413f10087d65ed32d2eb93cc7be8e87d736da9766")
version("0.0.21", sha256="2ffe1018ff86eca0928ab8bbf568b2cf7ab739f0e191e2722a6f5071dac4a153")
version("0.0.20", sha256="cad3a1dff25ae1dc442821e72fe8f7495e098bd0ea52c3beeac1ceb721c60351")
version("0.0.19", sha256="cc8a4bb5259b7b8e14248a1a741067a865a0db36645c878d346da983e74c9521")
version("0.0.18", sha256="766fcf6c4bd475de66107d379c76805d6368d71ee83cade645f2b7cd27801718")
version("0.0.17", sha256="cf76e8a929aa128d09f8f953171d5cf395223245bc81d2ea4e22099849e40b94")
version("0.0.16", sha256="1299e441fb15666d1c8abfd40f3f52b1bf55b6bfda4bfcc71177eec37160a95e")
version("0.0.15", sha256="bcdf865d77969a34e2d747034ceeccf5cb766a4c11bcc856630d837f442ee33e")
depends_on("mpi", when="+mpi")
depends_on("libpressio+libdistributed+mpi", when="+mpi")
depends_on("libpressio", when="~mpi")
depends_on("libpressio+hdf5", when="+hdf5")
depends_on("boost")
# 0.1.0 changed a bunch of things in the build system, make sure everything is up to date
depends_on("libpressio@0.88.0:", when="@0.1.6:")
depends_on("libpressio@0.85.0:", when="@0.1.0:0.1.5")
depends_on("libpressio-opt@0.13.3:", when="@0.1.0:+opt")
depends_on("libpressio-errorinjector@0.7.0:", when="@0.1.0:+error_injector")
depends_on("libpressio-tthresh@0.0.5:", when="@0.1.0:+tthresh")
depends_on("libpressio-rmetric@0.0.4:", when="@0.1.0:+rcpp")
depends_on("libpressio-adios2@0.0.2", when="@0.1.0:+adios2")
depends_on("libpressio-opt", when="+opt")
depends_on("libpressio-errorinjector", when="+error_injector")
depends_on("libpressio-tthresh", when="+tthresh")
depends_on("libpressio-rmetric", when="+rcpp")
depends_on("libpressio-adios2", when="+adios2")
depends_on("libpressio-sperr", when="+sperr")
depends_on("libpressio-nvcomp", when="+nvcomp")
variant("hdf5", default=True, description="support the hdf5 package")
variant("opt", default=False, description="support the libpressio-opt package")
variant(
"error_injector", default=False, description="support the libpressio-errorinjector package"
)
variant("tthresh", default=False, description="depend on the GPL licensed libpressio-tthresh")
variant("rcpp", default=False, description="depend on the GPL licensed libpressio-rmetric")
variant("mpi", default=False, description="depend on MPI for distributed parallelism")
variant("adios2", default=False, description="depend on ADIOS2 for IO modules")
variant("sperr", default=False, description="depend on sperr", when="@0.1.2:")
variant("nvcomp", default=False, description="depend on nvcomp", when="@0.1.0:")
conflicts("+opt", "~mpi")
def cmake_args(self):
args = []
if "+mpi" in self.spec:
args.append("-DLIBPRESSIO_TOOLS_HAS_MPI=YES")
if "+opt" in self.spec:
args.append("-DLIBPRESSIO_TOOLS_HAS_OPT=YES")
if "+error_injector" in self.spec:
args.append("-DLIBPRESSIO_TOOLS_HAS_ERROR_INJECTOR=YES")
if "+tthresh" in self.spec:
args.append("-DLIBPRESSIO_TOOLS_HAS_TTHRESH=YES")
if "+rcpp" in self.spec:
args.append("-DLIBPRESSIO_TOOLS_HAS_RMETRIC=YES")
if "+sperr" in self.spec:
args.append("-DLIBPRESSIO_TOOLS_HAS_SPERR=YES")
if "+nvcomp" in self.spec:
args.append("-DLIBPRESSIO_TOOLS_HAS_NVCOMP=YES")
if self.run_tests:
args.append("-DBUILD_TESTING=ON")
else:
args.append("-DBUILD_TESTING=OFF")
return args
@run_after("build")
@on_package_attributes(run_tests=True)
def test(self):
make("test")

View file

@ -0,0 +1,39 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class LibpressioTthresh(CMakePackage):
"""A tthresh implementation for libpressio"""
homepage = "https://github.com/robertu94/libpressio_tthresh"
url = "https://github.com/robertu94/libpressio_tthresh/archive/refs/tags/0.0.1.tar.gz"
git = homepage
maintainers = ["robertu94"]
version("main", branch="main")
version("0.0.6", sha256="e9dc4754421d892a86516c6bb892f6ff582e9ea3c242c1c052104e4f6944cbec")
version("0.0.5", sha256="af47c90e9c16825312e390a7fb30d9d128847afb69ad6c2f6608bd80f60bae23")
version("0.0.3", sha256="b0b0a4876d3362deafc2bb326be33882132e3d1666e0c5f916fd6fad74a18688")
version("0.0.1", sha256="9efcfa97a5a81e9c456f50b712adb806d9d2f2ed6039860615df0f2e9d96569e")
depends_on("eigen")
depends_on("libpressio@0.85.0:", when="@:0.0.5")
depends_on("libpressio@0.88.0:", when="@0.0.6:")
def cmake_args(self):
args = []
if self.run_tests:
args.append("-DBUILD_TESTING=ON")
else:
args.append("-DBUILD_TESTING=OFF")
return args
@run_after("build")
@on_package_attributes(run_tests=True)
def test(self):
make("test")

View file

@ -0,0 +1,331 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Libpressio(CMakePackage, CudaPackage):
"""A generic abstraction for the compression of dense tensors"""
# codarcode gets "stable" releases ~1/yr; robertu94 contains development versions
homepage = "https://github.com/codarcode/libpressio"
url = "https://github.com/robertu94/libpressio/archive/0.31.1.tar.gz"
git = "https://github.com/robertu94/libpressio"
version("master", branch="master")
version("develop", branch="develop")
version("0.88.0", sha256="4358441f0d10559d571327162a216617d16d09569a80e13ad286e3b7c41c5b9b")
version("0.87.0", sha256="2bea685e5ed3a1528ea68ba4a281902ff77c0bebd38ff212b6e8edbfa263b572")
version("0.86.7", sha256="2a6319640a018c39aa93aaf0f027fd496d7ea7dc5ac95509313cf1b4b6b1fb00")
version("0.86.6", sha256="31ac77137c31a524c2086e1fe4d9b1d3c1bc6d8594662cd4b67878ba8887cabb")
version("0.86.5", sha256="6e6ffe7585e298061f6f5ff79a9fe7edf722a8c124a87282bae864ed6a167246")
version("0.86.4", sha256="52a1d932b30a9390e836ea4b102225b176f8feebbac598a0ab3a81a9ac83775c")
version("0.86.3", sha256="6b010e394fc916ad2233e941a49f70555dda40521e3668f2e10502c7bfa529be")
version("0.86.2", sha256="e221cb256e1b387ce1245cab5704c10d351812c003b257655d43b156b9650a89")
version("0.86.1", sha256="89b1b652215f67635da1baac81d3f927ff00f335c473322edcf24472b5a9b5a4")
version("0.86.0", sha256="867bd6ea6b632b7f6d6a89aac073cea738b574825c81ee83318802e9d3d5fbe8")
version("0.85.0", sha256="79a600fdd5c7a418a0380425e1bbeb245d5d86e1676f251e5900b69738b72423")
version("0.84.3", sha256="7b2ca198f919c1f981c88722da33ef69b564fe123d49330ad6ba17eba80c046e")
version("0.84.2", sha256="c50b599a22ab89b7ef57dbaa717f5e97f4437d2bd4b6e572274c8c98022b05da")
version("0.84.0", sha256="b22320a54dbb9f65a66af2a6f335884e7ba48abd3effe643e51e4e7cfe793b7d")
version("0.83.4", sha256="9dd0efff1c6121e964b45371d6a52895f6a8db3d5cdabbd1e951b696a3f590e3")
version("0.83.3", sha256="59e2bb2c1eb422c03204bfc713bc76d7bbaeaeba6430e1204577495c07eef34d")
version("0.83.2", sha256="56dd63cb3924fb57f8f53929faecf2a5211985f160cdacf38b3d001e22728427")
version("0.83.1", sha256="2afdc8421b4c0f638c8547bcdd54bdb405d1717dca32b804621c5c152adbe2a6")
version("0.83.0", sha256="7c692bbf3ebdfa508a493902eb561c85b9087dd8003547dcd54baf0b2188d9bd")
version("0.82.3", sha256="97a6a0a022d8ae60f477ce21d1ff10cc47bb2f7d3891bb3b49f4a7b166f9c2e1")
version("0.82.2", sha256="ce2d566c627a5341e1fd58261b2d38567b84d963f1045e2e4aac87e67ac06d89")
version("0.82.1", sha256="f6b41ad6f56311078e67e68063f9124f32e63a9c1c9c0c0289c75addaf9fed94")
version("0.82.0", sha256="e60f843dda8312ae4269c3ee23aad67b50f29a8830c84fb6c10309c37e442410")
version("0.81.0", sha256="51ab443a42895fefb4e0ae8eb841402f01a340f3dd30dcb372f837e36ac65070")
version("0.80.1", sha256="9168789f8714d0bbce1a03ff3a41ef24c203f807fed1fbd5ca050798ebef015f")
version("0.80.0", sha256="f93292dc258224a8ef69f33299a5deecfb45e7ea530575eeaa4ceff48093d20e")
version("0.79.0", sha256="e843d8f70369e30d0135b513926ac4a5dacd3042c307c132e80a29b7349e8501")
version("0.78.0", sha256="d9292150686d2be616cd9145c24fe6fc12374df023eee14099ffdf7071e87044")
version("0.77.0", sha256="d2f362c8b48b6ea6b3a099f3dcb0ce844e3b45fd6cf0c4130fbbf48d54d1a9b3")
version("0.76.1", sha256="09b6926efefa1b10f400dfc94927c195d1f266f34ed34cddeba11707c0cc6982")
version("0.76.0", sha256="8ec0e3bcc57511a426047748f649096cf899a07767ddbcdbfad28500e1190810")
version("0.75.1", sha256="8b9beb79507196575649d32116d13833e7dc9765370c245ac5a3640a50cb106a")
version("0.75.0", sha256="83aadd5e6172b3654b955954d13f2d9346fcd008bc901746f6f8b65a978235ee")
version("0.74.1", sha256="aab7211c244a7a640e0b2d12346463c8650ef4f8d48fc58819a20d3b27ab5f81")
version("0.74.0", sha256="2fbd54bbc4d1f3ce4b107ac625ad97c6396bff8873f2ac51dd049d93aa3f2276")
version("0.73.0", sha256="059c90ab50d2e50a1fff8bf25c0c387a9274090bf8657fa49aa1c211b4690491")
version("0.72.2", sha256="1f620b8af272dd2823712c1e38a69c6375febe49eb9155a3f04667ea1931ebdb")
version("0.72.1", sha256="f8ab9559c40a6a93ad0c1a894acf71e07c9fe1994f464852c9dd6f0423a6dc51")
version("0.72.0", sha256="0e6e7327a21a0cd6cf56fa4c62ba5ec1c41381ac053602d8acaa854bdfd1cb30")
version("0.71.3", sha256="f1185acdc6143fe7e417754032336ef50fec5760b08cb291962305429adf18da")
version("0.71.2", sha256="0501f6a0a9cfad62f80834d1dd77c678b000202903168aec0d2c4928ff6e581c")
version("0.71.1", sha256="cd9daa4b28da3b5e3cb36cace11b4e580a66fb14ca04a807c5a135a9448bb5df")
version("0.71.0", sha256="9b9ba9689c53e9cfa4d9fee52653ed393d2307c437dac41daceb6f98564fbcd1")
version("0.70.8", sha256="f0600cabd0341669ef1d6e838ef3496cff5200239a3b96a4941c434d71e4517c")
version("0.70.7", sha256="82722a9e7fbec3b2d79be226ba73bbf3108d3206d006a763db46d20cc044a8b5")
version("0.70.6", sha256="e76be47b0b8bd18d7ac44d59242adc45dc721465638aefd2c8564fd778d1adbd")
version("0.70.5", sha256="c6ee62643c08a7ceca7c45eb28edff0eeb070671bf0d502563b6cc8ada4bf695")
version("0.70.4", sha256="6df62154d0a8919fa91f6fce4ffb2f77584d5ddc61c85eee34557d36de9906b2")
version("0.70.3", sha256="40cca7f6d3bd19fdcf6f6c17521acdf63dfda0fb5b173c23d4521818b16a9a46")
version("0.70.2", sha256="30929e02c0ce5db8d9ff1eeca42df92e68439c7dd5a3c1fea0bb44ead2343442")
version("0.70.1", sha256="855923ca58b1c549681d368d2112d05b96fae9e3199f2a10c2013fcb2f630036")
version("0.70.0", sha256="1e987dcea76b2bd01f7e59b404267c7614a7c99b3fbc0ae745bf8e9426f489c6")
version("0.69.0", sha256="22e47deb4791778846b9c858295b756f91e1d8c884ccf246c2df2bf9b56a04d5")
version("0.68.0", sha256="c7008e6f6b4451812070ece7e9b2fb6cc2fb04971255f95c8274375a698c6794")
version("0.66.3", sha256="7423339831525a128115d446b1dd7fb7942f2aed24e0ec3778396d2c0c379678")
version("0.66.2", sha256="89a6459b6fcf1273f8afc7317e7351c09be977aeb3bb6554941166074ee2030f")
version("0.66.1", sha256="1de2d3d911fc91f7aa9f57eda467f1aadd7060a680538b82c678a5f4e7e6c5d0")
version("0.66.0", sha256="c3063a85c8f17df6ba1722f06eaab74fe14a53f37f5a86664c23a7f35d943f3a")
version("0.65.0", sha256="beb4f7bc73b746fe68c4333fa4d4e1dba05f5f5fb386874b83cbf7f105e83c45")
version("0.64.0", sha256="1af87b410eabee7f377b047049eae486cf3161fa67546789440f1d1e56e2324d")
version("0.63.0", sha256="32d716f52073d7ea246d01fefb420bfe5b834ebc10579edd79ebce7a87dd1a81")
version("0.62.0", sha256="248eedc764312da401aa29304275e009196ebdb5b08594a1522bb165c16874aa")
version("0.61.0", sha256="7b4304b7556d8ec0742d1b8a9280f7f788307d2a6f4d2f59cc8e8358b6c69c11")
version("0.60.0", sha256="a57fce96d50a603075a8a4a583431a1a03170df4d2894ff30f84d8c5ab4caf47")
version("0.59.0", sha256="eae5933a7b37834cf4f70424b083f99799f9381ee8bb616f3a01d4ab2e5631a6")
version("0.58.0", sha256="6b092dda66e7cc1bc4842fe54ab41248c4f136307cc955081e8052222c82aff1")
version("0.57.0", sha256="4f978616c13f311170fdc992610ad1fd727884cf0d20b6849b2c985d936c482b")
version("0.56.2", sha256="1ae20415ba50a4dcfec7992e9a571f09f075f077ebdd7c1afb9a19b158f6205d")
version("0.56.1", sha256="01b7c09f1eafff819de0079baf033f75547432be62dc10cb96691d078994a4e9")
version("0.56.0", sha256="77003c9dde0590ca37fddfbe380b29b9f897fa0dadb9b9f953819f5e9d9f08f0")
version("0.55.3", sha256="f8c6ae6ae48c4d38a82691d7de219ebf0e3f9ca38ae6ba31a64181bfd8a8c50a")
version("0.55.2", sha256="47f25f27f4bff22fd32825d5a1135522e61f9505758dde3d093cfbdaff0b3255")
version("0.55.1", sha256="39f1799d965cd0fec06f0a43dec865c360cbb206e4254f4deb4f7b7f7f3c3b2f")
version("0.55.0", sha256="fb74cfe2a8f3da51f9840082fa563c2a4ce689972c164e95b1b8a1817c4224cf")
version("0.54.0", sha256="cd28ddf054446c286f9bfae563aa463e638ee03e0353c0828a9ce44be4ce2df9")
version("0.53.2", sha256="4a7b57f1fd8e3e85ecf4a481cc907b81a71c4f44cf2c4a506cb37a6513a819a4")
version("0.53.1", sha256="1425dec7ee1a7ddf1c3086b83834ef6e49de021901a62d5bff0f2ca0c75d3455")
version("0.53.0", sha256="0afb44c2dab8dd8121d174193eb6623b29da9592e5fe1bbe344cfc9cacbec0cb")
version("0.52.2", sha256="c642463da0bbdd533399e43c84ea0007b1d7da98276c26bc075c7b4778f97a01")
version("0.52.1", sha256="32f211aaf4641223bf837dc71ea064931f85aa9260b9c7f379787ca907c78c3a")
version("0.52.0", sha256="2fd4cf0cc43c363b2e51cb264a919a1b43514aad979b9b5761b746fc70490130")
version("0.51.0", sha256="878d5399c4789034b7f587a478e2baf8e852f7f1f82aa59e276ddf81d325b934")
version("0.50.4", sha256="f4ab7dada0e07ecf97f88e2dd7ca6c4755fb0f4175d8d12ed3a856c45b240bde")
version("0.50.3", sha256="cc78bfc9a5d1b061098c892e9c8ff14861aa48ea95f0e9684ca4250d30c38889")
version("0.50.2", sha256="0ef1355f905d48ed01c034a8d418e9c528113d65acb3dd31951297029c5aaed4")
version("0.50.1", sha256="1500bae01ba74c330bc205b57423688c2b1aacafe1aabcaf469b221dcda9beec")
version("0.50.0", sha256="c50fb77b5c8d535fe0c930e5d4400d039ad567a571ea9711b01d6d5bd2a26fb6")
version("0.49.2", sha256="cde90e0183024dc1a78d510e2ae3effa087c86c5761f84cba0125f10abc74254")
version("0.49.1", sha256="6d1952ada65d52d2fd5d4c60bb17e51d264c2c618f9b66dadeffa1e5f849394a")
version("0.49.0", sha256="adfe5c64a5d170197893fe5a4c9338cde6cbdd5b54e52534886425101be4458f")
version("0.48.0", sha256="087a7f944240caf2d121c1520a6877beea5d30cc598d09a55138014d7953348a")
version("0.47.0", sha256="efce0f6f32e00482b80973d951a6ddc47b20c8703bd0e63ab59acc0e339d410b")
version("0.46.3", sha256="24bc5d8532a90f07ab2a412ea28ddbfc8ff7ab27cd9b4e7bd99a92b2a0b5acfd")
version("0.46.2", sha256="3ebbafa241e54cb328966ea99eab5d837c4a889f17c3b2048cc2961166a84cc4")
version("0.46.1", sha256="be7468b30a367bcbefab09ed5ac07320cd323904c9129d6b874175b39ef65cd9")
version("0.46.0", sha256="ab944358edc7e03be604749002f1f00aaf4d55d20bac2689d40bd4e66357879d")
version("0.45.0", sha256="b3307b99f82f0300dfed7dd122447a6e74ca8ad8c012d2fc60467e6e067ac226")
version("0.44.0", sha256="cec114325167731233be294aab329d54862457cb2e1f1a87d42d100da7c53aa5")
version("0.42.2", sha256="a9289260eb0a4eaf4550c2d6ad1af7e95a669a747ce425ab9a572d4ab80e2c1f")
version("0.42.1", sha256="5f79487568ec4625b0731f0c10efb565201602a733d1b6ac1436e8934cf8b8ec")
version("0.42.0", sha256="c08e047e202271ec15eeda53670c6082815d168009f4e993debcc0d035904d6b")
version("0.41.0", sha256="b789360d70656d99cd5e0ceebfc8828bdf129f7e2bfe6451592a735be9a0809a")
version("0.40.1", sha256="73a65f17e727191b97dfdf770dd2c285900af05e6fee93aa9ced9eadb86f58ff")
version("0.40.0", sha256="80e68172eeef0fbff128ede354eaac759a9408c3ef72c5eed871bb9430b960ff")
version("0.39.0", sha256="e62fea9bcb96529507fdd83abc991036e8ed9aa858b7d36587fce3d559420036")
version("0.38.2", sha256="5f38387d92338eac8658cd70544a5d9a609bd632090f4f69bcbc9f07ec4abd7b")
version("0.38.1", sha256="99ff1ff61408e17f67ab427c51add074f66ab7375a506ae70dcb24c47a8ea636")
version("0.38.0", sha256="e95aa6e4161324fa92fa236ea2bf08a7267a883ef4ca5fbb8bbf75e70db1ce4f")
version("0.37.0", sha256="98877fa2daf91ac91c2e0e0014684131d6efc4a1f2f77917d40fdbf424d74588")
version("0.36.0", sha256="452a3973cf359786409e064ca4b63a5f81072a9d72a52d1a4084d197f21fc26b")
version("0.35.0", sha256="50e6de305e1ffdcf423cec424e919bb0bdebee6449d34ff26a40421f09392826")
version("0.34.4", sha256="5a997c6f4b8c954a98046a851d0f3b31ce7c5be6e7e615068df4f1d7b86c9630")
version("0.34.3", sha256="1f5994862c33df4588d411b49fba20a40294627d0b325bbd5234f169eb1d4842")
version("0.34.2", sha256="3b8d3f801799023c8efe5069895723ce4e742330282774dc0873c2fa3910eeb2")
version("0.34.1", sha256="791ff249a685fab1733d4c3c936db6a064aa912d47926ad4bd26b1829f6e2178")
version("0.34.0", sha256="da62a15da103e763e34dae43be3436873e4fb550630dddc55232ae644accda02")
version("0.33.0", sha256="61200855a0846ce765b686fa368496f44534e633031811803ba2cb31f94c25b1")
version("0.32.0", sha256="187e75fc6d3f84003829d2b8aec584e99d72d65f2d82835998714ae05ae008af")
version("0.31.1", sha256="32c1fd8319fbbb844a0a252d44761f81f17c6f3549daadce47e81524d84605a4")
version("0.31.0", sha256="9d4bc8b2c1a210a58f34216cebe7cd5935039d244b7e90f7e2792bda81ff7ddc")
version("0.30.1", sha256="e2249bdced68d80a413de59f8393922553a8900a14e731030e362266e82a9af8")
version("0.30.0", sha256="91de53099d9381e3744e7a1ac06d2db0f9065378c4d178328b78ac797ee3ec65")
version("0.29.1", sha256="ced1e98fbd383669e59ec06d2e0c15e27dbceda9ac5569d311c538b2fe6d3876")
version("0.29.0", sha256="a417a1d0ed75bd51131b86fba990502666d8c1388ad6282b3097aa461ccf9785")
version("0.28.0", sha256="5c4e0fe8c7c80615688f271b57b35ee9d924ac07c6d3d56d0303e610338ed332")
version("0.27.1", sha256="3f7d2401ff8b113781d93c5bf374f47ca35b2f962634c6310b73620da735e63d")
version("0.27.0", sha256="387ee5958de2d986095cda2aaf39d0bf319d02eaeeea2a565aea97e6a6f31f36")
version("0.26.0", sha256="c451591d106d1671c9ddbb5c304979dd2d083e0616b2aeede62e7a6b568f828c")
variant("blosc", default=False, description="support the blosc lossless compressors")
variant("fpzip", default=False, description="support for the FPZIP lossy compressor")
variant("hdf5", default=False, description="support reading and writing from hdf5 files")
variant("magick", default=False, description="support the imagemagick image compressors")
variant(
"mgard", default=False, description="support for the MAGARD error bounded lossy compressor"
)
variant("python", default=False, description="build the python wrappers")
variant("sz", default=False, description="support for the SZ error bounded lossy compressor")
variant("zfp", default=False, description="support for the ZFP error bounded lossy compressor")
variant("boost", default=False, description="support older compilers using boost")
variant("petsc", default=False, description="support IO using petsc format")
variant("mpi", default=False, description="support for launching processes using mpi")
variant("lua", default=False, description="support for composite metrics using lua")
variant(
"libdistributed", default=False, description="support for distributed multi-buffer support"
)
variant("ftk", default=False, description="build support for the feature tracking toolkit")
variant("digitrounding", default=False, description="build support for the digit rounding")
variant("bitgrooming", default=False, description="build support for the bitgrooming")
variant("openmp", default=False, description="build plugins that use openmp")
variant("docs", default=False, description="build and install manual pages")
variant("remote", default=False, description="build the remote launch plugin")
variant("json", default=False, description="build the JSON support")
variant("szauto", default=False, description="build szauto support")
variant("unix", default=False, description="build support for unixisms like mmap and rusage")
variant("ndzip", default=False, description="build support for the NDZIP compressor")
variant("arc", default=False, description="build support for the ARC error correction tool")
variant("netcdf", default=False, description="build support for the NDFCDF data format")
variant("sz3", default=False, description="build support for the SZ3 compressor family")
variant("mgardx", default=False, description="build support for the MGARDx compressor")
variant("bzip2", default=False, description="build support for the bzip2 compressor")
variant("qoz", default=False, description="build support for the qoz compressor")
variant(
"cusz", default=False, description="build support for the cusz compressor", when="@0.86.0:"
)
depends_on("boost", when="@:0.51.0+boost")
depends_on("libstdcompat+boost", when="+boost")
depends_on("libstdcompat@0.0.14:", when="@0.79.0:")
depends_on("libstdcompat@0.0.13:", when="@0.73.0:")
depends_on("libstdcompat@0.0.10:", when="@0.71.3:")
depends_on("libstdcompat@0.0.7:", when="@0.70.3:")
depends_on("libstdcompat@0.0.6:", when="@0.70.2:")
depends_on("libstdcompat@0.0.5:", when="@0.63.0:")
depends_on("libstdcompat@0.0.3:", when="@0.60.0:")
depends_on("libstdcompat", when="@0.52.0:")
depends_on("c-blosc", when="+blosc")
depends_on("fpzip", when="+fpzip")
depends_on("hdf5", when="+hdf5")
depends_on("imagemagick", when="+magick")
depends_on("mgard", when="+mgard")
depends_on("python@3:", when="+python", type=("build", "link", "run"))
depends_on("py-numpy", when="+python", type=("build", "link", "run"))
depends_on("swig@3.12:", when="+python", type="build")
depends_on("sz@2.1.8.1:", when="@0.55.2:+sz")
depends_on("sz@2.1.11.1:", when="@0.55.3:+sz")
depends_on("sz@2.1.12:", when="@0.69.0:+sz")
depends_on("fftw", when="+sz ^sz@:2.1.10")
depends_on("zfp", when="+zfp")
depends_on("petsc", when="+petsc")
depends_on("mpi@2:", when="+mpi")
depends_on("lua-sol2", when="+lua")
depends_on("libdistributed@0.0.11:", when="+libdistributed")
depends_on("libdistributed@0.4.0:", when="@0.85.0:+libdistributed")
depends_on("pkg-config", type="build")
depends_on("ftk@master", when="+ftk")
depends_on("digitrounding", when="+digitrounding")
depends_on("bitgroomingz", when="+bitgrooming")
depends_on("cmake@3.14:", type="build")
depends_on("py-mpi4py", when="@0.54.0:+mpi+python", type=("build", "link", "run"))
depends_on("py-numcodecs", when="@0.54.0:+python", type="run")
depends_on("doxygen+graphviz", when="+docs", type="build")
depends_on("curl", when="+remote")
depends_on("nlohmann-json+multiple_headers", when="+remote")
depends_on("nlohmann-json+multiple_headers", when="+json")
depends_on("szauto", when="+szauto")
depends_on("ndzip", when="+ndzip")
depends_on("arc", when="+arc")
depends_on("netcdf-c", when="+netcdf")
depends_on("mgardx", when="+mgardx")
conflicts(
"+mgardx", when="+szauto"
) # SZ auto and MGARDx cause symbol conflicts with each other
conflicts(
"~json",
when="@0.57.0:+remote",
msg="JSON support required for remote after version 0.57.0",
)
depends_on("sz3", when="+sz3")
depends_on("bzip2", when="+bzip2")
depends_on("qoz", when="+qoz")
depends_on("cusz", when="+cusz")
extends("python", when="+python")
def cmake_args(self):
args = []
if "+python" in self.spec:
args.append("-DLIBPRESSIO_PYTHON_SITELIB={0}".format(python_platlib))
args.append("-DBUILD_PYTHON_WRAPPER=ON")
args.append("-DPython3_EXECUTABLE={0}".format(self.spec["python"].command))
if "+mpi" in self.spec:
args.append("-DLIBPRESSIO_HAS_MPI4PY=ON")
if "+hdf5" in self.spec:
args.append("-DLIBPRESSIO_HAS_HDF=ON")
args.append("-DHDF5_ROOT=" + self.spec["hdf5"].prefix)
if "+sz" in self.spec:
args.append("-DLIBPRESSIO_HAS_SZ=ON")
if "+szauto" in self.spec:
args.append("-DLIBPRESSIO_HAS_SZ_AUTO=ON")
if "+zfp" in self.spec:
args.append("-DLIBPRESSIO_HAS_ZFP=ON")
if "+fpzip" in self.spec:
args.append("-DLIBPRESSIO_HAS_FPZIP=ON")
if "+blosc" in self.spec:
args.append("-DLIBPRESSIO_HAS_BLOSC=ON")
if "+magick" in self.spec:
args.append("-DLIBPRESSIO_HAS_MAGICK=ON")
if "+mgard" in self.spec:
args.append("-DLIBPRESSIO_HAS_MGARD=ON")
if "+petsc" in self.spec:
args.append("-DLIBPRESSIO_HAS_PETSC=ON")
if "+boost" in self.spec:
args.append("-DLIBPRESSIO_CXX_VERSION=11")
if "+mpi" in self.spec:
args.append("-DLIBPRESSIO_HAS_MPI=ON")
if "+lua" in self.spec:
args.append("-DLIBPRESSIO_HAS_LUA=ON")
if "+libdistributed" in self.spec:
args.append("-DLIBPRESSIO_HAS_LIBDISTRIBUTED=ON")
if "+ftk" in self.spec:
args.append("-DLIBPRESSIO_HAS_FTK=ON")
if "+bitgrooming" in self.spec:
args.append("-DLIBPRESSIO_HAS_BIT_GROOMING=ON")
if "+digitrounding" in self.spec:
args.append("-DLIBPRESSIO_HAS_DIGIT_ROUNDING=ON")
if "+openmp" in self.spec:
args.append("-DLIBPRESSIO_HAS_OPENMP=ON")
if "+docs" in self.spec:
args.append("-DBUILD_DOCS=ON")
args.append("-DLIBPRESSIO_INSTALL_DOCS=ON")
if "+remote" in self.spec:
args.append("-DLIBPRESSIO_HAS_REMOTELAUNCH=ON")
if "+json" in self.spec:
args.append("-DLIBPRESSIO_HAS_JSON=ON")
if "+unix" in self.spec:
args.append("-DLIBPRESSIO_HAS_LINUX=ON")
if "+ndzip" in self.spec:
args.append("-DLIBPRESSIO_HAS_NDZIP=ON")
if "+arc" in self.spec:
args.append("-DLIBPRESSIO_HAS_ARC=ON")
if "+netcdf" in self.spec:
args.append("-DLIBPRESSIO_HAS_NETCDF=ON")
if "+sz3" in self.spec:
args.append("-DLIBPRESSIO_HAS_SZ3=ON")
if "+cuda" in self.spec:
args.append("-DLIBPRESSIO_HAS_CUFILE=ON")
if "+mgardx" in self.spec:
args.append("-DLIBPRESSIO_HAS_MGARDx=ON")
if "+bzip2" in self.spec:
args.append("-DLIBPRESSIO_HAS_BZIP2=ON")
if "+qoz" in self.spec:
args.append("-DLIBPRESSIO_HAS_QoZ=ON")
if "+cusz" in self.spec:
args.append("-DLIBPRESSIO_HAS_CUSZ=ON")
if self.run_tests:
args.append("-DBUILD_TESTING=ON")
else:
args.append("-DBUILD_TESTING=OFF")
return args
@run_after("build")
@on_package_attributes(run_tests=True)
def test(self):
make("test")
@run_after("build")
def install_docs(self):
if "+docs" in self.spec:
with working_dir(self.build_directory):
make("docs")

View file

@ -0,0 +1,98 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Libstdcompat(CMakePackage):
"""A compatibility header for C++14, 17, and 20 for C++11"""
homepage = "https://github.com/robertu94/std_compat"
url = "https://github.com/robertu94/std_compat/archive/0.0.1.tar.gz"
git = "https://github.com/robertu94/std_compat"
maintainers = ["robertu94"]
version("master", branch="master")
version("0.0.15", sha256="af374a8883a32d874f6cd18cce4e4344e32f9d60754be403a5ac7114feca2a28")
version("0.0.14", sha256="9a794d43a1d79aec3350b89d8c06689b8b32cf75e2742cdfa9dc0e3f2be6f04e")
version("0.0.13", sha256="460656189e317e108a489af701fa8f33f13a93d96380788e692a1c68100e0388")
version("0.0.12", sha256="67c1d1724122a1ba7cebcd839658786680fa06a549369f4a7c36a44ad93ddd5d")
version("0.0.11", sha256="f166cd55e3cf845e4ed9eee1fb25de1f991dee5ef538c1e3ea9cbe7714863ccb")
version("0.0.10", sha256="d55ad9b7f61efa5a4bbef047f729af5ed9e44f96bb9d54f36023fa99af2bfe40")
version("0.0.9", sha256="325e816153aab0aee791e4c628e01dbc5b7aa336558d1694bd5de763f34e37e6")
version("0.0.8", sha256="3103295033fb6723dc462a8979ccfe3b571347c2a458f4cc8d8324981dedead9")
version("0.0.7", sha256="8cb4ed704aef427bbe4c86ee874a350561e6e059223e7b3d60f1e0d7300ccfe9")
version("0.0.6", sha256="cf4288422c9e9ab9e7c831c11a6a67907fe19b0da40601cc2b05e76e3be2f795")
version("0.0.5", sha256="a8599a12253b5ebdb38c6e416e7896444fd48a15167fe481985182ed17fc6883")
version("0.0.4", sha256="b2aeb4e60105635acb3f41b2c9559956e7b75d999c73b84b14be5b78daa4e6a9")
version("0.0.3", sha256="098678618a335bb2e8b25ceae8c3498f4c3056fd9e03467948bab18252afb46d")
version("0.0.2", sha256="36424399e649be38bdb21899aa45f94aebba25c66048bab2751b1b3b9fd27238")
version("0.0.1", sha256="3d63e901f4e20b9032a67086f4b4281f641ee0dea436cf15f7058faa40d8637b")
variant(
"cpp_compat",
values=("11", "14", "17", "20", "auto"),
default="auto",
multi=False,
description="version of the c++ standard to use and depend on",
)
variant("cpp_unstable", default=True, description="sets CXX_STANDARD_REQUIRED")
variant("boost", default=False, description="support older compilers using boost")
depends_on("boost+thread", when="%gcc@:8.0.0")
depends_on("boost+thread", when="+boost")
depends_on("boost+thread", when="cpp_compat=11")
depends_on("boost+thread", when="cpp_compat=14")
conflicts("~cpp_unstable", when="@0.0.7: cpp_compat=auto")
conflicts("+cpp_unstable", when="@:0.0.7")
conflicts("cpp_compat=11", when="@:0.0.7")
conflicts("cpp_compat=14", when="@:0.0.7")
conflicts("cpp_compat=17", when="@:0.0.7")
conflicts("cpp_compat=20", when="@:0.0.7")
def max_cxx_version(self):
try:
self.compiler.cxx17_flag
return "17"
except Exception:
pass
try:
self.compiler.cxx14_flag
return "14"
except Exception:
pass
self.compiler.cxx11_flag
return "11"
def cmake_args(self):
args = []
cpp_compat = self.spec.variants["cpp_compat"].value
if "cpp_unstable" in self.spec:
args.append("-DSTDCOMPAT_CXX_UNSTABLE=ON")
if cpp_compat == "auto":
args.append("-DSTDCOMPAT_CXX_VERSION=%s" % self.max_cxx_version())
elif cpp_compat == "11":
args.append("-DSTDCOMPAT_CXX_VERSION=11")
elif cpp_compat == "14":
args.append("-DSTDCOMPAT_CXX_VERSION=14")
elif cpp_compat == "17":
args.append("-DSTDCOMPAT_CXX_VERSION=17")
elif cpp_compat == "20":
args.append("-DSTDCOMPAT_CXX_VERSION=20")
if self.run_tests:
args.append("-DBUILD_TESTING=ON")
else:
args.append("-DBUILD_TESTING=OFF")
return args
@run_after("build")
@on_package_attributes(run_tests=True)
def test(self):
make("test")

View file

@ -0,0 +1,45 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Mgard(CMakePackage, CudaPackage):
"""MGARD error bounded lossy compressor
forked from https://github.com/CODARcode/MGARD with patches to support Spack"""
# This is a research compressor with a fast evolving API. The fork is updated
# when releases are made with minimal changes to support spack
homepage = "https://github.com/CODARcode/MGARD"
git = "https://github.com/robertu94/MGARD"
maintainers = ["robertu94"]
version("2021-11-12", commit="3c05c80a45a51bb6cc5fb5fffe7b1b16787d3366")
version("2020-10-01", commit="b67a0ac963587f190e106cc3c0b30773a9455f7a")
depends_on("zlib")
depends_on("zstd")
depends_on("libarchive", when="@2021-11-12:")
depends_on("tclap", when="@2021-11-12:")
depends_on("yaml-cpp", when="@2021-11-12:")
depends_on("cmake@3.19:")
depends_on("nvcomp@2.0.2", when="+cuda")
conflicts("cuda_arch=none", when="+cuda")
conflicts("~cuda", when="@2021-11-12")
def cmake_args(self):
args = ["-DBUILD_TESTING=OFF"]
if "+cuda" in self.spec:
args.append("-DMGARD_ENABLE_CUDA=ON")
cuda_arch = self.spec.variants["cuda_arch"].value
args.append("-DCUDA_ARCH_STRING={}".format(";".join(cuda_arch)))
if "75" in cuda_arch:
args.append("-DMGARD_ENABLE_CUDA_OPTIMIZE_TURING=ON")
if "70" in cuda_arch:
args.append("-DMGARD_ENABLE_CUDA_OPTIMIZE_VOLTA=ON")
return args

View file

@ -0,0 +1,35 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Mgardx(CMakePackage):
"""MGARD implementation for research purposes
forked from: https://github.com/lxAltria/MGARDx"""
# Some of the functionality of this compressor were moved to `MGARD` proper
# effectively retiring this package. This package lives on to access some of
# this functionality. Includes minor patches to support spack.
homepage = "https://github.com/lxAltria/MGARDx"
git = "https://github.com/robertu94/MGARDx"
maintainers = ["robertu94"]
variant("shared", description="build shared libraries", default=True)
version("2022-01-27", commit="aabe9de1a331eaeb8eec41125dd45e30c1d03af4")
depends_on("sz-cpp")
depends_on("pkgconfig")
depends_on("zstd")
def cmake_args(self):
args = [
self.define("BUILD_TESTING", self.run_tests),
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
]
return args

View file

@ -0,0 +1,40 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Ndzip(CMakePackage, CudaPackage):
"""A High-Throughput Parallel Lossless Compressor for Scientific Data
forked from: https://github.com/fknorr/ndzip
"""
# the upstream developer graduated and moved on to other tasks
url = "https://github.com/celerity/ndzip"
homepage = "https://github.com/fknorr/ndzip"
git = "https://github.com/robertu94/ndzip"
maintainers = ["robertu94"]
version("master", branch="master")
version("2021-11-30", commit="5b3c34991005c0924a339f2ec06750729ebbf015")
variant("cuda", description="build with cuda support", default=False)
variant("openmp", description="build with cuda support", default=False)
def cmake_args(self):
args = [
self.define_from_variant("NDZIP_WITH_CUDA", "cuda"),
self.define_from_variant("NDZIP_WITH_MT", "openmp"),
self.define("NDZIP_BUILD_BENCHMARK", False),
self.define("NDZIP_BUILD_TEST", self.run_tests),
self.define("NDZIP_USE_WERROR", False),
]
if "+cuda" in self.spec and self.spec.variants["cuda_arch"].value != "none":
arch_str = ";".join(self.spec.variants["cuda_arch"].value)
args.append(self.define("CMAKE_CUDA_ARCHITECTURES", arch_str))
return args

View file

@ -0,0 +1,34 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Nvcomp(CMakePackage, CudaPackage):
"""Last open source release of A library for fast lossless compression
/decompression on NVIDIA GPUs
forked from: https://github.com/NVIDIA/nvcomp after NVIDIA made this closed source
"""
homepage = "https://github.com/NVIDIA/nvcomp"
url = "https://github.com/NVIDIA/nvcomp/archive/refs/tags/v2.0.2.tar.gz"
# pinned to the last open source release+a few minor patches
git = "https://github.com/robertu94/nvcomp"
maintainers = ["robertu94"]
version("2.2.0", commit="3737f6e5028ed1887b0023ad0fc033e139d57574")
version("2.0.2", commit="5d5c194f3449486d989057f632d10954b8d11d75")
depends_on("cuda")
conflicts("~cuda")
def cmake_args(self):
args = ["-DBUILD_EXAMPLES=OFF", "-DBUILD_BENCHMARKS=OFF"]
cuda_arch_list = self.spec.variants["cuda_arch"].value
args.append("CMAKE_CUDA_ARCHITECTURES={0}".format(";".join(cuda_arch_list)))
return args

View file

@ -0,0 +1,24 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Qcat(CMakePackage):
"""Quick data compression quality analysis tool"""
homepage = "https://github.com/szcompressor/qcat"
git = "https://github.com/szcompressor/qcat"
maintainers = ["disheng222", "robertu94"]
version("master", branch="master")
version("1.4", commit="f16032cf237837b1d32dde0c3daa6ad1ca4a912f")
depends_on("zstd")
def cmake_args(self):
args = ["-DQCAT_USE_BUNDLES=OFF"]
return args

View file

@ -0,0 +1,28 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Qoz(CMakePackage):
"""Quality optimized version of SZ3 is the next generation of the SZ compressor framework"""
git = "https://github.com/robertu94/QoZ"
homepage = git
version("2022.04.26", commit="d28a7a8c9f703075441b700202b8a1ee185ded00")
maintainers = ["disheng222"]
depends_on("zstd")
depends_on("gsl")
depends_on("pkgconfig")
def cmake_args(self):
args = [
"-DQoZ_USE_BUNDLED_ZSTD=OFF",
"-DQoZ_DEBUG_TIMINGS=OFF",
]
return args

View file

@ -0,0 +1,36 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class RLibpressio(RPackage):
"""R package for libpressio"""
homepage = "https://github.com/robertu94/libpressio-r"
url = "https://github.com/robertu94/libpressio-r/archive/0.0.1.tar.gz"
maintainers = ["robertu94"]
version("1.6.0", sha256="4f8a712e5e84a201373a104e73b10282fcf98f1c7672cc1dd5a2ff07a32d54f6")
version("1.5.0", sha256="6b0e095610f190aad5dded0dbc6c0783893d4d5e773afc80328fc8c5befeff58")
version("1.4.1", sha256="fa9d47c84ddeb4edd9c5250067a87cc1bb549b9b1dd71e2501dd39ee4e171c27")
version("1.3.2", sha256="6afc907aa3663fbb9bfc7c92ca57e15d05ecbec59f94badec24e8da99ac1422f")
version("1.3", sha256="6ade53d30446de85d2bf6aff0f0a756887f970634b97456aec8b2920a96c0726")
version("1.2", sha256="e5889abf6aabd14b25b5c11e8ecc42cfe56681b1e4f7ade9c9fc28de213981b4")
version("1.1", sha256="b86a541e095b6e41b3548f6cd734c1ff50c70edda2806ed66b5205880fbfbb96")
version("0.0.1", sha256="a508cf3ec1b06c417e0de0e1e4180f3175ead2e4ec23b374425fcf2abfaa1b88")
variant(
"third_party", description="include support for 3rd party compressor modules", default=True
)
depends_on("r@3.3.0:", type=("build", "run"))
depends_on("r-rcpp", type=("build", "link", "run"))
depends_on("libpressio+json", type=("build", "link", "run"))
depends_on("libpressio@0.65.0:", type=("build", "link", "run"), when="@1.2:1.5")
depends_on("libpressio@0.88.0:", type=("build", "link", "run"), when="@1.6:")
depends_on("pkgconfig", type=("build"))
depends_on("libpressio-tools@0.1.4:", type=("build", "link", "run"), when="+third_party")

View file

@ -214,16 +214,19 @@ def setup_dependent_build_environment(self, env, dependent_spec):
# Use the number of make_jobs set in spack. The make program will
# determine how many jobs can actually be started.
env.set("MAKEFLAGS", "-j{0}".format(make_jobs))
env.set("R_HOME", join_path(self.prefix, "rlib", "R"))
def setup_dependent_run_environment(self, env, dependent_spec):
# For run time environment set only the path for dependent_spec and
# prepend it to R_LIBS
env.set("R_HOME", join_path(self.prefix, "rlib", "R"))
if dependent_spec.package.extends(self.spec):
env.prepend_path("R_LIBS", join_path(dependent_spec.prefix, self.r_lib_dir))
def setup_run_environment(self, env):
env.prepend_path("LD_LIBRARY_PATH", join_path(self.prefix, "rlib", "R", "lib"))
env.prepend_path("PKG_CONFIG_PATH", join_path(self.prefix, "rlib", "pkgconfig"))
env.set("R_HOME", join_path(self.prefix, "rlib", "R"))
if "+rmath" in self.spec:
env.prepend_path("LD_LIBRARY_PATH", join_path(self.prefix, "rlib"))

View file

@ -0,0 +1,25 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Sam2p(Package):
"""A raster to PostScript/PDF image conversion program"""
homepage = "https://github.com/pts/sam2p"
url = "https://github.com/pts/sam2p/archive/v0.49.4.tar.gz"
git = homepage
maintainers = ["robertu94"]
version("master", branch="master")
version("2021-05-04", commit="f3e9cc0a2df1880a63f9f37c96e3595bca890cfa")
def install(self, spec, prefix):
compile_sh = Executable("./compile.sh")
compile_sh()
mkdirp(prefix.bin)
install("sam2p", prefix.bin)

View file

@ -0,0 +1,43 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Sperr(CMakePackage):
"""SPERR is a lossy scientific (floating-point) data compressor that can
perform either error-bounded or size-bounded data compression"""
homepage = "https://github.com/NCAR/SPERR"
git = homepage
version("2022.07.18", commit="640305d049db9e9651ebdd773e6936e2c028ff3a")
version("2022.05.26", commit="7894a5fe1b5ca5a4aaa952d1779dfc31fd741243")
depends_on("git", type="build")
depends_on("zstd", type=("build", "link"), when="+zstd")
depends_on("pkgconf", type=("build"), when="+zstd")
variant("shared", description="build shared libaries", default=True)
variant("zstd", description="use Zstd for more compression", default=True)
variant("openmp", description="use openmp for acceleration", default=True)
maintainers = ["shaomeng", "robertu94"]
def cmake_args(self):
# ensure the compiler supports OpenMP if it is used
if "+openmp" in self.spec:
self.compiler.openmp_flag
args = [
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
self.define_from_variant("USE_ZSTD", "zstd"),
self.define_from_variant("USE_OMP", "openmp"),
"-DSPERR_PREFER_RPATH=OFF",
"-DUSE_BUNDLED_ZSTD=OFF",
"-DBUILD_CLI_UTILITIES=OFF",
"-DBUILD_UNIT_TESTS=OFF",
]
return args

View file

@ -0,0 +1,29 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class SzCpp(CMakePackage):
"""Refactorization of SZ in cpp"""
homepage = "https://github.com/robertu94/meta_compressor/"
git = "https://github.com/robertu94/meta_compressor/"
maintainers = ["robertu94"]
version("2022-01-27", commit="9441b79abc89d4bcce53fe18edf0df53fd92d1d7")
variant("shared", description="build shared libs", default=True)
depends_on("zstd")
depends_on("pkgconfig")
def cmake_args(self):
args = [
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
self.define("BUILD_TESTING", self.run_tests),
]
return args

View file

@ -0,0 +1,31 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Sz3(CMakePackage):
"""SZ3 is the next generation of the SZ compressor framework"""
homepage = "https://github.com/szcompressor/SZ3"
git = "https://github.com/szcompressor/SZ3"
maintainers = ["disheng222"]
version("master")
version("3.1.5.4", commit="08df24b566e6d2e419cb95553aebf4a4902a8015")
version("3.1.5.1", commit="5736a63b917e439dd62248b4ff6234e96726af5d")
version("3.1.3.1", commit="323cb17b412d657c4be681b52c34beaf933fe7af")
version("3.1.3", commit="695dff8dc326f3b165f6676d810f46add088a585")
depends_on("zstd")
depends_on("gsl")
depends_on("pkgconfig")
def cmake_args(self):
return [
"-DSZ3_USE_BUNDLED_ZSTD=OFF",
"-DSZ3_DEBUG_TIMINGS=OFF",
]

View file

@ -0,0 +1,23 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Szauto(CMakePackage):
"""SZauto: SZ C++ Version that Supports Second-Order Prediction and Parameter Optimization"""
homepage = "https://github.com/szcompressor/SZauto"
url = "https://github.com/szcompressor/SZauto/releases/download/1.0.0/SZauto-1.0.0.tar.gz"
git = "https://github.com/szcompressor/szauto"
maintainers = ["disheng222", "robertu94"]
version("master", branch="master")
version("1.2.1", sha256="55c58f58df3a874f684ef864a9247907df0501e5598c089fd2d855ae0309b03a")
version("1.0.0", commit="03f3ab0312bd1de647e9d65746add73a0e8602d2")
depends_on("zstd")
depends_on("pkgconfig")