Communication Optimizations for Distributed-Memory X10 Programs

dc.contributor.authorBarik, Rajkishoreen_US
dc.contributor.authorBudimlić, Zoranen_US
dc.contributor.authorGrove, Daviden_US
dc.contributor.authorPeshansky, Igoren_US
dc.contributor.authorSarkar, Viveken_US
dc.contributor.authorZhao, Jishengen_US
dc.date.accessioned2017-08-02T22:03:08Zen_US
dc.date.available2017-08-02T22:03:08Zen_US
dc.date.issued2010-04-10en_US
dc.date.noteApril 10, 2010en_US
dc.description.abstractX10 is a new object-oriented PGAS (Partitioned Global Address Space) programming language with support for distributed asynchronous dynamic parallelism that goes beyond past SPMD message-passing models such as MPI and SPMD PGAS models such as UPC and Co-Array Fortran. The concurrency constructs in X10 make it possible to express complex computation and communication structures with higher productivity than other distributed-memory programming models. However, this productivity often comes at the cost of high performance overhead when the language is used in its full generality. This paper introduces high-level compiler optimizations and transformations to reduce communication and synchronization overheads in distributed-memory implementations of X10 programs. Specifically, we focus on locality optimizations such as scalar replacement and task localization, combined with supporting transformations such as loop distribution, scalar expansion, loop tiling, and loop splitting. We have completed a prototype implementation of these high-level optimizations, and performed a performance evaluation that shows significant improvements in performance, scalability, communication volume and number of tasks. We evaluated the communication optimizations on three platforms: a 128-node BlueGene/P cluster, a 32-node Nehalem cluster, and a 16-node Power7 cluster. On the BlueGene/P cluster, we observed a maximum performance improvement of 31.46× relative to the unoptimized case (for the MolDyn benchmark). On the Nehalem cluster, we observed a maximum performance improvement of 3.01× (for the NQueens benchmark) and on the Power7 cluster, we observed a maximum performance improvement of 2.73× (for the MolDyn benchmark). In addition, there was no case in which the optimized code was slower than the unoptimized case. We also believe that the optimizations presented in this paper will be necessary for any high-productivity PGAS language based on modern object-oriented principles, that is designed for execution on future Extreme Scale systems that place a high premium on locality improvement for performance and energy efficiency.en_US
dc.format.extent13 ppen_US
dc.identifier.citationBarik, Rajkishore, Budimli?, Zoran, Grove, David, et al.. "Communication Optimizations for Distributed-Memory X10 Programs." (2010) https://hdl.handle.net/1911/96389.en_US
dc.identifier.digitalTR10-09en_US
dc.identifier.urihttps://hdl.handle.net/1911/96389en_US
dc.language.isoengen_US
dc.rightsYou are granted permission for the noncommercial reproduction, distribution, display, and performance of this technical report in any format, but this permission is only for a period of forty-five (45) days from the most recent time that you verified that this technical report is still available from the Computer Science Department of Rice University under terms that include this permission. All other rights are reserved by the author(s).en_US
dc.titleCommunication Optimizations for Distributed-Memory X10 Programsen_US
dc.typeTechnical reporten_US
dc.type.dcmiTexten_US
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
TR10-09.pdf
Size:
818.5 KB
Format:
Adobe Portable Document Format