@Article{bordawekar:compcomm,
  author = {Rajesh Bordawekar and Alok Choudhary and J. Ramanujam},
  title = {Compilation and Communication Strategies for Out-of-core programs on
  Distributed-Memory Machines},
  journal = {Journal of Parallel and Distributed Computing},
  year = {1996},
  month = {November},
  volume = {38},
  number = {2},
  pages = {277--288},
  publisher = {Academic Press},
  earlier = {bordawekar:compcomm-tr},
  keywords = {compiler, communication, out-of-core, parallel I/O,
  inter-processor communication, pario-bib},
  abstract = {It is widely acknowledged that improving parallel I/O performance
  is critical for widespread adoption of high performance computing. In this
  paper, we show that communication in out-of-core distributed memory problems
  may require both inter-processor communication and file I/O. Thus, in order
  to improve I/O performance, it is necessary to minimize the I/O costs
  associated with a communication step. We present three methods for performing
  communication in out-of-core distributed memory problems. The first method
  called the generalized collective communication method follows a loosely
  synchronous model; computation and communication phases are clearly
  separated, and communication requires permutation of data in files. The
  second method called the receiver-driven in-core communication considers only
  communication required of each in-core data slab individually. The third
  method called the owner-driven in-core communication goes even one step
  further and tries to identify the potential future use of data (by the
  recipients) while it is in the sender's memory. We describe these methods in
  detail and present a simple heuristic to choose a communication method from
  among the three methods. We then provide performance results for two
  out-of-core applications, the two-dimensional FFT code and the
  two-dimensional elliptic Jacobi solver. Finally, we discuss how the
  out-of-core and in-core communication methods can be used in virtual memory
  environments on distributed memory machines.}
}

