File: null.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 (44 lines) | stat: -rw-r--r-- 1,547 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
****
Null 
****

The ``Null`` Engine performs no internal work and no I/O. It was created for testing applications that have ADIOS2 output in it by turning off the I/O easily. The runtime difference between a run with the Null engine and another engine tells us the IO overhead of that particular output with that particular engine.  

.. code-block:: c++

    adios2::IO io = adios.DeclareIO("Output");
    io.SetEngine("Null");

or using the XML config file:

.. code-block:: xml

    <adios-config>
        <io name="Output">
            <engine type="Null">
            </engine>
        </io>
    </adios-config>

Although there is a reading engine as well, which will not fail, any variable/attribute inquiry returns `nullptr` and any subsequent Get() calls will throw an exception in C++/Python or return an error in C/Fortran. 

Note that there is also a `Null transport` that can be used by a BP engine instead of the default `File transport`. In that case, the BP engine will perform all internal work including buffering and aggregation but no data will be output at all. A run like this can be used to assess the overhead of the internal work of the BP engine. 

.. code-block:: c++

    adios2::IO io = adios.DeclareIO("Output");
    io.SetEngine("BP5");
    io.AddTransport("Null", {});

or using the XML config file

.. code-block:: xml

    <adios-config>
        <io name="Output">
            <engine type="BP5">
            </engine>
            <transport type="Null">
            </transport>
        </io>
    </adios-config>