NPAC Technical Report SCCS-622
Data Access Reorganizations in Compiling Out-of-core Data Parallel Programs on Distributed Memory Machines
Rajesh Bordawekar, Alok Choudhary, Rajeev Thakur
Submitted April 05 1994
Abstract
Large scale scientific applications, such as the Grand Challenge
applications, deal with very large quantities of data. The amount of
main memory in distributed memory machines is usually not large
enough to solve problems of realistic size. This limitation results in the
need for system and application software support to provide efficient
parallel I/O for out-of-core programs. This paper describes techniques
for translating out-of-core programs written in a data parallel
language like HPF to message passing node programs with explicit
parallel I/O. We describe the basic compilation model and various
steps involved in the compilation. The compilation process is
explained with the help of an out-of-core matrix multiplication
program. We first discuss how an out-of-core program can be translated
by extending the method used for translating in-core programs. We
then describe how the compiler can optimize the code by estimating the
I/O costs associated with different array access patterns and
selecting the method with the least I/O cost. This optimization can
reduce the amount of I/O by as much as an order of magnitude.
Performance results on the Intel Touchstone Delta are presented and
analyzed.