Three approaches to collective I/O are discussed in [Kot94]: traditional caching, two-phase I/O, and disk-directed I/O. Traditional caching does no collective I/O optimizations, since I/O requests are served as they arrive. These three methods were implemented and compared using the STARFISH [Kot96] simulator, which is based on Proteus [BDCW91], a parallel architecture simulation engine.
Panda [SCJ
95] provides a high-level collective
I/O library interface. It implements server-directed I/O,
which is disk-directed I/O at the logical file level,
rather than the physical disk level. This method provides
a high-level of portability by avoiding the difficult details
of utilizing specific attributes for each underlying
filesystem. Unfortunately, it may not produce as much
performance as a true implementation of disk-directed I/O
might. Also, Panda provides its own API to access
its libraries. This may not be desirable since it is
non-standard, which is one of the reasons why something
such as MPI-IO has been proposed.