Demetris Galatopoullos
JavaPorts: A framework to facilitate the rapid prototyping of cluster computing application
Date: November 14th, 2003, 2:30pm, room 442 Dana (ECE Dept. Conference room).
Abstract
Clusters of Workstations are networked groups of machines which can provide, at low-cost, computing power comparable to that of supercomputers for coarse-grain parallel processing. However, there is currently a lack of environments to facilitate the rapid prototyping of applications for clusters. Cluster users are forced today to learn using message passing libraries that require considerable effort to master. The inter-task communication details as well as issues such as message packaging, distributed termination and exception handling should not concern the parallel computing developers. Instead, software systems for the rapid prototyping of cluster applications should hide the communication and coordination details and allow programmers to concentrate on modeling, design and implementation of the parallel and distributed application.
JavaPorts is such a software system for cluster computing. Although code reusability and component support are important traits of the design, its ultimate value added is the ease with which a component based application can be built and its tasks assigned to sets of networked resources. The programmer may utilize visual tools to compose an application from new or existing components. Code skeletons for components are realized through automatically created Java or Matlab templates. JavaPorts offers tools for compiling and launching automatically the application in the cluster nodes. Another powerful characteristic of this design is the distributed termination accomplished at the application level and transparently to the user code. Furthermore to the best of our knowledge JavaPorts is the only framework that allows the integration of interacting Matlab and Java components into the same parallel and distributed application. JavaPorts supports adequately all phases of the software development from application modeling to launching and allows the non-expert programmer to build correct parallel and distributed applications easily. The latest version of JavaPorts (v 2.5) runs in Solaris and Linux clusters (with or without NFS support).
JavaPorts was designed using Object-Oriented Software Engineering methodologies with emphasis on modularity and reusability of code. Its implementation does not contain native code and it is entirely composed of pure Java classes. Although it currently targets cluster computing, future plans include extending it to support computing in wide area networks that may also involve nodes such as mobile terminals, embedded systems, and and grid scale resources.
Committee: Prof. D. Kaeli, Prof. M. Leeser, Prof E. Manolakos (thesis advisor)