Adios2

Latest version: v2.10.1.100042

Safety actively analyzes 682334 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 5

2.8.2

Summary
This is a patch release to fix a compatibility issue with BP4 and BLOSC compressed data arrays. It is essentially [v2.8.1](https://github.com/ornladios/ADIOS2/releases/tag/v2.8.1) with the addition of PR #3275.

2.8.1

Summary
This is a patch release to address many of the issues identified with the v2.8.0 release after it was published.
For the new BP5 engine the fixes are
- SelectSteps were always showing the first step in the file even if not selected
- AppendAfterStep created a corrupted index file
- bpls did not show the actual values of Global Values and Local Values (shown as 1D arrays)
- bpls was not able to dump data of variables beyond the first step

Changes / Fixes

PR 3237
PR 3236
PR 3234
PR 3228
PR 3227
PR 3221
PR 3213
PR 3211
PR 3207
PR 3206
PR 3186
PR 3176
PR 3162
PR 3161
PR 3156
PR 3155
PR 3145
PR 3153

2.8.0

Summary
This is a major production release with a variety of new features and bug fixes.

Changes to the API
- `adios2::Mode::ReadRandomAccess` mode is introduced for reading files with access to all steps. BeginStep/EndStep calls are NOT allowed. `SetStepSelection()` can be used to access specific steps in the file.
- `adios2::Mode::Read` mode now requires using `BeginStep/EndStep` loop to access steps serially one by one. Variable inquiry fails outside BeginStep/EndStep sections. You need to modify your Open() statement to use the random-access mode if your code is accessing all steps in an existing file. Technically, this is only true for the new BP5 files, you can still read BP3/BP4/HDF5 files with your existing code but keep in mind that your code is not going to work when moving to BP5.
- `adios2::ADIOS::EnterComputationBlock()`, `adios2::ADIOS::ExitComputationBlock()` are hints to ADIOS that a process is in a computing (i.e. non-communicating) phase. BP5 asynchronous I/O operations can schedule writing during such phases to avoid interfering with the application’s own communication.
- GPU-aware I/O supports passing device-memory data pointers to the `Put/Get` functions, and ADIOS2 will automatically download/upload data from/to the device during I/O. Alternatively, an extra member function of the Variable class, `SetMemorySpace(const adios2::MemorySpace mem)` can explicitly tell ADIOS2 whether the pointer points to device memory or host memory.



Notable new features
BP5
BP5 is a new data format and there is a new engine, BP5, that writes and reads in this format. See [https://adios2.readthedocs.io/en/latest/engines/engines.html](https://adios2.readthedocs.io/en/latest/engines/engines.html) for runtime options. There are four main advantages using this over the previous engine BP4.
- **Lower memory** consumption. Deferred Puts use user buffer for I/O wherever possible thus saving on a memory copy. Aggregation uses a fixed-size shared-memory segment on each compute node instead of using MPI to send data from one process to another. Memory consumption can save 50% of extra memory usage compared to BP4 in some cases.
- **Faster metadata** management improves write/read performance where hundreds or more variables are added to the output.
- Improved functionality around **appending many output steps** into the same file. Better performance than writing new files each step. Restart can append to an existing series by truncating unwanted steps. Readers can filter out unwanted steps to only see and process a limited set of steps. Just like as in BP4, existing steps cannot be corrupted by appending new steps. Existing steps can be read by another application while new steps are written and the reader can wait for incoming steps, i.e., in situ processing through files works identically to using staging engines.
- **Asynchronous writing** is an option with BP5, which can further improve performance in applications. This is a simple runtime option to turn it on/off, there is no need to tinker with I/O calls in the source code. This asynchronous I/O implementation _does NOT need_ a multithreaded MPI library.


GPU Support
- IO: ADIOS can now write and read data to and from CUDA device memory by passing a valid device pointer to the appropriate `Put` and `Get` API calls. Current support is limited to CUDA on NVIDIA GPUs but future releases will support both AMD and Intel GPUs.
- Compression: The ZFP floating point compression operator has additional configurations options and now supports compression and decompression operations on NVIDIA GPUs for variable data on either host or device memory.

Further details on GPU-Aware I/O can be found in the [ADIOS user guide](https://adios2.readthedocs.io/en/latest/advanced/gpu_aware.html)

Plugin architecture for Engines and Operators
Engines and Operators can now be developed outside of ADIOS and loaded at runtime. For engine plugins, the engine should inherit from the `PluginEngineInterface` class. The engine library should also contain `EngineCreate()` and `EngineDestroy()` symbols that ADIOS will be able to use to create and destroy your engine. Similarly, Operator plugins should inherit from the `PluginOperatorInterface` class and the library should contain `OperatorCreate()` and `OperatorDestroy()` symbols. To help ADIOS find user plugin libraries, the `ADIOS2_PLUGIN_PATH` environment variable can be set. Further details on writing and using plugins can be found in the [ADIOS user guide](https://adios2.readthedocs.io/en/latest/advanced/plugins.html).

Compression operators backward-compatibility feature
From version 2.8.0 onward Operators manage their own metadata and their future versions will provide information on the (compression) libraries used in older datasets in case they cannot decompress the data with the current compression library it is built with. Users then may be able to rebuild the future ADIOS version with an older, compatible compression library that can read back their data. The downside of the redesign of Operators is that datasets written with lossy compression cannot be read back with ADIOS 2.8.0 and newer versions, so you need to build and use 2.7.1 for that.

**Full Changelog**: https://github.com/ornladios/ADIOS2/compare/v2.7.1...v2.8.0

2.7.1.436

This is an intermediate release for the sole purpose of having a tagged easily reproducible build for the "Interleaving R with Simulations and Visualization for streaming on Large Distributed Systems via the ADIOS2 Data Transport Framework" paper submitted to the Journal of Statistical Software

2.7.1

Summary
This is a minor patch release to address outstanding bugs that arose after the 2.7.0 release was deployed.

Bug fixes
* 2582 Installation of bp2h5 wrappers fails on Windows due to symlinks
* Fixed by 2583
* 2585 Update documentation for using both serial and MPI libraries from a single build.
* 2018 Blosc compression doesn't support variables over 2GiB
* Fixed by 2592
* 2596 Python shouldn't be required if testing and Python bindings are disabled

2.7.0

Summary
This is a major production release with a variety of new features and bug fixes in the areas of staging, HDF5 compatibility, and writer aggregation.

Features
New features
* Hierarchical traversing for reading ADIOS files using the new Group object
* This is an optional, alternative way to go over the variables and attributes in a file/stream in a similar fashion as one traverses HDF5 files.
* Default aggregation mode has changed to 1 sub-file per compute node (from one sub-file per process)
* DataMan engine supports compression (used for wide-area-network data transfers)
* SSC engine supports flexible I/O pattern
* Step selection for reading
* Simplified wrapper `bp2h5` for the `adios2_reorganize` utility for converting ADIOS BP files to HDF5 files.

HDF5 Virtual Object Layer (VOL) Plugin for ADIOS
* Added a VOL plugin to enable ADIOS I/O through the HDF5 API. Basic functionalities are covered.
* Enables existing HDF5 clients to create and access ADIOS files with minimal effort.


API Changes
* Double pointer `Get` API for the Inline engine
* AggregatorRatio option to set number of sub-files as a ratio of number of processes. NumAggregators option is used to set a fixed number of sub-files. See options for https://adios2.readthedocs.io/en/latest/engines/engines.html#bp4

Page 3 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.