A Newcomer In The PGAS World -- UPC++ vs UPC: A Comparative Study
J\'er\'emie Lagravi\`ere, Johannes Langguth, Martina Prugger, Phuong, H. Ha, Xing Cai

TL;DR
This paper introduces UPC++, a new PGAS language, and compares its performance and programming style to UPC through implementations of scientific kernels on various hardware platforms.
Contribution
It presents the first comparative analysis of UPC++ and UPC, including implementation examples and performance benchmarks on diverse hardware.
Findings
UPC++ offers modern C++-like abstractions for PGAS programming.
Performance benchmarks show differences between UPC and UPC++ on multi-core hardware.
Code examples illustrate programming style variations between the two languages.
Abstract
A newcomer in the Partitioned Global Address Space (PGAS) 'world' has arrived in its version 1.0: Unified Parallel C++ (UPC++). UPC++ targets distributed data structures where communication is irregular or fine-grained. The key abstractions are global pointers, asynchronous programming via RPC, futures and promises. UPC++ API for moving non-contiguous data and handling memories with different optimal access methods resemble those used in modern C++. In this study we provide two kernels implemented in UPC++: a sparse-matrix vector multiplication (SpMV) as part of a Partial-Differential Equation solver, and an implementation of the Heat Equation on a 2D-domain. Code listings of these two kernels are available in the article in order to show the differences in programming style between UPC and UPC++. We provide a performance comparison between UPC and UPC++ using single-node, multi-node…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques
