This paper describes a tiling technique that can be used by application programmers and optimizing compilers to obtain I/O-efficient versions of regular scientific loop nests. Due to the particular characteristics of I/O operations, straightforward extension of the traditional tiling method to I/O-intensive programs may result in poor I/O performance. Therefore, the technique proposed in this paper customizes iteration space tiling for high I/O performance. The generated code results in huge savings in the number of I/O calls as well as the data volume transferred between the disk subsystem and main memory.
Mahmut T. Kandemir, Alok N. Choudhary, J. Ramanuja