Tel: +44(0)1865 300 579
Fax: +44(0)1865 300 232

Programs for Programmers

gridMathematica

 

 

 

 

 

 

 

 

 


Mathematica Prices

Get immediate access to cutting-edge technologies and the full power of modern grid-computing systems. Mathematica is the tool of science and technology leaders at Fortune 500 companies, national research labs, and top universities. It has defined technical computing for a decade and a half--and many scientific breakthroughs have been made using Mathematica. Now gridMathematica 2 delivers an optimized parallel Mathematica environment for modern multiprocessor machines, clusters, grids, and supercomputers.

Take advantage of the world's largest algorithm collection--in one integrated system.

  • Integrates thousands of algorithms for numeric and symbolic computation, discrete mathematics, statistics and data analysis, graphics, visualization, and general programming
  • Automatic algorithm selection and arbitrary precision control
  • Sustained performance equal to specialized numeric libraries
  • Industrial-strength string manipulation, universal database connectivity, web services support, cluster analysis capabilitites, and high-speed binary data I/O

Develop on any PC. Deploy immediately on any grid or supercomputer.

  • Combines the only high-level advanced symbolic programming language with a uniquely productive development environment for parallel applications
  • Replaces thousands of lines of Fortran or other legacy code with single commands
  • Optimized for all major high-performance 32-bit and 64-bit CPUs
  • Machine independent--your code runs on all available platforms
  • APIs for C, Java, .NET, Python, and other scripting languages
     

What Is gridMathematica?

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.

gridMathematica installation

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.

Scope of gridMathematica

gridMathematica implements many parallel programming primitives and includes high-level commands for parallel execution of matrix operations, plotting, and other functions. It comes with example applications of many popular new programming approaches such as parallel Monte Carlo simulation, visualization, searching, and optimization. The implementations for all high-level parallel processing commands are provided in Mathematica source form so they can also serve as templates for users to build their own parallel programs.

gridMathematica will not speed up all of a user's calculations. Operations such as Integrate and DSolve are designed for use on a single processor. However, if a user has several such operations that need to be carried out, the operations can be sent to slave kernels for parallel evaluation rather than waiting for one kernel to evaluate all of them sequentially. Developing programs with this option in mind can lead to dramatic improvements in calculation time.

Features

gridMathematica provides innovative parallel computing functionality, with features such as the following:

  • 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

gridMathematica supports all Mathematica functionality--including the world's largest collection of advanced algorithms for numeric and symbolic computation, discrete mathematics, statistics, data analysis, graphics, visualization, and general programming--as well as all Mathematica application packages. Some specific features of interest include:

  • Multi-paradigm symbolic programming language with support for procedural, functional, list-based, object-oriented, and symbolic programming constructs
  • Automatic precision control and support for exact integers of arbitrary length, rationals, floating-point real and complex numbers, and arbitrary-precision real and complex numbers
  • Automatic algorithm selection for optimal performance
  • Fully programmable 2D and 3D visualization with over 50 built-in plot types to process data and visualize results in one environment
  • High-speed numerical linear algebra with performance equal to specialized numeric libraries
  • High-performance optimization and linear programming functions
  • Wide-ranging support for sparse matrices
  • Flexible import and export of over 70 data, image, and sparse matrix formats
  • Highly optimized binary data I/O allowing fast import of any binary data
  • Industrial-strength string manipulation
  • Built-in universal database connectivity for additional data import capabilities
  • Language bindings to C, Java, .NET, Python, and scripting languages
  • MathematicaMark benchmarking tool to test individual nodes in your grid or cluster for optimal efficiency
  • 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

What's New in gridMathematica 2.1

Bringing together the technology of Mathematica 5.2 and Parallel Computing Toolkit 2, gridMathematica 2.1 introduces many enhancements to parallel application development. It also handles large-scale, diverse types of data and adds a host of capabilities, including:

Improved configuration of remote Mathematica kernels

More-automatic parallelization with ParallelEvaluate
Scheduling takes relative processor speeds and communication latencies into account for better load balancing

Programmable scheduling for easy problem-specific optimization

Enhanced support for tracing and debugging

Speculative parallelization using ParallelTry

Code now runs unchanged on scalar and parallel setups

Additional utility functions for finer control and ease of use

gridMathematica incorporates all of the features included in Mathematica 5.2.

Key Advantages for Your Organization

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.

In addition to a price that is much lower than that of similar solutions, gridMathematica brings other unique advantages to your parallel technical-computing environment.

Computational Ability
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 new Mathematica 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.

Specifications

Platform Availability
gridMathematica is available for all common Linux and Unix systems, Windows, and Mac OS X. For more information, see the supported platforms for Mathematica. Computers in the cluster do not have to run the same operating system. For a cluster consisting of separate computers, the machines need to be able to communicate with each other over TCP/IP.

Examples of Hardware for gridMathematica
 

  • Pentium II or compatible
  • Apple Xserve
  • HP AlphaServer
  • HP Integrity
  • HP 9000
  • IBM eServer p5
  • Orion Multisystems DT-12/DS-96
  • SGI Altix
  • SGI Origin
  • Sun Fire

