Java in High Performance computing: Cluster computing using Java.

this page compiled by YoonJung Ha and Kavan Mehta for the Underdog Group Project
DS420 - Fall 2000, Professor Clark Elliott

 

List of general reference for this section.

Due to Java’s platform-independence execution model, its support for networking, multithreading and mobile code, it seen the next logical step would be High Performance computing in Java.

In this section we try to present brief introduction to various approaches and associated tools to implement Cluster Computing with Java Virtual Machine.

We contrast these approaches form the viewpoint on using cluster computing to implement a scalable Java application like Java Servers.

In order to implement cluster computing, the Java application must have the Illusion that the cluster is a single computing resource, even though the application will execute on the multiple, independent, nodes composing the cluster.

There are three different approaches to enable Java Application to see single cluster.

Above JVM: Using standard libraries such as RMI, Corba.

Remote Method Invocation allows the distributed applications to be written in the way that the methods of remote Java objects can be invoked from other Java Virtual Machines on different hosts on the network [Qusay H.Mahmoud. Distributed Programming with Java. Manning, 1999]. These libraries provide support for implementation of distributed system with supporting seamless remote invocations on objects in different Java virtual machine and callbacks from servers to clients, integrating the distributed object model into the Java language, making differences between the distributed object model and the local Java object model apparent and preserving the safety provided by the Java run-time environment. Some libraries have an approach for implementing RMI, based on native compilation, and allow for better optimization eliminating the need for processing of type information at run time and making a light weight communication protocol possible.

However intent of these libraries is to facilitate implementation of distributed system and not so much as to implement dedicated clusters. This next section we discuss Java Proactive Library to implement cluster on JVM.

Typical RMI Implementation

Advantages of Above JVM approach:

Drawback of Above JVM approach:

 

At JVM: Example cJVM Cluster Java Virtual Machine

This approach provides an implementation of a Java virtual machine (Java Platform), which itself cluster enabled.

cJVM (Cluster JVM) is a cluster-enabled implementation of a Java Virtual Machine. It provides a single system image of the cluster to a Java application.

Each cJVM process holds certain portion of application objects and thread.

Collection of All cJVM processes as a whole forms a cJVM (Cluster JVM). (Individual cJVM process not cJVM)

Benefits of At JVM approach:

Drawback of At JVM approach:

Below JVM: Using cluster enabled infrastructure: This approach uses a cluster-enabled platform below the JVM to implement Cluster. Attached diagrams show the architecture of Sun HPC ClusterTools 3.1TM, one the many commercial platform that are cluster enabled.

 

Benefits of Below JVM

Drawback: