The goal of this project is to schedule large I/O operations which are beyond the
capacity of the standard operating system prefetch and write-behind.
We are developing interprocedural techniques which will allow us to automatically
overlap large I/O operations with computation. A wide variety of applications require
large I/O operations including applications which snapshot or checkpoint the progress of
the computation frequently or out-of-core applications in which the main data-structures
do not fit into main memory. For example, write requests that do not fit in the operating
system file cache require the caller to wait till at least a fraction of the data is
written to disk. This can severely impair the performance of the program because of the
relatively low bandwidth available for disk operations.
We have developed an Interprocedural Balanced Code Placement (IBCP) framework
which can be used to replace large latency operations by corresponding split-phase
operations while maintaining safety and correctness. For I/O operations, it can be used to
replace synchronous I/O operations by asynchronous I/O operations combined with a test for
completion. Our scheme uses a concise representation of the complete program called FPR
(for details of FPR see our paper
in PLDI'95) and performs flow-sensitive interprocedural analysis. This scheme uses the
notion of anticipability to place the call initiating the operation as early as possible
and the notion of availability to place the check for the completion of the operation as
late as possible. Along any execution path taken by the program, each occurrence of a
synchronous operation is replaced by exactly one occurrence of start-operation and exactly
one operation of end-operation.
We have implemented a prototype based on this technique using the Fortran~D
compilation system developed at Rice University. We are now in the process of evaluating
the performance benefits for a set of scientific applications.
Interprocedural Framework for Placement of Asynchronous I/O Operations
Gagan Agrawal, Anurag Acharya, and Joel Saltz
Proceedings of the ACM International Conference of Supercomputing,
pages 358-365, Philadelphia, Pennsylvania, May 25-27, 1996
A more detailed version is available as CS-TR-3563.