What is NetSolve?

NetSolve http://icl.cs.utk.edu/netsolve/ is an example of a Distributed Computing system that hopes to
present functionalities and features that a wide variety of scientists will
find highly useful and helpful.

Background

Various mechanisms have been developed to perform computations across
diverse platforms. The most common mechanism involves software libraries.
Unfortunately, the use of such libraries presents several difficulties.
Some software libraries are highly optimized for only certain platforms
and do not provide a convenient interface to other computer systems.
Other libraries demand considerable programming effort from the user.
While several tools have been developed to alleviate these difficulties,
such tools themselves are usually available on only a limited number of
computer systems and are rarely freely distributed. Matlab
[matlab] and Mathematica
[mathematica] are examples of such tools.

These considerations motivated the establishment of the
NetSolve project.
project. The basic philosophy of NetSolve is to provide a uniform, portable
and efficient way to access computational resources over a network.

Overview and Architecture

The NetSolve project is being developed at the University of Tennessee's
Computer Science Department. It provides remote access to
computational resources, both hardware and software. Built upon standard
Internet protocols, like TCP/IP sockets, it is available for all popular
variants of the UNIX™ operating system, and parts
of the system are
available for the Microsoft Windows 2000™ and Windows XP™ platforms.

The NetSolve system is comprised of a set of loosely connected machines.
By loosely connected, we mean that these machines
are on the same local, wide or global area network, and may be
administrated by different institutions and organizations.
Moreover, the NetSolve system is able to support these interactions in a
heterogeneous environment, i.e. machines of
different architectures, operating systems and internal data
representations can participate in the system at the same time.

Figure 1-1. The NetSolve System

Figure 1-1 shows the global conceptual picture of the
NetSolve system. In this figure, we can see the three major components
of the system:

The NetSolve client,

The NetSolve agent,

The NetSolve computational resources (or servers).

The figure also shows the relation NetSolve has to the applications that
use it. NetSolve and systems like it are often referred to as Grid
Middleware; this figure helps to make the reason for this terminology
clearer. The shaded parts of the
figure represent the NetSolve system. It can be seen that NetSolve acts as
a glue layer that brings the application or user together with the
hardware and/or software it needs to complete useful tasks.

At the top tier, the NetSolve client library is linked in with the user's
application. The application then makes calls to NetSolve's application
programming interface (API) for specific services. Through the API,
NetSolve client-users gain access to aggregate resources without
the users needing to know anything about computer networking or distributed
computing. In fact, the user does not even have to know remote resources
are involved.

The NetSolve agent maintains a database of NetSolve servers along with
their capabilities (hardware performance and allocated software) and
dynamic usage statistics. It uses this information to allocate server
resources for client requests. The agent finds servers that will service
requests the quickest, balances the load amongst its servers and keeps
track of failed ones.

The NetSolve server is a daemon process that awaits client requests.
The server can run on single workstations, clusters of workstations,
symmetric multi-processors or machines with massively parallel processors.
A key component of the NetSolve server is a source code generator which
parses a NetSolve problem description file (PDF). This PDF contains
information that allows the NetSolve system to create new modules and
incorporate new functionalities. In essence, the PDF defines a wrapper
that NetSolve uses to call functions being incorporated.

The (hidden) semantics of a NetSolve request are:

Client contacts the agent for a list of capable
servers.

Client contacts server and sends input
parameters.

Server runs appropriate service.

Server returns output parameters or error status
to client.

No root/superuser/Administrator privileges are needed to install or use any
component of the NetSolve system.