Introduction

Ninf-G is a Grid RPC system built on top of Globus Tookit. GridRPC is a middleware that provides remote library access and task-parallel programming model on the Grid. Representative systems include Ninf, Netsolve, etc. GridRPC can be effectively used as a programming abstraction in situations including the followings:

Utilizing resources that are specific to a specific computer on the Grid.

Commercial programs and libraries are often only provided in binary form, and cannot be executed on a machine with different CPU or networking architecture. Software License, source code incompatibility, could also be problematic. Special peripherals such as video cameras, electron microscopes, telescopes, and other various sensors may only be available as a resource on a particular machine, and their software libraries must

Executing Compute/Data Intensive Routines on Large Servers on the Grid.

For most programs, time is dominated by only a small portion of the entire program. By offloading such parts to large compute servers, we significantly reduce the time required for overall program execution. Another example is where the client machine is too constrained in terms of memory or disk space to perform large-scale computations. In such a case, transparent offloading without considering argument marshalling is desirable.

Parameter Sweep Studies using multiple servers on the Grid

Parameter sweep involves taking subsets of the overall parameter space and farming them off in a parallel, systematic manner to multiple servers. Each server performs identical computation with different sets of parameters, independent or semi-independent of other servers. There are a surprising number of real-world applications that could be categorized as parameter-sweep; Monte-Carlo is one such example. Although parameter sweep can be implemented using message passing libraries MPI, GridRPC allows considerably easier programming, and moreover allows the program to scale automatically to the Grid, such as remotely using multiple clusters, with considerations for properties such as resource allocation and security.

General and Scalable Task-Parallel Programs on the Grid.

GridRPC can be effectively used to implement task-parallel programs in a easy and transparent manner on the Grid. APIs are available to support various types of task-parallel synchronization, where multiple client-server interactions can become quite complex. Not only that GridRPC provides numerics-friendly, easy-to-use interface for task-parallelism, but also allows the computation to scale to the Grid in the same manner as the parameter sweep case. Section 2 will cover the basic gGridifyingh of a given numerical library using GridRPC. Section3 will cover how binary executables with command-line interfaces and file I/O can be wrapped as a GridRPC component. Section 4 will exemplify parallel programming for the parameter sweep case. (Section 5, task parallel programming, is in the works.).


Next