Mixed-language high-performance computing for plasma simulations

Java is receiving increasing attention as the most popular platform for distributed computing. However, programmers are still reluctant to embrace Java as a tool for writing scientific and engineering applications due to its still noticeable performance drawbacks compared with other programming languages such as Fortran or C. In this paper, we present a hybrid Java/Fortran implementation of a parallel particle-in-cell (PIC) algorithm for plasma simulations. In our approach, the time-consuming components of this application are designed and implemented as Fortran subroutines, while less calculation-intensive components usually involved in building the user interface are written in Java. The two types of software modules have been glued together using the Java native interface (JNI). Our mixed-language PIC code was tested and its performance compared with pure Java and Fortran versions of the same algorithm on a Sun E6500 SMP system and a Linux cluster of Pentium~III machines.

[1]  Vladimir Getov,et al.  A Mixed-Language Programming Methodology for High Performance Java Computing , 2000, The Architecture of Scientific Software.

[2]  Geoffrey C. Fox,et al.  MPIJAVA: An Object-Oriented JAVA Interface to MPI , 1999, IPPS/SPDP Workshops.

[3]  Boleslaw K. Szymanski,et al.  Object-oriented parallel computation for plasma simulation , 1995, CACM.

[4]  Shu Wang,et al.  Using Java for plasma PIC simulations , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[5]  Henri Casanova,et al.  Java Access to Numerical Libraries , 1997, Concurr. Pract. Exp..

[6]  Sheng Liang,et al.  Java Native Interface: Programmer's Guide and Reference , 1999 .

[7]  Viktor K. Decyk,et al.  Skeleton PIC Codes for Parallel Computers , 1995 .

[8]  Geoffrey C. Fox,et al.  MPJ: MPI-like message passing for Java , 2000, Concurr. Pract. Exp..

[9]  Boleslaw K. Szymanski,et al.  Object-oriented parallel computation for plasma simulation : Object-oriented experience , 1995 .

[10]  Quan Ming Lua,et al.  Implementation of parallel plasma particle-in-cell codes on PC cluster , 2001 .

[11]  D NortonCharles,et al.  Object-oriented parallel computation for plasma simulation , 1995 .

[12]  Jack J. Dongarra,et al.  The NetSolve environment: progressing towards the seamless grid , 2000, Proceedings 2000. International Workshop on Parallel Processing.

[13]  Sheng Liang,et al.  Java Native Interface: Programmer's Guide and Specification , 1999 .

[14]  Boleslaw K. Szymanski,et al.  How to support inheritance and run-time polymorphism in Fortran 90 , 1998 .

[15]  David Flanagan,et al.  Java in a Nutshell , 1996 .

[16]  Viktor K. Decyk,et al.  A general concurrent algorithm for plasma particle-in-cell simulation codes , 1989 .

[17]  G. C. Fox,et al.  Solving Problems on Concurrent Processors , 1988 .