A number of applications on parallel computers deal with very large data sets that cannot t in main memory. In such applications, data must be stored in les on disks and fetched into memory during program execution. Parallel programs with large out-of-core arrays stored in les must read/write smaller sections of the arrays from/to les. In this paper, we describe a method for accessing sections of out-of-core arrays e ciently. Our method, the extended two-phase method, uses collective I/O: Processors cooperate to combine several I/O requests into fewer larger granularity requests, reorder requests so that the le is accessed in proper sequence, and eliminate simultaneous I/O requests for the same data. In addition, the I/O workload is divided among processors dynamically, depending on the access requests. We present performance results obtained from two real out-of-core parallel applications|matrix multiplication and a Laplace's equation solver|and several synthetic access patterns, all on the Intel Touchstone Delta. These results indicate that the extended two-phase method signi cantly outperformed a direct (non-collective) method for accessing out-of-core array sections.
Thakur and Choudhary REF extended the basic twophase algorithm for accessing sections of out-of-core arrays.
An Extended Two-Phase Method for Accessing Sections of Out-of-Core Arrays
Scientific Programming, 5(4):301–317, Winter
Computer Science