gridMathematica also supports homogeneous and mixed Windows, Linux, Unix, and Mac OS X clusters.

Networks

  • Required: TCP/IP
  • Supported: Ethernet, Gigabit Ethernet, and Firewire (IEEE 1394)
  • Also supported: Myrinet, Infiniband, Quadratrics

gridMathematica uses standard TCP/IP to communicate between nodes, but it is independent of the actual network infrastructure. As a result, gridMathematica can take advantage of infrastructures such as Myrinet and fiber-based networks to increase bandwidth and decrease latency during high-communication computations over the more common Ethernet and copper-based networks.

Other Requirements
You need to be able to perform remote execution to launch Mathematica on computers in the cluster. Standard ways of doing this are through RSH, REXEC, or SSH.

Components
Mathematica, Parallel Computing Toolkit, MathLM

Licensing
Each gridMathematica unit comes with eight kernel processes, one front-end process, one Parallel Computing Toolkit, and one MathLM license manager. One MathLM is needed for each cluster or grid.

Q&A


Technology
 
Q: Can I use gridMathematica for the same calculations for which I use Mathematica?
  Yes, you can. Since gridMathematica uses Mathematica as its primary component, it has access to Mathematica's functionality. In addition, gridMathematica has a few that are not included with Mathematica.
   
Q: What kind of computations profit most from gridMathematica?
  Computations that can be broken into smaller pieces and that don't involve lots of communication overhead profit most. Examples of such computations include running many scenarios of the same computation such as random number generation (e.g., Monte Carlo) or perturbation problems and doing independent searches of large numbers of parameter spaces or different cases. The speed gains are also dependent on the speed of your communication system.
   
Q: Will gridMathematica make all of my Mathematica computations faster?
  Not all Mathematica commands can be broken up into pieces capable of being distributed across a grid. Commands such as Integrate, Solve, and NDSolve can be evaluated only on a single kernel. However, some commands, such as Map and Table, have parallel equivalents, such as ParallelMap and ParallelTable respectively. Also, if a series of commands needs to be carried out, rather than wait for one kernel to finish all of them, a set of separate kernels can handle these tasks faster by having each kernel handle one of the commands. ParallelEvaluate will try to parallelize an operation automatically, assuming it's possible.
   
Q: How much faster will my programs run using gridMathematica compared to Mathematica?
  The speedup depends on the type of calculation being performed, the efficiency of the algorithm, and the speed of your hardware and communication. Since this will vary on a case-by-case basis, it is not possible to provide a number that would be true in all circumstances. In a best-case scenario, the speedup would be linear; in other words, if you double the number of CPUs the speed doubles. In most real-world cases there is communication latency, and many problems do not parallelize well, so the speedup will be less than linear. If a program is well written, runs on fast hardware with low communication latency, and parallelizes well, linear speedups are possible.
   
Q: Will application packages work with gridMathematica?
  Yes, they will, and you will need to have one copy of the application package per process.
   
Q: Can I connect gridMathematica to a database?
  Yes, you can. gridMathematica leverages Mathematica's built-in support for universal database connectivity.
   
Q: On what types of grids and clusters will gridMathematica run?
  gridMathematica is supported on any platform on which Mathematica is supported, including multiple-processor machines, clusters, and grids. If there are several distributed computers, they also need to be able to communicate with each other via TCP/IP.
   
Q: On which platforms does gridMathematica support 64-bit processing?
  gridMathematica supports 64-bit processing on all major platforms. For a complete list, see the platform support page.
   
Q: What is the performance overhead of gridMathematica?
  The main overhead is communication overhead, and it strongly depends on the communication fabric you have for your grid. A shared-memory parallel machine has significantly lower communication overhead than a distributed-memory, networked set of machines.
   
Q: Is gridMathematica using MPI?
  No, it isn't. gridMathematica offers many of the same features that were the goals of the MPI developers: it runs transparently on heterogeneous clusters, and it provides a virtual computing model that hides architectural differences. However, the messaging interface is optimized for communications between Mathematica kernels and other programs that communicate via the MathLink API so as to avoid a requirement for large amounts of extra information with each message and the need for complex encoding or decoding of message headers.
   
Q: What happens if a kernel fails during the course of an evaluation?
  gridMathematica provides recovery methods that redistribute remaining processes in the event that a kernel failure occurs. Network issues or software issues can cause this failure, and any results that were expected from the failed kernel will be lost.
   
Q: Does gridMathematica run faster if I use more processors?
  It can run faster, but the speed improvement depends on factors such as the efficiency of your algorithm and the network communication speed.
   
Q: To what tests has gridMathematica been subjected?
  Since gridMathematica uses Mathematica as its primary component, gridMathematica and Mathematica functionality have been tested to the same extent.
   
Q: Does gridMathematica work on a system using Myrinet, Infiniband, or Quadratics?
  Yes, it does. These technologies can use TCP/IP, which provides the communication services needed for gridMathematica to function.
   
