Group Communication Patterns for High Performance Computing in Scala
Felix P. Hargreaves, Daniel Merkle, Peter Schneider-Kamp

TL;DR
This paper introduces FooPar, a Scala framework for high-performance distributed computing using DPDs and group communication, demonstrating its efficiency and correctness through theoretical proofs and empirical benchmarks.
Contribution
It presents a novel Scala-based framework with elegant DPD implementation, correctness proofs, and superior group communication performance over existing Java MPI bindings.
Findings
Achieves over 94% efficiency on large matrix algorithms with 100 cores.
Outperforms MPJ Express in group communication operations.
Demonstrates close-to-optimal performance for dense matrix multiplication.
Abstract
We developed a Functional object-oriented Parallel framework (FooPar) for high-level high-performance computing in Scala. Central to this framework are Distributed Memory Parallel Data structures (DPDs), i.e., collections of data distributed in a shared nothing system together with parallel operations on these data. In this paper, we first present FooPar's architecture and the idea of DPDs and group communications. Then, we show how DPDs can be implemented elegantly and efficiently in Scala based on the Traversable/Builder pattern, unifying Functional and Object-Oriented Programming. We prove the correctness and safety of one communication algorithm and show how specification testing (via ScalaCheck) can be used to bridge the gap between proof and implementation. Furthermore, we show that the group communication operations of FooPar outperform those of the MPJ Express open source…
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 · Advanced Data Storage Technologies · Distributed and Parallel Computing Systems
