File: vol.rst

package info (click to toggle)
adios2 2.10.2%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 33,764 kB
  • sloc: cpp: 175,964; ansic: 160,510; f90: 14,630; yacc: 12,668; python: 7,275; perl: 7,126; sh: 2,825; lisp: 1,106; xml: 1,049; makefile: 579; lex: 557
file content (70 lines) | stat: -rw-r--r-- 1,653 bytes parent folder | download | duplicates (2)
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.