Q: What is the relationship between gridMathematica and Parallel Computing Toolkit?
  gridMathematica is a bundling of Network Mathematica and Parallel Computing Toolkit and so it provides a complete solution for people without Mathematica already installed. Parallel Computing Toolkit is an application package that allows current Mathematica or Network Mathematica users to perform computations in parallel. This requires that users already have Mathematica or Network Mathematica installed.
   

Deployment and Administration

 
Q: How many gridMathematica increments should I purchase to provide efficient operation?
  gridMathematica is completely flexible in that it does not assume that a certain number of processes are available. Developers of parallel processing programs typically write their code so that it is tailored to the environment. If they have access to an eight-node cluster, they can write their code to use that number of nodes. The same is true for larger clusters. The high-level commands such as RemoteEvaluate allow the programmer to manually specify which node handles a particular evaluation. On the other hand, ParallelMap automatically maps an expression onto a list of other expressions in parallel, regardless of the number of nodes. The method used by the programmer determines how many nodes are desirable.
   
Q: What network security model is used by gridMathematica?
  gridMathematica does not implement any security model. However, with mechanisms such as SSH, gridMathematica can be set up to communicate via whatever security models those mechanisms have in place. Details for doing this may vary depending on the platform. If a remote kernel is launched using the SSH command (available on most Unix/Linux platforms and Mac OS X), then communication between the kernels will be as secure as SSH allows.
   
Q: Does gridMathematica work with MathLM and MonitorLM?
  gridMathematica comes with MathLM, the license manager provided by Wolfram Research. MonitorLM is also provided and allows an administrator to monitor the activity of the license manager. Both applications work fine with gridMathematica.
   
Q: Do I need to dedicate one computer for running MathLM?
  Any computer capable of communicating with the cluster can be used to run MathLM. However, this machine must be able to serve passwords only to machines covered under the gridMathematica license. It cannot be used to serve passwords to machines that may exist under a separate Mathematica license.
   
Q: Do I have to install Mathematica on each node?
  You don't necessarily have to. Mathematica needs to be accessible to every node on your cluster, but this can be achieved either by installing Mathematica on each node or by using a file server that allows each node to access Mathematica.
   

Licensing

 
Q: How are licenses handled for gridMathematica?
  Just as in Network Mathematica, gridMathematica uses MathLM, Wolfram Research's license-management tool for controlling and distributing Mathematica network processes. This means that you do not need separate passwords for each node in the cluster. Once MathLM is running, it will automatically distribute passwords to all of the machines on the cluster. gridMathematica can be purchased in increments of eight processes. Depending on how many increments are purchased, MathLM will be able to handle up to that many processes on your cluster. For example, two increments of gridMathematica provide up to 16 separate Mathematica processes, and MathLM will be able to automatically serve up to 16 passwords.
   
Q: Can I add gridMathematica to my current purchase program?
  Yes, you can.
   
Q: If I currently own Mathematica, can I upgrade to gridMathematica?
  Usually you can't. However, discount programs can sometimes be provided depending on the type of Mathematica license you have. Contact us for more information.
   
Q: Can I share gridMathematica and Network Mathematica license keys?
  No, you can't. The license keys for gridMathematica are different from those for Network Mathematica.
   
Q: Can I use Mathematica application packages with gridMathematica?
  Yes, you can, but you will need to purchase one copy of the application package for each grid node.
   
Q: How many users can use my cluster simultaneously?
  Each gridMathematica comes with one controlling process, so that means you can have one user per gridMathematica.
   
Q: I am a student. How can I get a copy of gridMathematica?
  Student pricing is not available for gridMathematica; however, you may want to see if your school or university has a gridMathematica license that you can access.
   
Q: If I currently own an older version of gridMathematica, can I upgrade to the most recent version?
  Currently, you can upgrade from any earlier version of gridMathematica. Contact us for details.
   
Q: Should I purchase gridMathematica or Parallel Computing Toolkit?
  gridMathematica is intended for individuals who don't currently own Mathematica and so it includes everything necessary, including Mathematica. If you already own Network Mathematica, then all you need is a network license for Parallel Computing Toolkit. gridMathematica is also useful for organizations that wish to add dedicated parallel programming capability to their existing license.
   

Support and Training

 
Q: Does Wolfram Research offer a service contract for gridMathematica?
  Yes, it does. Premier Service is available for gridMathematica.
   
Q: Is gridMathematica consulting available?
  Yes, it is. Please see the list of accredited Mathematica consultants for details and contact information.
   
Q: Does Wolfram Research offer gridMathematica training?
  Yes, it does. Current courses that are relevant for anyone interested in parallel computing with Mathematica and gridMathematica include M245: Parallel Computation and M345: Grid Computing with Mathematica. In addition, a host of other courses are offered pertaining to general Mathematica programming and use.

 

FURTHER INFORMATION

Mathematica Documentation
 

  Mathematica

 
Parallel Computing Documentation
 
  Parallel Computing Toolkit

 
Installation and Administration Documentation
 
  Installing gridMathematica 2
  System Administration Guide

 
Additional Information
 
  Technical Support FAQs

 
See Also
 
  Mathematica Personal Grid Edition
 

 


Mathematica products available from Polyhedron Software      Wolfram Mathematica Certified Reseller