1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
**********
Disclaimer
**********
.. note::
The Virtual Object Layer (VOL) is a feature introduced in recent release of HDF5 1.12 (https://hdf5.wiki/index.php/New_Features_in_HDF5_Release_1.12).
So please do make sure your HDF5 version supports the latest VOL.
Once the ADIOS VOL is compiled, There are two ways to apply it:
* externally (through dynamic library, no code change)
* internally (through client code).
********
External
********
- Set the following environment parameters:
.. code-block:: c++
HDF5_VOL_CONNECTOR=ADIOS2_VOL
HDF5_PLUGIN_PATH=/replace/with/your/adios2_vol/lib/path/
Without code change, ADIOS2 VOL will be loaded at runtime by HDF5, to access ADIOS files without changing user code.
********
Internal
********
- include adios header
- call the function to set VOL when H5F is initiated
- call the function to unset VOL when H5F is closed
.. code-block:: c++
// other includes
#include <adios2/h5vol/H5Vol.h> // ADD THIS LINE TO INCLUDE ADIOS VOL
hid_t pid = H5Pcreate(H5P_FILE_ACCESS);
// other declarations
hid_t fid = H5Fopen(filename, mode, pid);
H5VL_ADIOS2_set(pid); // ADD THIS LINE TO USE ADIOS VOL
H5Fclose(fid);
H5VL_ADIOS2_unset(); // ADD THIS LINE TO EXIT ADIOS VOL
.. To choose what ADIOS2 Engine to use, set env variable: ADIOS2_ENGINE (default is BP5)
**Note:** The following features are not supported in this VOL:
* hyperslab support
* HDF5 parameters are not passed down. e.g. compression/decompression
* ADIOS2 parameters is not setup.
* user defined types
* change of variable extent is not supported in ADIOS2.
|