What is gridMathematica?
gridMathematica provides an affordable, easy-to-use way to take full advantage of grid-computing hardware such as the multiprocessor machines and computing clusters that are now more accessible to many research groups, universities, and companies.
gridMathematica gives immediate access to the world's leading collection of algorithms and mathematical knowledge. It offers all of the same features and programmatic capabilities as Mathematica, including thousands of functions covering areas such as numerical computation, symbolic computation, graphics, and general programming. gridMathematica takes advantage of Mathematica 5.1 functionality such as industrial-strength string manipulation, built-in universal database connectivity, highly optimized binary data I/O, high-speed numerical linear algebra, 64-bit platform support, improved communication bandwidth, and reduced latency. Recently added Mathematica 5.2 functionality includes new 64-bit support for all platforms, support for multicore processors, 64-bit-enhanced arbitrary-precision numerics, and vector-based performance enhancements.
General Features
- Parallelization at the Mathematica language level.
- Support for multiprocessor machines, clusters, and grids.
- Machine-independent--user code completely portable.
- High-performance MathLink communication protocol optimized for all common configurations.
- Efficient, adaptive load balancing.
- Scheduling takes processor speed and communication latency into account.
- User-programmable scheduling for problem-specific adaptation.
- Automatic failure recovery and reassignment of stranded processes.
- Support for tracing and debugging.
- Speculative parallelization for nondeterministic problems.
- Parallel applications can be simulated and tested on a PC.
- Makes use of a distributed memory system.
- Includes support for virtual shared memory for simulating a shared-memory environment.
- Uses standard Mathematica notebooks, resulting in a machine-independent implementation.
- Support for multiprocessor machines and clusters.
- Supports scheduling of virtual processes or explicit distribution to available processors.
- Includes support for synchronization, locking, and latency hiding.
- Includes support for process queues and concurrency.
- Includes support for parallel functional programming.
- Includes support for failure recovery and automatic reassignment of stranded processes.
- Parallel codes can be developed and tested on desktop PC or workstation.
- Includes support for multiprocessor machines as well as homogeneous and heterogeneous clusters.
- Includes the world’s largest collection of advanced algorithms.
Structure of gridMathematica
A typical installation of gridMathematica involves a master kernel, a license manager, and one Mathematica kernel per available node. MathLM, the license manager, makes sure that each machine on the cluster is properly licensed. MathLM also provides the necessary passwords needed by the Mathematica nodes. The master kernel handles all input, output, and scheduling. It can be controlled from any Mathematica front end or via batch files, either locally or via a remote connection. Users can launch remote kernels from the master kernel using devices such as RSH or SSH. Once the remote kernels are launched, they are ready to receive commands from the master machine.

A typical installation of gridMathematica with one master kernel and eight computation kernels.
The master kernel parallelizes computations, schedules calculations
for the computation kernels,
and collects the results.
