Abstract

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.

Highlights

  • Since its formal introduction in 1995, Java has made extraordinarily rapid progress and has been widely embraced as the programming language of choice for stateof-the-art software development

  • The Java source code is first compiled into platform independent bytecode, which is interpreted by the Java virtual machine (JVM)

  • It shows the main steps for compiling Fortran and Java modules separately and the way they are linked at runtime using Java native interface (JNI)

Read more

Summary

Introduction

Since its formal introduction in 1995, Java has made extraordinarily rapid progress and has been widely embraced as the programming language of choice for stateof-the-art software development. Independent threads may be used for programming in Java and scheduled on different processors by a suitable runtime environment These built-in mechanisms for parallel processing are well suited for high-performance computing on shared memory machines. One way to overcome the performance drawbacks of Java is to use static Java compilers, such as IBM’s High-Performance Compiler for Java (HPCJ), which generates optimized native code for the RS6000 and Pentium architectures [17] Another choice is to use mixed-language programming techniques through JNI where some time-consuming parts of the Java source code are replaced with subroutines written in a highperformance computer language such as Fortran or C [12]. For the sake of simplicity, most of the following discussions involve only the 2-dimensional PIC code, but similar results for the 3-dimensional version can be inferred

PIC simulation skeleton algorithm
Implementation details
Performance results
Findings
Conclusion
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.