A-JUMP, architecture for Java universal message passing

Nowadays, there is a persistent demand of greater computational power to solve complex problems. High Performance Computing (HPC) with the modern trend to multi-core clusters accentuates the importance of parallelism and multithreading. This paper presents a Java based message passing implementation, named Architecture for Java Universal Message Passing (A-JUMP). A-JUMP provides flexibility to programmers in writing parallel applications using multiple programming languages. Moreover, it also provides facility to use different network protocols for message communication. The backbone of A-JUMP is HPC bus that facilitates the development of parallel applications. It provides the interoperability between different hardware resources, communication protocols and mediums. The HPC bus is built upon well-established industry standards; Java Messaging Service (JMS) and Java programming language. In HPC bus, ActiveMQ is solely responsible for communication and message passing in an asynchronous manner. The communication layer of A-JUMP is disentangled from the rest of HPC bus implementation that ensures that any changes in communication protocol and network topology will remain transparent to the end users. The components of A-JUMP includes; Job Scheduler, Monitoring, Machine Registry, and Code Migrator/Execution other than HPC bus. In addition, it includes a set of easy to use APIs for writing MPI-like code. The results demonstrate promising performance for standard benchmarks like ping pong latency tests and embarrassingly parallel (EP) code execution. The comparison of these results with MPICH and MPJ Express are also presented.