A Manager for Distributed Mathematica Computations
|
|
Contact Person: Wolfgang Schreiner
The goal of the project is to develop a system for distributing computations
to Mathematica processes running on various machines of a network. The system
consists of two kinds of processes:
- server processes each of which is connected to a Mathematica kernel
offering computation capabilities;
- client processes each of which provides an interface giving the
possibility to define computations which the client forwards to some server.
A set of servers runs on various machines of the network. The user starts a
client that provides by a graphical user interface the following features:
- defining a new computation
- a computation is represented by a Mathematica expression in textual form
to be evaluated;
- the result of a computation is associated to a symbolic name;
- the expression may refer to the results of other computations by their
symbolic names;
- the computation may depend on additional code/libraries to be loaded
into the Mathematica kernel before the expression can be evaluated;
- a list of already defined computations
and their execution status, in particular:
not ready (because it depends on some computation whose result is not
yet available), ready but not yet exexecuting, executing on some denoted
machine; terminated with a denoted result;
- a list of machines supposed to run server processes and their execution
status, in particular: not responding, idle, executing an own computation,
executing some computation of another user,
- managing computations (initializing from a file, adding, deleting,
saving to a file),
- saving computation results to a file.
The client maintains a list of computations and a list of server machines and
their respective status and associates computations to servers; if a server
becomes unreachable, it is not given any new computations and running
computations are rescheduled to other servers.
The server accepts computations from any client and forwards the computation
to the associated Mathematica kernel which eventually returns the result.
The following programming languages and systems are suggested;
- Java for the client process; it is expected that the client process
communicates via sockets with the server process;
- C/C++ for the server process; the server communicates via sockets with
the client and via MathLink with the Mathematica kernel;
- Mathematica.
A test installation is to be provided with server processes running on at
least two different environments of the RISC-Linz network (Solaris and Irix
preferred). A demonstration of the system has to be prepared and documented
such that it can be used by any member of RISC-Linz.
All results are to be documented and packaged such that the system can be
easily installed and used. Documentation must be available in online form
(HTML) and as a printable file (PostScript). A Web page is to be installed
such that the system can be downloaded via the Internet.
Maintained by: Wolfgang Schreiner
Last Modification: February 4, 1998
[Up]
[RISC-Linz] [University]
[Search]