TY - GEN
T1 - Efficient update of ghost regions using active messages
AU - Milthorpe, Josh
AU - Rendell, Alistair P.
PY - 2012
Y1 - 2012
N2 - The use of ghost regions is a common feature of many distributed grid applications. A ghost region holds local read-only copies of remotely-held boundary data which are exchanged and cached many times over the course of a computation. X10 is a modern parallel programming language intended to support productive development of distributed applications. X10 supports the 'active message' paradigm, which combines data transfer and computation in one-sided communications. A central feature of X10 is the distributed array, which distributes array data across multiple places, providing standard read and write operations as well as powerful high-level operations. We used active messages to implement ghost region updates for X10 distributed arrays using two different update algorithms. Our implementation exploits multiple levels of parallelism and avoids global synchronization; it also supports split-phase ghost updates, which allows for overlapping computation and communication. We compare the performance of these algorithms on two platforms: an Intel x86-64 cluster over QDR InfiniBand, and a Blue Gene/P system, using both stand-alone benchmarks and an example computational chemistry application code. Our results suggest that on a dynamically threaded architecture, a ghost region update using only pairwise synchronization exhibits superior scaling to an update that uses global collective synchronization.
AB - The use of ghost regions is a common feature of many distributed grid applications. A ghost region holds local read-only copies of remotely-held boundary data which are exchanged and cached many times over the course of a computation. X10 is a modern parallel programming language intended to support productive development of distributed applications. X10 supports the 'active message' paradigm, which combines data transfer and computation in one-sided communications. A central feature of X10 is the distributed array, which distributes array data across multiple places, providing standard read and write operations as well as powerful high-level operations. We used active messages to implement ghost region updates for X10 distributed arrays using two different update algorithms. Our implementation exploits multiple levels of parallelism and avoids global synchronization; it also supports split-phase ghost updates, which allows for overlapping computation and communication. We compare the performance of these algorithms on two platforms: an Intel x86-64 cluster over QDR InfiniBand, and a Blue Gene/P system, using both stand-alone benchmarks and an example computational chemistry application code. Our results suggest that on a dynamically threaded architecture, a ghost region update using only pairwise synchronization exhibits superior scaling to an update that uses global collective synchronization.
KW - Partitioned Global Address Space (PGAS)
KW - Smooth Particle Mesh Ewald method
KW - X10 language
KW - active messages
KW - distributed arrays
KW - ghost regions
KW - lattice Boltz-mann method
KW - parallel programming models
KW - structured grids
UR - http://www.scopus.com/inward/record.url?scp=84880314684&partnerID=8YFLogxK
U2 - 10.1109/HiPC.2012.6507484
DO - 10.1109/HiPC.2012.6507484
M3 - Conference contribution
SN - 9781467323703
T3 - 2012 19th International Conference on High Performance Computing, HiPC 2012
BT - 2012 19th International Conference on High Performance Computing, HiPC 2012
T2 - 2012 19th International Conference on High Performance Computing, HiPC 2012
Y2 - 18 December 2012 through 21 December 2012
ER -