"Fossies" - the Fresh Open Source Software Archive 
Member "scalasca-2.6.1/vendor/otf2/doc/doxygen-user/A2_io.dox" (14 Dec 2022, 5219 Bytes) of package /linux/misc/scalasca-2.6.1.tar.gz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1 /**
2
3 @defgroup io OTF2 I/O recording
4 @{
5
6 @page otf2_known_io_paradigms Known @otf2 I/O paradigms
7 @seclabel{otf2_known_io_paradigms}
8
9 The introduction of I/O recording with OTF2 made it necessary to distinguish
10 different I/O paradigms. Like it is done with the parallel paradigms, like MPI, OpenMP.
11 Though instead of the usual enum used to identify the paradigm, the I/O paradigms
12 are expressed in a dynamic way with the help of a definition record. While this
13 has the advantage that the API does not need to be changed only to add new
14 I/O paradigms, it also lacks confidence in the definition. To overcome this, OTF2
15 textually defines known I/O paradigms and their expected definition.
16
17 <dl>
18
19 <dt>
20 @anchor POSIX
21 <em>"POSIX"</em>
22 </dt>
23 <dd>
24 This is the I/O interface of the @emph{POSIX standard}.
25
26 @par Required properties
27 <dl>
28 <dt>Class</dt><dd>@eref{OTF2_IO_PARADIGM_CLASS_SERIAL}</dd>
29 <dt>Flags</dt><dd>@eref{OTF2_IO_PARADIGM_FLAG_OS}</dd>
30 </dl>
31 </dd>
32
33 <dt>
34 @anchor ISOC
35 <em>"ISOC"</em>
36 </dt>
37 <dd>
38 This is the I/O interface of the @emph{ISO C standard}.
39
40 @par Required properties
41 <dl>
42 <dt>Class</dt><dd>@eref{OTF2_IO_PARADIGM_CLASS_SERIAL}</dd>
43 </dl>
44 </dd>
45
46 <dt>
47 @anchor MPI-IO
48 <em>"MPI-IO"</em>
49 </dt>
50 <dd>
51 This is the I/O interface of the @emph{Message Passing Interface}.
52
53 @par Required properties
54 <dl>
55 <dt>Class</dt><dd>@eref{OTF2_IO_PARADIGM_CLASS_PARALLEL}</dd>
56 <dt>Flags</dt><dd>@eref{OTF2_IO_PARADIGM_FLAG_NONE}</dd>
57 </dl>
58 </dd>
59
60 <dt>
61 @anchor netCDF
62 <em>"netCDF"</em>
63 </dt>
64 <dd>
65 This is the @emph{Network Common Data Form}. The <em>class</em> depends
66 on whether the NetCDF library was built with or without MPI support.
67
68 @par Required properties
69 <dl>
70 <dt>Class</dt><dd>@eref{OTF2_IO_PARADIGM_CLASS_SERIAL} or @eref{OTF2_IO_PARADIGM_CLASS_PARALLEL}</dd>
71 <dt>Flags</dt><dd>@eref{OTF2_IO_PARADIGM_FLAG_NONE}</dd>
72 </dl>
73 </dd>
74
75 <dt>
76 @anchor PnetCDF
77 <em>"PnetCDF"</em>
78 </dt>
79 <dd>
80 This is the @emph{Parallel netCDF}.
81
82 @par Required properties
83 <dl>
84 <dt>Class</dt><dd>@eref{OTF2_IO_PARADIGM_CLASS_PARALLEL}</dd>
85 <dt>Flags</dt><dd>@eref{OTF2_IO_PARADIGM_FLAG_NONE}</dd>
86 </dl>
87 </dd>
88
89 <dt>
90 @anchor HDF5
91 <em>"HDF5"</em>
92 </dt>
93 <dd>
94 This is the I/O interface of @emph{The HDF Group}. The <em>class</em> depends
95 on whether the HDF5 library was built with or without MPI support.
96
97 @par Required properties
98 <dl>
99 <dt>Class</dt><dd>@eref{OTF2_IO_PARADIGM_CLASS_SERIAL} or @eref{OTF2_IO_PARADIGM_CLASS_PARALLEL}</dd>
100 <dt>Flags</dt><dd>@eref{OTF2_IO_PARADIGM_FLAG_NONE}</dd>
101 </dl>
102 </dd>
103
104 <dt>
105 @anchor ADIOS
106 <em>"ADIOS"</em>
107 </dt>
108 <dd>
109 This is the @emph{Adaptable IO System}.
110
111 @par Required properties
112 <dl>
113 <dt>Class</dt><dd>@eref{OTF2_IO_PARADIGM_CLASS_PARALLEL}</dd>
114 <dt>Flags</dt><dd>@eref{OTF2_IO_PARADIGM_FLAG_NONE}</dd>
115 </dl>
116 </dd>
117
118 </dl>
119
120 @page otf2_io_operation_event_order Event order for I/O operation records
121 @seclabel{otf2_io_operation_event_order}
122
123 These diagrams show valid event orders of I/O operations, which also denotes
124 the lifetime of the (@eref{IoHandle}, @p matchingId) tuple.
125
126 If the @eref{OTF2_IO_OPERATION_FLAG_NON_BLOCKING} is not set in the @eref{IoOperationBegin}
127 record, then the event order must follow:
128
129 @dot
130 digraph otf2_io_operation_event_order_blocking {
131 rankdir = LR;
132 bgcolor = "transparent";
133 edge [
134 fontname=FreeSans,
135 splines=curved
136 ];
137 _start [
138 shape=none,
139 label=""
140 ];
141 _end [
142 shape=none,
143 label=""
144 ];
145 node [
146 shape=rect,
147 style=rounded,
148 fontname=FreeSans
149 ];
150
151 IoOperationBegin [
152 href="@ref IoOperationBegin"
153 ];
154 IoOperationComplete [
155 href="@ref IoOperationComplete"
156 ];
157
158 _start -> IoOperationBegin;
159 IoOperationBegin -> IoOperationComplete;
160 IoOperationComplete -> _end;
161 }
162 @enddot
163
164 If the @eref{OTF2_IO_OPERATION_FLAG_NON_BLOCKING} is set in the @eref{IoOperationBegin}
165 record, then the event order must follow:
166
167 @dot
168 digraph otf2_io_operation_event_order_nonblocking {
169 rankdir = LR;
170 bgcolor = "transparent";
171 edge [
172 fontname=FreeSans,
173 splines=curved
174 ];
175 _start [
176 shape=none,
177 label=""
178 ];
179 _end0 [
180 shape=none,
181 label=""
182 ];
183 _end1 [
184 shape=none,
185 label=""
186 ];
187 node [
188 shape=rect,
189 style=rounded,
190 fontname=FreeSans
191 ];
192
193
194 IoOperationBegin [
195 href="@ref IoOperationBegin"
196 ];
197 IoOperationIssued [
198 href="@ref IoOperationIssued"
199 ];
200 IoOperationTest [
201 href="@ref IoOperationTest"
202 ];
203 IoOperationComplete [
204 href="@ref IoOperationComplete"
205 ];
206 IoOperationCancelled [
207 href="@ref IoOperationCancelled"
208 ];
209
210 _start -> IoOperationBegin;
211
212 IoOperationBegin -> IoOperationIssued;
213
214 IoOperationIssued -> IoOperationTest;
215 IoOperationIssued -> IoOperationComplete;
216 IoOperationIssued -> IoOperationCancelled;
217
218 IoOperationTest -> IoOperationTest;
219 IoOperationTest -> IoOperationComplete;
220 IoOperationTest -> IoOperationCancelled;
221
222 IoOperationComplete -> _end0;
223 IoOperationCancelled -> _end1;
224 }
225 @enddot
226
227 @}
228
229 */