@TechReport{thakur:ext2phase2, author = {Rajeev Thakur and Alok Choudhary}, title = {An Extended Two-Phase Method for Accessing Sections of Out-of-Core Arrays}, year = {1995}, month = {June}, number = {CACR-103}, institution = {Scalable I/O Initiative}, address = {Center for Advanced Computing Research, Caltech}, note = {Revised November 1995}, earlier = {thakur:ext2phase}, later = {thakur:jext2phase}, URL = {http://www.mcs.anl.gov/~thakur/papers/cacr-103.ps}, keywords = {parallel I/O, pario-bib}, abstract = {A number of applications on parallel computers deal with very large data sets which cannot fit in main memory. In such cases, data must be stored in files on disks and fetched into main memory during program execution. In programs with large out-of-core arrays stored in files, it is necessary to read/write smaller sections of the arrays from/to files. This paper describes a method, called the {\em extended two-phase method}, for accessing sections of out-of-core arrays in an efficient manner. This method uses collective I/O in which processors cooperate to combine several I/O requests into fewer larger granularity requests, reorder requests so that the file is accessed in proper sequence, and eliminate simultaneous I/O requests for the same data. The I/O workload is divided among processors dynamically, depending on the access requests. We present performance results for two real, out-of-core, parallel applications --- matrix multiplication and a Laplace's equation solver --- and several synthetic access patterns. The results indicate that the extended two-phase method provides a significant performance improvement over a direct method for I/O.}, comment = {Revised version of thakur:ext2phase. The tech report was itself revised in November 1995; the abstract represents that revision.} }