Nested parallelism for multi-core HPC systems using Java

Aamir Shafi, Bryan Carpenter, Mark Baker

Research output: Contribution to journalArticlepeer-review


Since its introduction in 1993, the Message Passing Interface (MPI) has become a de facto standard for writing High Performance Computing (HPC) applications on clusters and Massively Parallel Processors (MPPs). The recent emergence of multi-core processor systems presents a new challenge for established parallel programming paradigms, including those based on MPI. This paper presents a new Java messaging system called MPJ Express. Using this system, we exploit multiple levels of parallelism - messaging and threading - to improve application performance on multi-core processors. We refer to our approach as nested parallelism. This MPI-like Java library can support nested parallelism by using Java or Java OpenMP (JOMP) threads within an MPJ Express process. Practicality of this approach is assessed by porting to Java a massively parallel structure formation code from Cosmology called Gadget-2. We introduce nested parallelism in the Java version of the simulation code and report good speed-ups. To the best of our knowledge it is the first time this kind of hybrid parallelism is demonstrated in a high performance Java application.
Original languageEnglish
Pages (from-to)532-545
JournalJournal of Parallel and Distributed Computing
Issue number6
Publication statusPublished - Jun 2009


Dive into the research topics of 'Nested parallelism for multi-core HPC systems using Java'. Together they form a unique fingerprint.

Cite this