Accessibility navigation

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

Shafi, A., Carpenter, B., Baker, M. and Hussain, A. (2009) A comparative study of Java and C performance in two large-scale parallel applications. Concurrency and Computation: Practice and Experience, 21 (15). pp. 1882-1906. ISSN 1532-0634

Full text not archived in this repository.

It is advisable to refer to the publisher's version if you intend to cite from this work. See Guidance on citing.

To link to this item DOI: 10.1002/cpe.1416


In the 1990s the Message 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. Copyright © 2009 John Wiley & Sons, Ltd.

Item Type:Article
ID Code:15369
Uncontrolled Keywords:MPJ Express, Java for HPC, mpiJava, MPJ, Parallel Java

University Staff: Request a correction | Centaur Editors: Update this record

Page navigation