General Information

A grid computing system is a distributed collection of computers that enables Internet Programming, i.e. the sharing, selection, and aggregation of resources across a large network like the Internet based on their availability, capability, performance, cost, and ability to meet quality-of- service requirements. Grid technology is fast revolutionizing business models and scientific research methods in areas as diverse as bioinformatics and financial services industries, with companies like IBM, Sun, Apple, and DataSynapse being among the early adopters. The heterogeneous nature of the Internet coupled with security concerns pose many challenges for users of the grid, particularly for grid application developers. The Globus Toolkit and the Open Grid Services Architecture (OGSA) have emerged as de facto standards, providing a framework for secure grid computing. The Grid Application Toolkit (GAT) [GridLab], for example, provides an interface between the application level and the grid middleware. However, building a grid system or application to meet the specific needs of a user currently requires the integration of many tools and services that are available "off the shelf" or from the Grid community. In order for users to realize the full potential of the grid as a broadly accessible problem-solving platform, application development must be made drastically easier with tools that facilitate the programming process.

Project History

Pulimood’s research has been primarily in using mobile computations to share resources on the Internet [Pulimood]. A mobile computation is a program that can commence execution at one site, discover a need for a resource at a different site, halt execution, migrate, and continue execution at the new site [Cardelli]. In order to continue execution (without being forced to start over) the current state of execution must migrate along with the computation. Migrating a running process is a non-trivial task that is exacerbated by the heterogeneity of the computing infrastructure. In the pre-web days, research efforts focused primarily on distributed computing on local area networks with a limited number of nodes with systems like REV, Emerald, Obliq, Orca etc., which were found to be unsuitable for large-scale heterogeneous networks. Systems like D'Agents, MobileML, and Mobile UNITY are extensions of languages that were originally designed for non-mobile environments. Since the Java Virtual Machine (JVM) does not allow capture of closure of running processes, efforts have been made to explore various techniques, like checkpointing, to serve the purpose. While there are advantages to be gained by utilizing features already available, the constraints, disadvantages, and overheads of circumventing the inherently non-mobile nature, are detrimental to the concept of mobile computation. For example, systems that attempt to leverage Java's ubiquity have to contend with its security gaps, and lack of strong (closure) mobility features. [Pulimood]. Pulimood theorized that native support for strongly mobile computations is an essential prerequisite for a user-friendly programming language that can produce efficient and secure grid applications. As a proof-ofconcept, she designed and implemented a prototype of a Mobile Computational Model that includes the Mobile Computational Language (MCL), for developing applications with mobile computations, and the RISC-based Virtual Machine (RVM), that performs the actual execution of the computations. Preliminary performance testing of the RVM has yielded promising results.