An Evaluation of Global Address Space Languages: Co-Array Fortran and Unified Parallel C
Co-array Fortran (CAF) and Unified Parallel C (UPC) are two emerging languages for single-program, multiple-data global address space programming. These languages boost programmer productivity by providing shared variables for communication instead of message passing. However, the performance of these emerging languages still has room for improvement. In this paper, we study the performance of variants of the NAS MG, CG, SP, and BT benchmarks on several modern cluster architectures to identify challenges that must be met to deliver top performance. We compare CAF and UPC variants of these programs with the original Fortran+MPI code. Today, CAF and UPC programs deliver scalable performance on clusters only when written to use bulk communication. However, our experiments uncovered some significant performance bottlenecks limiting UPC performance on all platforms. We account for the root causes of these performance anomalies and show that they can be remedied with additional compiler improvements, in particular we show that many of these obstacles can be resolved with adequate optimizations by the backend C compilers.
- Research Organization:
- Pacific Northwest National Lab. (PNNL), Richland, WA (United States)
- Sponsoring Organization:
- USDOE
- DOE Contract Number:
- AC05-76RL01830
- OSTI ID:
- 881945
- Report Number(s):
- PNNL-SA-44877; KJ0101030; TRN: US200613%%130
- Resource Relation:
- Conference: Proceedings of the tenth ACM SIGPLAN symposium on principles and practice of parallel programming, PPoPP’05, June 15–17, 2005, Chicago, Illinois, 36-47
- Country of Publication:
- United States
- Language:
- English
Similar Records
Optimizing Bandwidth Limited Problems Using One-SidedCommunication and Overlap
Optimized collectives for PGAS languages with one-sided communication (Poster)