Improving communication in PGAS environments: Static and dynamic coalescing in UPC
Document typeConference report
Rights accessRestricted access - publisher's policy
The goal of Partitioned Global Address Space (PGAS) languages is to improve programmer productivity in large scale parallel machines. However, PGAS programs may have many fine-grained shared accesses that lead to performance degradation. Manual code transformations or compiler optimizations are required to improve the performance of programs with fine-grained accesses. The downside of manual code transformations is the increased program complexity that hinders programmer productivity. On the other hand, most compiler optimizations of fine-grain accesses require knowledge of physical data mapping and the use of parallel loop constructs. This paper presents an optimization for the Unified Parallel C language that combines compile time (static) and runtime (dynamic) coalescing of shared data, without the knowledge of physical data mapping. Larger messages increase the network efficiency and static coalescing decreases the overhead of library calls. The performance evaluation uses two microbenchmarks and three benchmarks to obtain scaling and absolute performance numbers on up to 32768 cores of a Power 775 machine. Our results show that the compiler transformation results in speedups from 1.15X up to 21X compared with the baseline versions and that they achieve up to 63% the performance of the MPI versions.
CitationAlvanos, M. [et al.]. Improving communication in PGAS environments: Static and dynamic coalescing in UPC. A: International Conference on Supercomputing. "ICS'13: proceedings of the 2013 ACM International Conference on Supercomputing: June 10-14, 2013: Eugene, Oregon, USA". Eugene, Oregon: ACM, 2013, p. 129-138.
|Improving commu ... amic coalescing in UPC.pdf||Improving communication in PGAS environments static and dynamic coalescing in UPC||778.3Kb||Restricted access|