Next: PFS-SIM
Up: Parallel I/O Simulator
Previous: Parallel I/O Simulator
PIO-SIM is the layer of the simulator which simulates MPI-IO
calls. In the case of collective I/O operations, the underlying
implementation of the collective I/O algorithm is hidden from
the user.
The basic idea behind collective I/O algorithms is to use
global knowledge about the I/O transfer among the
processes in order to combine
many, small requests into fewer, large requests.
PIO-SIM currently supports the following collective I/O implementations:
- Global Barrier Collective I/O:
Upon making the
collective I/O call, all processes execute a barrier
synchronize at the outset, and then proceed
with the regular, non-collective call. This form of
collective I/O does not optimize the requests; it
only serves as the base implementation that is allowed
by the MPI-IO specification. This is the approach
taken by versions 1.0 through 1.2 of MPI-IO/PIOFS,
the implementation of MPI-IO by IBM for the SP2
.
- Node Grouping: Processes participating
in the collective call are partitioned into groups and the
I/O requests for each group
are implemented in turn. Thus node grouping attempts to
avoid flooding the system with too many simultaneous
requests. Its utility depends on the specific application, and in the best
case, only an 8-times
improvement in performance has been achieved [NF95].
- Two-Phase I/O:
I/O is done in two phases [RBC93].
In the first phase, processes arrange their requests
according to a conforming distribution. This is
a permutation of the data across the processes
so that it coincides as much as possible with the
underlying file layout.
The actual I/O is done in the second phase
to reduce overall disk traffic. The I/O requests
are optimized in two ways: 1) duplicate requests are
eliminated, and 2) numerous small requests which lie
contiguously are combined into one, large request.
Next: PFS-SIM
Up: Parallel I/O Simulator
Previous: Parallel I/O Simulator
Andy Kahn
Tue Jun 24 17:48:10 PDT 1997