The introduction of I/O recording with OTF2 made it necessary to distinguish different I/O paradigms. Like it is done with the parallel paradigms, like MPI, OpenMP. Though instead of the usual enum used to identify the paradigm, the I/O paradigms are expressed in a dynamic way with the help of a definition record. While this has the advantage that the API does not need to be changed only to add new I/O paradigms, it also lacks confidence in the definition. To overcome this, OTF2 textually defines known I/O paradigms and their expected definition.
- "POSIX"
This is the I/O interface of the POSIX standard.
- Required properties:
- Class
- OTF2_IO_PARADIGM_CLASS_SERIAL
- Flags
- OTF2_IO_PARADIGM_FLAG_OS
- "ISOC"
This is the I/O interface of the ISO C standard.
- Required properties:
- Class
- OTF2_IO_PARADIGM_CLASS_SERIAL
- "MPI-IO"
This is the I/O interface of the Message Passing Interface.
- Required properties:
- Class
- OTF2_IO_PARADIGM_CLASS_PARALLEL
- Flags
- OTF2_IO_PARADIGM_FLAG_NONE
- "netCDF"
This is the Network Common Data Form. The class depends on whether the NetCDF library was built with or without MPI support.
- Required properties:
- Class
- OTF2_IO_PARADIGM_CLASS_SERIAL or OTF2_IO_PARADIGM_CLASS_PARALLEL
- Flags
- OTF2_IO_PARADIGM_FLAG_NONE
- "PnetCDF"
This is the Parallel netCDF.
- Required properties:
- Class
- OTF2_IO_PARADIGM_CLASS_PARALLEL
- Flags
- OTF2_IO_PARADIGM_FLAG_NONE
- "HDF5"
This is the I/O interface of The HDF Group. The class depends on whether the HDF5 library was built with or without MPI support.
- Required properties:
- Class
- OTF2_IO_PARADIGM_CLASS_SERIAL or OTF2_IO_PARADIGM_CLASS_PARALLEL
- Flags
- OTF2_IO_PARADIGM_FLAG_NONE
- "ADIOS"
This is the Adaptable IO System.
- Required properties:
- Class
- OTF2_IO_PARADIGM_CLASS_PARALLEL
- Flags
- OTF2_IO_PARADIGM_FLAG_NONE
These diagrams show valid event orders of I/O operations, which also denotes the lifetime of the (
IoHandle,
matchingId
) tuple.If the
OTF2_IO_OPERATION_FLAG_NON_BLOCKING is not set in the
IoOperationBegin record, then the event order must follow:
If the
OTF2_IO_OPERATION_FLAG_NON_BLOCKING is set in the
IoOperationBegin record, then the event order must follow: