Skip to main navigation Skip to search Skip to main content

Nested parallelism for multi-core HPC systems using Java

  • Aamir Shafi
  • , Bryan Carpenter
  • , Mark Baker

    Research output: Contribution to journal › Article › peer-review

    Abstract

    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
    Volume69
    Issue number6
    DOIs
    Publication statusPublished - Jun 2009

    Fingerprint

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

    Cite this