A performance analysis of the Berkeley UPC compiler

Parry Husbands, Costin Iancu, Katherine Yelick
2003 Proceedings of the 17th annual international conference on Supercomputing - ICS '03  
Unified Parallel C (UPC) is a parallel language that uses a Single Program Multiple Data (SPMD) model of parallelism within a global address space. The global address space is used to simplify programming, especially on applications with irregular data structures that lead to fine-grained sharing between threads. Recent results have shown that the performance of UPC using a commercial compiler is comparable to that of MPI [7] . In this paper we describe a portable open source compiler for UPC.
more » ... ur goal is to achieve a similar performance while enabling easy porting of the compiler and runtime, and also provide a framework that allows for extensive optimizations. We identify some of the challenges in compiling UPC and use a combination of microbenchmarks and application kernels to show that our compiler has low overhead for basic operations on shared data and is competitive, and sometimes faster than, the commercial HP compiler. We also investigate several communication optimizations, and show significant benefits by hand-optimizing the generated code.
doi:10.1145/782821.782825 fatcat:3fevjrdjwrdfzpu4yq2cccwipy