commit: 8b0667d8fb06d04a8cd87283d7cc2793a9e28fb6
Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Mon Jun 6 01:32:03 2022 +0000
Commit: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
CommitDate: Tue Jun 7 12:01:45 2022 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=8b0667d8
sys-cluster/adios2: new package, add 2.8.1
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
sys-cluster/adios2/Manifest | 1 +
sys-cluster/adios2/adios2-2.8.1.ebuild | 131 +++++++++
.../adios2/files/adios2-2.8.1-sandbox.patch | 12 +
.../adios2/files/adios2-2.8.1-system-libs.patch | 307 +++++++++++++++++++++
sys-cluster/adios2/metadata.xml | 46 +++
5 files changed, 497 insertions(+)
diff --git a/sys-cluster/adios2/Manifest b/sys-cluster/adios2/Manifest
new file mode 100644
index 000000000..4dc9a3d55
--- /dev/null
+++ b/sys-cluster/adios2/Manifest
@@ -0,0 +1 @@
+DIST adios2-2.8.1.gh.tar.gz 5747375 BLAKE2B
1c2b2845db90be83fc911f53724ab8a72aca93562720a03c05084f61611e3247525160a00810c9f492cd9743e70ac7ad3db601771905a4ab53d089b943971416
SHA512
50001f73318a4deb63a487a817f0b151904f39bd3d9d3d0a04fe77e4323f639b625472fb82b32702fdfc990bf765aff65793ca6817f2798a5cf4b6c72f9a38d7
diff --git a/sys-cluster/adios2/adios2-2.8.1.ebuild
b/sys-cluster/adios2/adios2-2.8.1.ebuild
new file mode 100644
index 000000000..5901f6ca0
--- /dev/null
+++ b/sys-cluster/adios2/adios2-2.8.1.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FORTRAN_NEEDED="fortran"
+MYPN="${PN^^}"
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit cmake python-single-r1 fortran-2
+
+DESCRIPTION="Next generation of ADIOS developed in the Exascale Computing
Program"
+HOMEPAGE="
+ https://csmd.ornl.gov/software/adios2
+ https://github.com/ornladios/adios2
+"
+SRC_URI="https://github.com/ornladios/${MYPN}/archive/refs/tags/v${PV}.tar.gz
-> ${P}.gh.tar.gz"
+S="${WORKDIR}/${MYPN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="blosc bzip2 endian-reverse examples fortran hdf5 mpi png profile python
sodium sst szip test zeromq zfp"
+
+RDEPEND="
+ dev-cpp/nlohmann_json
+ dev-cpp/yaml-cpp:=
+ dev-libs/atl
+ dev-libs/dill
+ >dev-libs/ffs-1.6.0
+ dev-libs/kwsys:=
+ dev-libs/perfstubs:=[timers]
+ dev-libs/pugixml
+ net-libs/enet
+ >sys-cluster/evpath-4.5.0
+
+ blosc? ( dev-libs/c-blosc:= )
+ bzip2? ( app-arch/bzip2 )
+ hdf5? ( sci-libs/hdf5:=[mpi=] )
+ mpi? ( virtual/mpi[cxx] )
+ png? ( media-libs/libpng:= )
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pybind11[${PYTHON_USEDEP}]
+ ')
+ mpi? ( $(python_gen_cond_dep
'dev-python/mpi4py[${PYTHON_USEDEP}]') )
+ )
+ sodium? ( dev-libs/libsodium:= )
+ sst? ( sys-block/libfabric:= )
+ szip? ( virtual/szip )
+ zeromq? ( net-libs/zeromq:= )
+ zfp? ( dev-libs/zfp )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-cpp/gtest )
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}/${P}-system-libs.patch"
+ "${FILESDIR}/${P}-sandbox.patch"
+)
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+RESTRICT="!test? ( test )"
+
+pkg_setup() {
+ use fortran && fortran-2_pkg_setup
+ use python && python-single-r1_pkg_setup
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=ON
+ -DADIOS2_USE_BP5=OFF
+ -DADIOS2_USE_CUDA=OFF
+ -DADIOS2_USE_DataMan=OFF
+ -DADIOS2_USE_DataSpaces=OFF
+ -DADIOS2_USE_EXTERNAL_ATL=ON
+ -DADIOS2_USE_EXTERNAL_DEPENDENCIES=ON
+ -DADIOS2_USE_EXTERNAL_DILL=ON
+ -DADIOS2_USE_EXTERNAL_ENET=ON
+ -DADIOS2_USE_EXTERNAL_FFS=ON
+ -DADIOS2_USE_EXTERNAL_EVPATH=ON
+ -DADIOS2_USE_EXTERNAL_GTEST=ON
+ -DADIOS2_USE_EXTERNAL_NLOHMANN_JSON=ON
+ -DADIOS2_USE_EXTERNAL_PUGIXML=ON
+ -DADIOS2_USE_EXTERNAL_PYBIND11=ON
+ -DADIOS2_USE_EXTERNAL_YAMLCPP=ON
+ -DADIOS2_USE_IME=OFF
+ -DADIOS2_USE_LIBPRESSIO=OFF
+ -DADIOS2_USE_MGARD=OFF
+
+ -DADIOS2_BUILD_EXAMPLES="$(usex examples)"
+ -DADIOS2_BUILD_EXAMPLES_EXPERIMENTAL="$(usex examples)"
+ -DADIOS2_USE_Blosc="$(usex blosc)"
+ -DADIOS2_USE_BZip2="$(usex bzip2)"
+ -DADIOS2_USE_Endian_Reverse="$(usex endian-reverse)"
+ -DADIOS2_USE_Fortran="$(usex fortran)"
+ -DADIOS2_USE_HDF5="$(usex hdf5)"
+ -DADIOS2_USE_MPI="$(usex mpi)"
+ -DADIOS2_USE_PNG="$(usex png)"
+ -DADIOS2_USE_Profiling="$(usex profile)"
+ -DADIOS2_USE_Python="$(usex python)"
+ -DADIOS2_USE_Sodium="$(usex sodium)"
+ -DADIOS2_USE_SST="$(usex sst)"
+ -DADIOS2_USE_SZ="$(usex szip)"
+ -DADIOS2_USE_ZeroMQ="$(usex zeromq)"
+ -DADIOS2_USE_ZFP="$(usex zfp)"
+ -DBUILD_TESTING=$(usex test)
+ )
+ cmake_src_configure
+}
+
+src_prepare() {
+ rm -r
thirdparty/{atl,dill,enet,EVPath,ffs,GTest,KWSys,mingw-w64,pugixml,pybind11,yaml-cpp}
|| die
+ rm -r thirdparty/nlohmann_json/nlohmann_json_wrapper/single_include ||
die
+ rm -r thirdparty/perfstubs/perfstubs || die
+ cmake_src_prepare
+}
+
+src_compile() {
+ cmake_src_compile
+}
+
+src_install() {
+ cmake_src_install
+ dodoc ReadMe.md
+}
diff --git a/sys-cluster/adios2/files/adios2-2.8.1-sandbox.patch
b/sys-cluster/adios2/files/adios2-2.8.1-sandbox.patch
new file mode 100644
index 000000000..d1d3db92a
--- /dev/null
+++ b/sys-cluster/adios2/files/adios2-2.8.1-sandbox.patch
@@ -0,0 +1,12 @@
+--- a/cmake/install/pre/CMakeLists.txt
++++ b/cmake/install/pre/CMakeLists.txt
+@@ -1,9 +1,3 @@
+-install(CODE "
+- message(\"Pre-installation cleanup of CMake files\")
+- file(REMOVE_RECURSE \"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_CMAKEDIR}\")
+-"
+- COMPONENT adios2_core-development
+-)
+ file(GLOB ADIOS2_MODULE_FILES
+ "${ADIOS2_SOURCE_DIR}/cmake/Find*.cmake"
+ "${ADIOS2_SOURCE_DIR}/cmake/CMake*.cmake"
diff --git a/sys-cluster/adios2/files/adios2-2.8.1-system-libs.patch
b/sys-cluster/adios2/files/adios2-2.8.1-system-libs.patch
new file mode 100644
index 000000000..86f2c8958
--- /dev/null
+++ b/sys-cluster/adios2/files/adios2-2.8.1-system-libs.patch
@@ -0,0 +1,307 @@
+--- a/source/adios2/CMakeLists.txt
++++ b/source/adios2/CMakeLists.txt
+@@ -127,7 +127,7 @@
+ $<BUILD_INTERFACE:${ADIOS2_SOURCE_DIR}/source>
+ $<BUILD_INTERFACE:${ADIOS2_BINARY_DIR}/source>
+ )
+-target_link_libraries(adios2_core PRIVATE adios2sys_interface
adios2::thirdparty::pugixml
++target_link_libraries(adios2_core PRIVATE -lkwsys adios2::thirdparty::pugixml
+ adios2::thirdparty::yaml-cpp adios2::thirdparty::nlohmann_json
adios2::thirdparty::perfstubs-interface)
+ target_link_libraries(adios2_core PUBLIC ${CMAKE_THREAD_LIBS_INIT})
+ target_compile_features(adios2_core PUBLIC
"$<BUILD_INTERFACE:${ADIOS2_CXX11_FEATURES}>")
+@@ -151,7 +151,7 @@
+ toolkit/format/bp5/BP5Serializer.cpp
+ toolkit/format/bp5/BP5Deserializer.cpp
toolkit/format/bp5/BP5Deserializer.tcc
+ )
+- target_link_libraries(adios2_core PRIVATE ffs::ffs)
++ target_link_libraries(adios2_core PRIVATE ffs)
+ endif()
+
+ if(ADIOS2_HAVE_DAOS)
+--- a/source/adios2/core/ADIOS.cpp
++++ b/source/adios2/core/ADIOS.cpp
+@@ -19,7 +19,7 @@
+ #include "adios2/helper/adiosCommDummy.h"
+ #include "adios2/helper/adiosFunctions.h" //InquireKey, BroadcastFile
+ #include "adios2/operator/OperatorFactory.h"
+-#include <adios2sys/SystemTools.hxx>
++#include <kwsys/SystemTools.hxx>
+
+ #include <adios2-perfstubs-interface.h>
+
+@@ -53,7 +53,7 @@
+ #endif
+ if (!configFile.empty())
+ {
+- if (!adios2sys::SystemTools::FileExists(configFile))
++ if (!kwsys::SystemTools::FileExists(configFile))
+ {
+ helper::Throw<std::logic_error>("Core", "ADIOS", "ADIOS",
+ "config file " + configFile +
+--- a/source/adios2/core/IO.cpp
++++ b/source/adios2/core/IO.cpp
+@@ -39,7 +39,7 @@
+ #include "adios2/helper/adiosComm.h"
+ #include "adios2/helper/adiosFunctions.h" //BuildParametersMap
+ #include "adios2/helper/adiosString.h"
+-#include <adios2sys/SystemTools.hxx> // FileIsDirectory()
++#include <kwsys/SystemTools.hxx> // FileIsDirectory()
+
+ #ifdef ADIOS2_HAVE_DATAMAN // external dependencies
+ #include "adios2/engine/dataman/DataManReader.h"
+@@ -559,13 +559,13 @@
+ else if ((mode_to_use == Mode::Read) ||
+ (mode_to_use == Mode::ReadRandomAccess))
+ {
+- if (adios2sys::SystemTools::FileIsDirectory(name))
++ if (kwsys::SystemTools::FileIsDirectory(name))
+ {
+ char v = helper::BPVersion(name, comm,
m_TransportsParameters);
+ engineTypeLC = "bp";
+ engineTypeLC.push_back(v);
+ }
+- else if (adios2sys::SystemTools::FileIsDirectory(name + ".tier0"))
++ else if (kwsys::SystemTools::FileIsDirectory(name + ".tier0"))
+ {
+ engineTypeLC = "mhs";
+ }
+--- a/source/adios2/helper/adiosDynamicBinder.cpp
++++ b/source/adios2/helper/adiosDynamicBinder.cpp
+@@ -18,8 +18,8 @@
+ #include <stdexcept> // for runtime_error
+ #include <vector> // for vector
+
+-#include <adios2sys/DynamicLoader.hxx>
+-#include <adios2sys/SystemTools.hxx>
++#include <kwsys/DynamicLoader.hxx>
++#include <kwsys/SystemTools.hxx>
+
+ namespace adios2
+ {
+@@ -28,7 +28,7 @@
+
+ struct DynamicBinder::Impl
+ {
+- adios2sys::DynamicLoader::LibraryHandle m_LibraryHandle;
++ kwsys::DynamicLoader::LibraryHandle m_LibraryHandle;
+ };
+
+ DynamicBinder::DynamicBinder(std::string libName) : DynamicBinder(libName, "")
+@@ -76,14 +76,14 @@
+ // ConvertToOutputPath() will change slashes if we're running
on
+ // a Windows system
+ fileName =
+- adios2sys::SystemTools::ConvertToOutputPath(fileName);
++ kwsys::SystemTools::ConvertToOutputPath(fileName);
+ }
+ else
+ {
+ fileName = prefix + libName + suffix;
+ }
+ m_Impl->m_LibraryHandle =
+- adios2sys::DynamicLoader::OpenLibrary(fileName);
++ kwsys::DynamicLoader::OpenLibrary(fileName);
+ searchedLibs.push_back(fileName);
+ if (m_Impl->m_LibraryHandle)
+ {
+@@ -110,13 +110,13 @@
+
+ DynamicBinder::~DynamicBinder()
+ {
+- adios2sys::DynamicLoader::CloseLibrary(m_Impl->m_LibraryHandle);
++ kwsys::DynamicLoader::CloseLibrary(m_Impl->m_LibraryHandle);
+ }
+
+ DynamicBinder::VoidSymbolPointer
+ DynamicBinder::GetSymbol(std::string symbolName)
+ {
+- return adios2sys::DynamicLoader::GetSymbolAddress(m_Impl->m_LibraryHandle,
++ return kwsys::DynamicLoader::GetSymbolAddress(m_Impl->m_LibraryHandle,
+ symbolName);
+ }
+
+--- a/source/adios2/helper/adiosPluginManager.cpp
++++ b/source/adios2/helper/adiosPluginManager.cpp
+@@ -17,7 +17,7 @@
+ #include "adios2/helper/adiosLog.h"
+ #include "adios2/helper/adiosString.h"
+
+-#include <adios2sys/SystemTools.hxx>
++#include <kwsys/SystemTools.hxx>
+
+ #include <memory>
+ #include <stdexcept>
+@@ -110,13 +110,13 @@
+ }
+
+ std::string allPluginPaths;
+- adios2sys::SystemTools::GetEnv(pluginEnvVarName, allPluginPaths);
++ kwsys::SystemTools::GetEnv(pluginEnvVarName, allPluginPaths);
+ if (allPluginPaths.empty())
+ {
+ return OpenPlugin(pluginName, pluginLibrary, "");
+ }
+ auto pathsSplit =
+- adios2sys::SystemTools::SplitString(allPluginPaths, ':', false);
++ kwsys::SystemTools::SplitString(allPluginPaths, ':', false);
+
+ bool loaded = false;
+ auto pathIt = pathsSplit.begin();
+--- a/source/adios2/helper/adiosSystem.cpp
++++ b/source/adios2/helper/adiosSystem.cpp
+@@ -13,7 +13,7 @@
+ #include <stdexcept> // std::runtime_error, std::exception
+ #include <system_error>
+
+-#include <adios2sys/SystemTools.hxx>
++#include <kwsys/SystemTools.hxx>
+
+ #include "adios2/common/ADIOSTypes.h"
+ #include "adios2/helper/adiosComm.h"
+@@ -37,7 +37,7 @@
+
+ bool CreateDirectory(const std::string &fullPath) noexcept
+ {
+- return static_cast<bool>(adios2sys::SystemTools::MakeDirectory(fullPath));
++ return static_cast<bool>(kwsys::SystemTools::MakeDirectory(fullPath));
+ }
+
+ bool IsLittleEndian() noexcept
+@@ -168,7 +168,7 @@
+ if (!comm.Rank())
+ {
+ std::string mmdFileName = name + PathSeparator + "mmd.0";
+- if (adios2sys::SystemTools::PathExists(mmdFileName))
++ if (kwsys::SystemTools::PathExists(mmdFileName))
+ {
+ version = '5';
+ }
+--- a/source/adios2/operator/plugin/PluginOperator.cpp
++++ b/source/adios2/operator/plugin/PluginOperator.cpp
+@@ -21,7 +21,7 @@
+ #include "adios2/helper/adiosPluginManager.h"
+ #include "adios2/helper/adiosString.h"
+
+-#include <adios2sys/SystemTools.hxx>
++#include <kwsys/SystemTools.hxx>
+
+ namespace adios2
+ {
+--- a/source/utils/bpls/bpls.cpp
++++ b/source/utils/bpls/bpls.cpp
+@@ -57,8 +57,8 @@
+
+ #include "adios2/helper/adiosString.h" // EndsWith
+ #include "adios2/helper/adiosSystem.h" //isHDF5File
+-#include <adios2sys/CommandLineArguments.hxx>
+-#include <adios2sys/SystemTools.hxx>
++#include <kwsys/CommandLineArguments.hxx>
++#include <kwsys/SystemTools.hxx>
+ #include <pugixml.hpp>
+
+ namespace adios2
+@@ -202,8 +202,8 @@
+ bool option_help_was_called = false;
+ int optioncb_help(const char *argument, const char *value, void *call_data)
+ {
+- // adios2sys::CommandLineArguments *arg =
+- // static_cast<adios2sys::CommandLineArguments *>(call_data);
++ // kwsys::CommandLineArguments *arg =
++ // static_cast<kwsys::CommandLineArguments *>(call_data);
+ // printf("%s\n", arg->GetHelp());
+ display_help();
+ option_help_was_called = true;
+@@ -431,7 +431,7 @@
+
+ void introspect_file(const char *filename) noexcept
+ {
+- if (adios2sys::SystemTools::FileIsDirectory(filename))
++ if (kwsys::SystemTools::FileIsDirectory(filename))
+ {
+ if (!introspectAsBPDir(filename))
+ {
+@@ -460,7 +460,7 @@
+ }
+ }
+
+-int process_unused_args(adios2sys::CommandLineArguments &arg)
++int process_unused_args(kwsys::CommandLineArguments &arg)
+ {
+ int nuargs;
+ char **uargs;
+@@ -541,9 +541,9 @@
+
+ init_globals();
+
+- adios2sys::CommandLineArguments arg;
++ kwsys::CommandLineArguments arg;
+ arg.Initialize(argc, argv);
+- typedef adios2sys::CommandLineArguments argT;
++ typedef kwsys::CommandLineArguments argT;
+ arg.StoreUnusedArguments(true);
+ arg.AddCallback("-v", argT::NO_ARGUMENT, optioncb_verbose, nullptr, "");
+ arg.AddCallback("--verbose", argT::NO_ARGUMENT, optioncb_verbose, nullptr,
+@@ -1521,7 +1521,7 @@
+ if (verbose > 1)
+ printf("\nADIOS Open: read header info from %s\n", path);
+
+- if (!adios2sys::SystemTools::FileExists(path))
++ if (!kwsys::SystemTools::FileExists(path))
+ {
+ fprintf(stderr, "\nError: input path %s does not exist\n", path);
+ return 4;
+--- a/source/utils/CMakeLists.txt
++++ b/source/utils/CMakeLists.txt
+@@ -11,7 +11,7 @@
+
+ # BPLS
+ add_executable(bpls ./bpls/bpls.cpp)
+-target_link_libraries(bpls adios2_core adios2sys adios2::thirdparty::pugixml)
++target_link_libraries(bpls adios2_core -lkwsys adios2::thirdparty::pugixml)
+ target_include_directories(bpls PRIVATE ${PROJECT_BINARY_DIR})
+ set_property(TARGET bpls PROPERTY OUTPUT_NAME bpls${ADIOS2_EXECUTABLE_SUFFIX})
+ install(TARGETS bpls EXPORT adios2
+@@ -30,7 +30,7 @@
+
+ # BPSPLIT
+ #add_executable(bpsplit ./bpsplit/bpsplit.cpp)
+-#target_link_libraries(bpsplit adios2::cxx11 adios2sys_interface
adios2::thirdparty::pugixml)
++#target_link_libraries(bpsplit adios2::cxx11 -lkwsys
adios2::thirdparty::pugixml)
+ #install(TARGETS bpsplit EXPORT adios2
+ # RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ #)
+--- a/thirdparty/CMakeLists.txt
++++ b/thirdparty/CMakeLists.txt
+@@ -33,8 +33,6 @@
+ option(ADIOS2_USE_EXTERNAL_YAMLCPP
+ "Use an externally supplied yaml-cpp library"
"${ADIOS2_USE_EXTERNAL_DEPENDENCIES}")
+
+-add_subdirectory(KWSys)
+-
+ add_subdirectory(perfstubs)
+ adios2_add_thirdparty_target(perfstubs-interface perfstubs-interface)
+
+--- a/thirdparty/perfstubs/CMakeLists.txt
++++ b/thirdparty/perfstubs/CMakeLists.txt
+@@ -1,12 +1,3 @@
+-message_start_thirdparty()
+-
+-if (NOT WIN32 AND BUILD_SHARED_LIBS AND ADIOS2_HAVE_Profiling)
+- set(PERFSTUBS_USE_TIMERS ON CACHE INTERNAL "")
+- add_subdirectory(perfstubs)
+-else()
+- set(PERFSTUBS_USE_TIMERS OFF CACHE INTERNAL "")
+-endif()
+-
+ add_library(perfstubs-interface INTERFACE)
+
+ configure_file(
+@@ -19,7 +10,6 @@
+ )
+
+ if (PERFSTUBS_USE_TIMERS)
++ find_package(perfstubs REQUIRED)
+ target_link_libraries(perfstubs-interface INTERFACE perfstubs)
+ endif()
+-
+-message_end_thirdparty()
diff --git a/sys-cluster/adios2/metadata.xml b/sys-cluster/adios2/metadata.xml
new file mode 100644
index 000000000..f3fe0dc45
--- /dev/null
+++ b/sys-cluster/adios2/metadata.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>[email protected]</email>
+ <name>Alessandro Barbieri</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/ornladios/ADIOS2/issues</bugs-to>
+ <remote-id type="github">ornladios/ADIOS2</remote-id>
+ </upstream>
+ <longdescription lang="en">
+This is ADIOS2: The Adaptable Input/Output (I/O) System.
+
+ADIOS2 is developed as part of the United States Department of Energy's
Exascale Computing Project. It is a framework for scientific data I/O to
publish and subscribe to data when and where required.
+
+ADIOS2 transports data as groups of self-describing variables and attributes
across different media types (such as files, wide-area-networks, and remote
direct memory access) using a common application programming interface for all
transport modes. ADIOS2 can be used on supercomputers, cloud systems, and
personal computers.
+
+ADIOS2 focuses on:
+
+ Performance I/O scalability in high performance computing (HPC)
applications.
+ Adaptability unified interfaces to allow for several modes of transport
(files, memory-to-memory)
+ Ease of Use two-level application programming interface (APIs)
+
+ Full APIs for HPC applications: C++11, Fortran 90, C 99, Python 2 and 3
+ Simplified High-Level APIs for data analysis: Python 2 and 3, C++11, Matlab
+
+In addition, ADIOS2 APIs are based on:
+
+ MPI Although ADIOS2 is MPI-based, it can also be used in non-MPI serial
code.
+
+ Data Groups ADIOS2 favors a deferred/prefetch/grouped variables transport
mode by default to maximize data-per-request ratios. Sync mode, one variable at
a time, is treated as the special case.
+
+ Data Steps ADIOS2 follows the actual production/consumption of data using
an I/O “steps” abstraction removing the need to manage extra indexing
information.
+
+ Data Engines ADIOS2 Engine abstraction allows for reusing the APIs for
different transport modes removing the need for drastic code changes.
+ </longdescription>
+ <use>
+ <flag name="blosc">Enable support for Blosc transforms</flag>
+ <flag name="endian-reverse">Enable support for Little/Big Endian
Interoperability</flag>
+ <flag name="sodium">Enable support for Sodium for encryption</flag>
+ <flag name="sst">Enable support for SST</flag>
+ <flag name="zeromq">Enable support for ZeroMQ</flag>
+ <flag name="zfp">Enable support for ZFP transforms</flag>
+ </use>
+</pkgmetadata>