Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Design and implementation of Java bindings in Open MPI
Vega-Gisbert O., Roman J., Squyres J. Parallel Computing59 (C):1-20,2016.Type:Article
Date Reviewed: Jun 14 2017

You should read this paper if you’re tasked with parallelizing an existing Java application or building a new parallel application with Java and performance is important to you. If you have previously developed with message passing interface (MPI), that’s an advantage because the implementation provided in this paper will feel familiar in many aspects and you will hit the ground running. That being said, the choice of Java as a development language is still a questionable decision because the original C library will always outperform the Java version and you don’t get the advantage of using high-level abstractions despite using Java.

The main idea behind the implementation described in this paper is the use of a thin wrapper around the native Open MPI binaries. This comes at the cost of portability, which is one of the main advantages of Java over C. However, the authors base their choice on the fact that C implementation is mature and fast and using it eliminates the need for developing all of the MPI functionality from scratch in Java.

Most Java ports of the MPI library have built the underlying implementations of functions in Java itself. This has been shown to be inefficient; performance losses are great when compared to the native C code. This is the main argument behind the implementation choices described in this paper. In other words: the less Java code there is to run, the better.

The paper describes the Java implementation of the MPI interface built on top of Open MPI. The authors have used the Java Native Interface (JNI) to propagate application programming interface (API) calls to the underlying pre-compiled binaries. The implementation was built with the Java philosophy in mind and provides useful abstractions to ease the process of application development.

The authors aimed to create an efficient Java implementation of MPI and have succeeded in doing so. Some of the benchmark applications show the same level of scalability on the Java version as the C version. However, overall native implementation always prevails in terms of performance and sometimes substantially, especially in the case of applications where low latency is important. The authors claim this inefficiency comes from the Java virtual machine (JVM) and not from the Java bindings. This guide will be ideal as a reference for someone planning to build MPI applications with Java since it provides both an overview of the API and useful suggestions of design decisions.

Reviewer:  Ali Jannesari Review #: CR145345 (1708-0544)
Bookmark and Share
 
Parallel Programming (D.1.3 ... )
 
 
Java (D.3.2 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Parallel Programming": Date
How to write parallel programs: a first course
Carriero N. (ed), Gelernter D. (ed), MIT Press, Cambridge, MA, 1990. Type: Book (9780262031714)
Jul 1 1992
Parallel computer systems
Koskela R., Simmons M., ACM Press, New York, NY, 1990. Type: Book (9780201509373)
May 1 1992
Parallel functional languages and compilers
Szymanski B. (ed), ACM Press, New York, NY, 1991. Type: Book (9780201522433)
Sep 1 1993
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy