Java/CORBA technology on a Beowulf cluster

  • Authors:
  • Liang Guo;Barrett R. Bryant;Robert M. Hyatt

  • Affiliations:
  • University of Alabama at Birmingham, Alabama;University of Alabama at Birmingham, Alabama;University of Alabama at Birmingham, Alabama

  • Venue:
  • ACM-SE 38 Proceedings of the 38th annual on Southeast regional conference
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

Java and CORBA have become standards for network and distributed systems programming over a wide variety of platforms[4]. As a kind of scientific and high performance computing machine, Beowulf is usually built out of commodity hardware components which are connected by a private high speed network, and runs on a free source code and modular design kernel software operating system like FreeBSD and Linux. While Java and CORBA both run on Linux[5], the underlying operating system of Beowulf clusters, there has not been much work in running Java/CORBA applications on Beowulf. The goal of this project is to develop Java/CORBA technology for a Beowulf cluster of computers[6]. The Beowulf cluster at UAB is a configuration of 15 SGI Indigo-2 machines and 8 Dell PowerEdge 6350 quad-processor 550MHz Xeon machines running Linux. The former 15 machines have 256 MB of RAM each and 4 GB of disk space connected with 10mbit/s Ethernet, while the latter 8 machines have 512 MB of RAM and 27 GB of disk space, with a high-speed cLan GigaNet switch connected among them. Current implemented software includes Tuple Space[4] and PVM[1]. Both of these provide for parallel computing over the distributed network of machines. Applications include parallelizing compilers for object-oriented programming languages, distributed implementation of computer chess, parallel and distributed algorithm performance analysis, debugging and visualization, and implementation of mobile agents. ORBacus[7] and JacORB[8] are within consideration for the underlying CORBA framework.The main advantages of using Java/CORBA technology on a Beowulf cluster are:Beowulf applications have been primarily in the scientific computing domain. Adding Java/CORBA technology allows for many additional application areas in the area of client/server computing such as database services.This type of configuration will allow Java/CORBA applications to run on a network with arbitrary speeds, e.g. to test an application a fast network, or to simulate a very busy one.The Java multi-threading model can be realized physically as well as logically on such a system. This will also facilitate performance of CORBA servers as the server is itself capable of parallelism.The Beowulf cluster can be regarded as a small model of the Internet for which Java and CORBA are ideal software development tools. The current configuration is homogeneous but there is no difficulty in adding additional nodes of varying types and such heterogeneity is typical in Beowulf systems.Java/CORBA technologies provide an object-oriented framework for Beowulf applications that will hopefully allow such application to benefit from the object-oriented software engineering approach, such as component-based software and software reuse.Instead of setting up the entire software environment on specified hardware components and then using Java applications for testing, we first use 8 Sun UltraSparc5 machines running Solaris2.6 as the environment to test PVM and jPVM[9], a Java version of PVM. JavaIDL and RMI are the first two alternatives to test under the same environment.We plan to combine jPVM and CORBA (see Figure 1) in order to achieve the high performance goals of PVM on a Beowulf cluster with object-oriented client/server architecture provided by CORBA. Since CORBA is the appropriate tool to adopt for building a general infrastructure for communicating between different environments, applications and tools, it might have some performance deficit on some speed-critical system when using with pure Java. Therefore, a possible solution is to have the underlying C programs using PVM as the methods of marshalling and demarshalling to serialize and deserialize objects with the help of JNI (Java Native Interface), which allows native code such as PVM library functions to be called from Java.