Engineering Papers⌕ Search

DOE OSTI · 1580595

Graph Algorithms in PGAS: Chapel and UPC++

Abstract

The Partitioned Global Address Space (PGAS) programming model can be implemented «««< HEAD either with programming language features or with runtime library APIs, each implementation favoring different aspects (e.g., productivity, abstraction, flexibility, or performance). Certain language and runtime features, such as collectives, explicit and asynchronous communication primitives, and constructs facilitating overlap of communication and computation (such as futures and conjoined futures) can enable better performance and scaling for irregular applications, in particular for distributed graph analytics. We compare graph algorithms in one of each of these environments: the Chapel PGAS programming language and the UPC++ PGAS runtime library. We implement algorithms for breadth-first search and triangle counting graph kernels in both environments. We discuss the code in each of the environments, and compile performance data on a Cray Aries and an Infiniband platform. Our results show that the library-based approach of UPC++ currently provides strong performance while Chapel provides a high-level abstraction that, harder to optimize, still provides comparable performance. We argue that various language primitives and runtime library features should be considered in conjunction with each other to design future graph analytics libraries so as to incorporate the best of both worlds.

Explore related subjects

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Jenkins, Louis, Firoz, Jesun S., Zalewski, Marcin J., Joslyn, Cliff A., Raugas, Mark V.. 2019-09-25. Graph Algorithms in PGAS: Chapel and UPC++. https://doi.org/10.1109/hpec.2019.8916309

Cite the original work for its findings. Save a collection to share your selection of sources.