Home General Libraries GridRPC Documents Tests Contact Misc
Grid RPC systems

Grid RPC - general information

Leaders of the Ninf and NetSolve projects define the Grid RPC as following:

Grid is an RPC mechanism tailored to the Grid. At a very high level view the programming model provided by Grid RPC is that of standard RPC plus asynchronous coarse-grained parallel tasking. In practice there are a variety of features that will largely hide the dynamicity, insecurity, and instability of the Grid from the programmers.

Grid RPC is the generalisation of techniques implemented in reference the Grid RPC systems: NetSolve and Ninf.

The transition to the Grid RPC system

The transition from the original to the grid-enabled application is very simple. All the programmer has to do is to replace the original function call with the remote call through Grid RPC API and link his/her application against the Grid RPC client library. The transition is similar to the one presented below (NetSolve example):

How does the Grid RPC system work

The mechanism of executing the remote calls in the Grid RPC system is similar to the mechanism of remote function execution known from classic RPC systems.

Example remote execution sequence

The user application resides on the user machine. It is linked against the NetSolve client module (see the figure below).

The application calls the NetSolve client module function (1). The module requests the NetSolve agent to assign resources for call execution (2). The task running facility of the agent serves the request. It invokes the scheduling unit that selects the resources for serving the call. It uses the data residing in the resource and performance databases. The decision is returned to the client module (3). Next, the module invokes the remote computations on the assigned resource. The input data of the task is transmitted to the NetSolve server module (4). The server module launches the computations, using a copy of the mathematical library installed on the remote machine (5), (6). Then the results are returned to the client module (7) and through it to the application (8). The system agent includes resources and performance databases. The resource database stores the list of mathematical problems solvers registered to the systems through the resource discovery mechanism. The performance database includes the information concerning the current and predicted state of computational resources incorporated into the system, e.g. load, amount of memory available, network links state (observed latency and bandwidth provided) etc. These data are delivered by the monitoring and prediction mechanisms that operate continuously.