A comparative study of Java and C performance in two large-scale parallel applications

Aamir Shafi, Bryan Carpenter, Mark Baker, Aftab Hussain

Research output: Contribution to journalArticlepeer-review


In the 1990s theMessage Passing Interface Forum defined MPI bindings for Fortran, C, and C++. With the success of MPI these relatively conservative languages have continued to dominate in the parallel computing community. There are compelling arguments in favour of more modern languages like Java. These include portability, better runtime error checking, modularity, and multi-threading. But these arguments have not converted many HPC programmers, perhaps due to the scarcity of full-scale scientific Java codes, and the lack of evidence for performance competitive with C or Fortran. This paper tries to redress this situation by porting two scientific applications to Java. Both of these applications are parallelized using our thread-safe Java messaging system—MPJ Express. The first application is the Gadget-2 code, which is a massively parallel structure formation code for cosmological simulations. The second application uses the finite-domain time-difference method for simulations in the area of computational electromagnetics. We evaluate and compare the performance of the Java and C versions of these two scientific applications, and demonstrate that the Java codes can achieve performance comparable with legacy applications written in conventional HPC languages.
Original languageEnglish
Pages (from-to)1882-1906
JournalConcurrency and Computation: Practice and Experience
Issue number15
Publication statusPublished - Oct 2009


Dive into the research topics of 'A comparative study of Java and C performance in two large-scale parallel applications'. Together they form a unique fingerprint.

Cite this