From 71223a435668eea2f5f622bf72a4fa3d5a798e8c Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Fri, 18 Oct 2024 16:20:33 -0400 Subject: [PATCH 1/7] ADIOS2: Support MGARD compression --- A/ADIOS2/build_tarballs.jl | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/A/ADIOS2/build_tarballs.jl b/A/ADIOS2/build_tarballs.jl index 4fb4fe6371b..0541c4ae1dd 100644 --- a/A/ADIOS2/build_tarballs.jl +++ b/A/ADIOS2/build_tarballs.jl @@ -7,7 +7,7 @@ include(joinpath(YGGDRASIL_DIR, "platforms", "mpi.jl")) name = "ADIOS2" adios2_version = v"2.10.1" -version = v"2.10.2" +version = v"2.10.3" # Collection of sources required to complete build sources = [ @@ -60,6 +60,13 @@ else archopts+=(-DADIOS2_USE_DataMan=ON -DADIOS2_USE_HDF5=ON -DADIOS2_USE_SST=ON) fi +# Use MGARD if it is available +if [ -e ${prefix}/libmgard.${dlext} ]; then + archopts+=(-DADIOS2_USE_MGARD=ON) +else + archopts+=(-DADIOS2_USE_MGARD=OFF) +fi + export MPITRAMPOLINE_CC=${CC} export MPITRAMPOLINE_CXX=${CXX} export MPITRAMPOLINE_FC=${FC} @@ -79,6 +86,7 @@ cmake -B build -G Ninja \ -DADIOS2_Blosc2_PREFER_SHARED=ON \ -DADIOS2_USE_CUDA=OFF \ -DADIOS2_USE_Fortran=OFF \ + -DADIOS2_USE_MGARD=ON \ -DADIOS2_USE_MPI=ON \ -DADIOS2_USE_PNG=ON \ -DADIOS2_USE_ZeroMQ=ON \ @@ -105,14 +113,13 @@ platforms = filter(p -> nbits(p) ≠ 32, platforms) platforms = expand_cxxstring_abis(platforms) # We need to use the same compat bounds as HDF5 -platforms, platform_dependencies = MPI.augment_platforms(platforms; MPItrampoline_compat="5.3.3", OpenMPI_compat="4.1.6, 5") +platforms, platform_dependencies = MPI.augment_platforms(platforms; MPItrampoline_compat="5.5.0", OpenMPI_compat="4.1.6, 5") # Avoid platforms where the MPI implementation isn't supported # OpenMPI platforms = filter(p -> !(p["mpi"] == "openmpi" && Sys.isfreebsd(p)), platforms) # MPItrampoline platforms = filter(p -> !(p["mpi"] == "mpitrampoline" && libc(p) == "musl"), platforms) -platforms = filter(p -> !(p["mpi"] == "mpitrampoline" && Sys.isfreebsd(p)), platforms) # We don't need HDF5 on Windows (see above) hdf5_platforms = filter(p -> os(p) ≠ "windows", platforms) @@ -150,6 +157,7 @@ dependencies = [ Dependency(PackageSpec(name="Bzip2_jll"); compat="1.0.8"), Dependency(PackageSpec(name="CompilerSupportLibraries_jll", uuid="e66e0078-7015-5450-92f7-15fbd957f2ae"), v"0.5.2"), Dependency(PackageSpec(name="HDF5_jll"); compat="~1.14.3", platforms=hdf5_platforms), + Dependency(PackageSpec(name="MGARD_jll"); compat="1.5.2"), Dependency(PackageSpec(name="ZeroMQ_jll")), Dependency(PackageSpec(name="libpng_jll")), Dependency(PackageSpec(name="pugixml_jll")), From 9839ba73383227c7d7b420ca275a7afa4ba41429 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Sat, 19 Oct 2024 15:08:22 -0400 Subject: [PATCH 2/7] ADIOS2: Trigger rebuild for newer ZeroMQ --- A/ADIOS2/build_tarballs.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/A/ADIOS2/build_tarballs.jl b/A/ADIOS2/build_tarballs.jl index 0541c4ae1dd..3acac5c6cc4 100644 --- a/A/ADIOS2/build_tarballs.jl +++ b/A/ADIOS2/build_tarballs.jl @@ -176,3 +176,5 @@ ENV["MPITRAMPOLINE_DELAY_INIT"] = "1" # GCC 5 is too old for FreeBSD; it doesn't have `std::to_string` build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; augment_platform_block, julia_compat="1.6", preferred_gcc_version=v"6") + +# Build trigger: 1 From a5a7b1b73bab61ae3e2aca127edeb22ba946d009 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Sat, 19 Oct 2024 15:26:53 -0400 Subject: [PATCH 3/7] ADIOS2: Disable aarch64-unknown-freebsd --- A/ADIOS2/build_tarballs.jl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/A/ADIOS2/build_tarballs.jl b/A/ADIOS2/build_tarballs.jl index 3acac5c6cc4..821487a90db 100644 --- a/A/ADIOS2/build_tarballs.jl +++ b/A/ADIOS2/build_tarballs.jl @@ -121,6 +121,9 @@ platforms = filter(p -> !(p["mpi"] == "openmpi" && Sys.isfreebsd(p)), platforms) # MPItrampoline platforms = filter(p -> !(p["mpi"] == "mpitrampoline" && libc(p) == "musl"), platforms) +# HDF5 isn't available yet on aarch64-unknown-freebsd. Disable this architecture. +platforms = filter(p -> !(arch(p) == "aarch64" && Sys.isfreebsd(p)), platforms) + # We don't need HDF5 on Windows (see above) hdf5_platforms = filter(p -> os(p) ≠ "windows", platforms) From be15f3631b617a913270fd9d2ea4f94bd2321414 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Sat, 19 Oct 2024 15:49:16 -0400 Subject: [PATCH 4/7] ADIOS2: Disable x86_64-unknown-freebsd --- A/ADIOS2/build_tarballs.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/A/ADIOS2/build_tarballs.jl b/A/ADIOS2/build_tarballs.jl index 821487a90db..a5c1c024c53 100644 --- a/A/ADIOS2/build_tarballs.jl +++ b/A/ADIOS2/build_tarballs.jl @@ -123,6 +123,8 @@ platforms = filter(p -> !(p["mpi"] == "mpitrampoline" && libc(p) == "musl"), pla # HDF5 isn't available yet on aarch64-unknown-freebsd. Disable this architecture. platforms = filter(p -> !(arch(p) == "aarch64" && Sys.isfreebsd(p)), platforms) +# HDF5 isn't available yet on x86_64-unknown-freebsd. Disable this architecture. +platforms = filter(p -> !(arch(p) == "x86_64" && Sys.isfreebsd(p)), platforms) # We don't need HDF5 on Windows (see above) hdf5_platforms = filter(p -> os(p) ≠ "windows", platforms) From 5db29de17537e24e17bde34f95638c6f803a4ae1 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Mon, 21 Oct 2024 09:37:06 -0400 Subject: [PATCH 5/7] ADIOS2: Correct path to MGARD --- A/ADIOS2/build_tarballs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/A/ADIOS2/build_tarballs.jl b/A/ADIOS2/build_tarballs.jl index a5c1c024c53..2bfe698616c 100644 --- a/A/ADIOS2/build_tarballs.jl +++ b/A/ADIOS2/build_tarballs.jl @@ -61,7 +61,7 @@ else fi # Use MGARD if it is available -if [ -e ${prefix}/libmgard.${dlext} ]; then +if [ -e ${libdir}/libmgard.${dlext} ]; then archopts+=(-DADIOS2_USE_MGARD=ON) else archopts+=(-DADIOS2_USE_MGARD=OFF) From 0f48c08802ae7f3e0fab0d2beb49aa2c3799d0cc Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Tue, 22 Oct 2024 18:33:53 -0400 Subject: [PATCH 6/7] ADIOS2: Add MGARD's dependencies --- A/ADIOS2/build_tarballs.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/A/ADIOS2/build_tarballs.jl b/A/ADIOS2/build_tarballs.jl index 2bfe698616c..7af5c424202 100644 --- a/A/ADIOS2/build_tarballs.jl +++ b/A/ADIOS2/build_tarballs.jl @@ -164,7 +164,9 @@ dependencies = [ Dependency(PackageSpec(name="HDF5_jll"); compat="~1.14.3", platforms=hdf5_platforms), Dependency(PackageSpec(name="MGARD_jll"); compat="1.5.2"), Dependency(PackageSpec(name="ZeroMQ_jll")), + Dependency(PackageSpec(name="Zstd_jll")), Dependency(PackageSpec(name="libpng_jll")), + Dependency(PackageSpec(name="protoc_jll")), Dependency(PackageSpec(name="pugixml_jll")), Dependency(PackageSpec(name="yaml_cpp_jll")), Dependency(PackageSpec(name="zfp_jll"); compat="1"), From 2835dc121a2420cb68563f7797c86ece96f47da4 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Mon, 28 Oct 2024 11:37:47 -0400 Subject: [PATCH 7/7] ADIOS2: Update to upstream 2.10.2 --- A/ADIOS2/build_tarballs.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/A/ADIOS2/build_tarballs.jl b/A/ADIOS2/build_tarballs.jl index 7af5c424202..063c8d4d59e 100644 --- a/A/ADIOS2/build_tarballs.jl +++ b/A/ADIOS2/build_tarballs.jl @@ -6,12 +6,12 @@ const YGGDRASIL_DIR = "../.." include(joinpath(YGGDRASIL_DIR, "platforms", "mpi.jl")) name = "ADIOS2" -adios2_version = v"2.10.1" +adios2_version = v"2.10.2" version = v"2.10.3" # Collection of sources required to complete build sources = [ - GitSource("https://github.com/ornladios/ADIOS2.git", "f626281e3dad99ca871396944a9091a60954fbb2"), + GitSource("https://github.com/ornladios/ADIOS2.git", "a19dad6cecb00319825f20fd9f455ebbab903d34"), DirectorySource("bundled"), ]