Hardware Reference
In-Depth Information
applications with a simple I/O programming interface. Using ADIOS takes
away the burden of implementing the I/O strategy at the application level,
and chooses the best-performing I/O strategy depending on the parameters of
an actual run and the target storage system. Each process in an application
needs only to declare what data should be moved and when, but the \how,"
i.e., the I/O strategy (e.g., aggregation and output file organization), is not
implemented at this level. ADIOS takes care of the data movement using an
I/O strategy chosen separately.
17.2 Design and Architecture
ADIOS [9] is a user-level I/O library located on top of the I/O stack.
ADIOS's write API is designed to be as close to the POSIX I/O calls as
possible, but without specifying what happens in the \write" call. Datasets
are \opened" and \closed" and variables are \written" to them. In general,
write calls only buffer the data content, and in the close call, ADIOS performs
burst writes to the file system. However, the actual I/O method used in a run
determines how the data is processed and transferred to the target, and if the
target is a file system or something else.
The API lets the scientist express I/O in terms of variables in the code
as with HDF5 or netCDF. An ADIOS dataset consists of typed, multi-
dimensional arrays or simple scalars, with global dimensions defined by scalar
variables (similar to netCDF dimensions) or simply by integer values. A writ-
ing process also has to declare where its array its in a global array using
offsets and local dimensions.
ADIOS methods implement different I/O strategies, like writing one-file-
per-process, or a single-shared-file, or aggregating data into a certain number
of files; to push data into the memory of another application using memory-to-
memory transfers, or pull data from another application, and so on. The actual
method for performing I/O can be selected at runtime in the application.
The ADIOS-BP file format, which is used by most file-based I/O meth-
ods, provides a self-describing data format, a log-based data organization, and
redundant metadata for resiliency and performance. The log-based data orga-
nization allows for writing each process's output data into a separate chunk of
the file concurrently. ADIOS contrasts logically contiguous file formats where
the data in the (distributed) memory of the processes has to be reorganized to
be stored on disk according to the global logical organization. ADIOS-BP how-
ever, eliminates (i) communication among processes when writing to reorder
data and (ii) seeking to multiply offsets in the file by a process to write data
interleaved with what is written by other processes. While local buffering by
the processes exploits the best available I/O bandwidth by streaming large,
contiguous chunks of data to disk, the destination format itself avoids the
 
Search WWH ::




Custom Search