Abstract—High Performance Computing (HPC) provides support to run advanced application programs efficiently. Java adaptation in HPC has become an apparent choice for new endeavors, because of its significant characteristics. These include object-oriented, platform independent, portable, secure, built-in networking, multithreading, and an extensive set of Application Programming Interfaces (APIs). Consequently multi-core systems and multi-core programming tools are becoming popular. However, today the leading HPC programming model is Message Passing Interface (MPI). In present day computing, while writing a parallel program for multi-core systems in distributed environment may deploy an approach where both shared and distributed memory models are used. Moreover an interoperable, asynchronous, and reliable working environment is required for programmers and researchers to build the HPC applications. This paper reviews the existing MPI implementations in Java. Several assessment parameters are identified to analyze the Java based MPI models; including their strengths and weaknesses.
Keywords-HPC; Java; message passing; MPI
Nowadays, there is a persistent demand for greater computational power to process large amount of data. HPC makes previously unachievable calculations possible. Today the modern computer architectures are relying more and more upon hardware level parallelism. They attain computing performance, through realization of multiple execution units, pipelined instructions  and multiple CPU cores . The largest and fastest computers use both shared and distributed memory architectures. Contemporary trends show that the hybrid type of memory architectures will continue to prevail .
Modern practices towards multi-core clusters accentuates the importance of parallelism and multithreading. Java is enabling to use both shared as well as distributed memory architectures. Several parallel programming models that exist today can run on single and/or multi-core hardware. These include shared memory, threads, message passing, data parallel and hybrid models. An example of a hybrid model is the combination of the MPI with either the thread model like POSIX threads  or the shared memory model like OpenMP . Two popular message passing approaches are Parallel Virtual Machine (PVM) and MPI . MPI is the leading model used in HPC at present. It supports both point-to-point and collective communication. MPI aims high performance, scalability, and portability . Interoperability of objects defined in MPI facilitates mixed-language message passing programming. It supports the Single Program Multiple Data (SPMD) model of parallel computing. The message passing model uses its own local memory during computation. Multiple tasks can reside on the same physical machine as well as on any random number of machines. For data transfer cooperative operations are required to be performed by each process, specifically a send...