Interprocedural compiler Analysis for
Overlapping Large I/O Operations with Computation

Under Construction

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.


An 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.


Gagan Agrawal

Anurag Acharya

Last Updated:  03/01/99