Session-based programming for parallel algorithms: Expressiveness and performance

Andi Bejleri, Raymond Hu, Nobuko Yoshida

Research output: Contribution to journalConference articlepeer-review

1 Citation (Scopus)


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 session abstraction, which has significant impact on program structure to improve readability and reliability, and session type-safety can greatly facilitate the task of communications programming whilst retaining competitive performance.

Original languageEnglish
Pages (from-to)17-29
Number of pages13
JournalElectronic Proceedings in Theoretical Computer Science (EPTCS)
Publication statusPublished - 6 Feb 2010
Externally publishedYes
Event2nd International Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software, PLACES 2009 - York, United Kingdom
Duration: 22 Mar 2009 → …


Dive into the research topics of 'Session-based programming for parallel algorithms: Expressiveness and performance'. Together they form a unique fingerprint.

Cite this