Session-Based Programming for Parallel Algorithms: Expressiveness and Performance
Andi Bejleri (Imperial College), Raymond Hu (Imperial College), Nobuko, Yoshida (Imperial College)

TL;DR
This paper compares session-based programming in Java with MPI-based messaging for parallel algorithms, showing that high-level session types improve code safety and readability without sacrificing performance.
Contribution
It introduces new benchmark results for SJ, a session-typed extension of Java, demonstrating its advantages over MPI in safety, productivity, and performance.
Findings
Session types enhance safety and readability in parallel programming.
SJ achieves competitive performance with MPI despite higher-level abstractions.
MPI remains a low-level API prone to deadlocks and message errors.
Abstract
This paper investigates session programming and typing of benchmark examples to compare productivity, safety and performance with other communications programming languages. Parallel algorithms are used to examine the above aspects due to their extensive use of message passing for interaction, and their increasing prominence in algorithmic research with the rising availability of hardware resources such as multicore machines and clusters. We contribute new benchmark results for SJ, an extension of Java for type-safe, binary session programming, against MPJ Express, a Java messaging system based on the MPI standard. In conclusion, we observe that (1) despite rich libraries and functionality, MPI remains a low-level API, and can suffer from commonly perceived disadvantages of explicit message passing such as deadlocks and unexpected message types, and (2) the benefits of high-level…
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 · Distributed and Parallel Computing Systems · Cloud Computing and Resource Management
