Blending the Symbolic and Numeric
Each release of Mathematica has been centered on a major theme. Germundsson says, "Version 1 was the first product that integrated all these areas. Version 3 centered on adding the interactive notebook interfaces. With Version 5 the focus has been on large-scale numerics, advanced algorithms. The scope and scalability of algorithms."
Until version 5, Mathematica was the mathematics software of choice for symbolics and minor numeric exercises, while rival program MatLab was what people turned to for heavy number crunching needs. The developers at Wolfram Research worked to narrow the gap between Mathematica's symbolic and numeric abilities. Says Germundsson, "There are costs involved in switching between different programs, costs in time and the possibility of errors. Now you can solve really big problems in mathematics - half a million or a million variable linear equations - without leaving the program."
The improvements to Mathematica's numerics are due to Version 5's automatic algorithm selection and other technologies lumped under the catchall term giganumerics. When solving numeric problems such as differential equations, Mathematica puts the problem in symbolic terms, finds the best algorithm to deploy to arrive at an accurate answer quickly, and tracks the solution's progress. If, in midcalculation, it determines that a different algorithm will work better, the program can switch methods to speed up results.
Mathematicians, contrary to expectations, are not the most representative users of the program, which can be partially explained by the comparative paucity of mathematicians to other kinds of researchers. There are over 2 million users, a rough estimate given the number of users that might be using individual licenses at universities. Engineers compose the largest segment of Mathematica users, followed by researchers in physics and computer science. Then come the mathematicians, and smaller groups including representatives of life sciences - particularly medical researchers - and business - notably financial analysts.
Wolfram Research estimates that its customers are split roughly in half between academic and commercial users. In academia, the program is used to help run classes or put through its paces in research departments. Commercial users tend to reside in the research end of companies or the government. Government labs are a large component of Mathematica customers, places like Los Alamos where the main product is research. Researchers in companies use Mathematica to develop tools for workers in other areas of the company to apply.
Germundsson says that Mathematica's reach extends beyond its immediate users. "In finance, a company's researchers may use Mathematica to create a tool for the traders to use in their analysis. The traders don't care where the tool came from, probably don't know they're using a Mathematica creation, just that it works."
Mathematica has expanded beyond its central software program. There are 35 application packages that extend Mathematica in different directions, each pitched at the requirements of subsets of users: financial for those working with derivatives, control for those working with control systems, optica for those doing optical research. An add-on brings Mathematica capabilities to the Web, WebMathematica, for those who want live computation abilities on their website. GridMathematica offers users a way to distribute Mathematica over a grid or cluster, including those running on different platforms at once.
The most recent change for Mathematica was the optimization of the program for 64-bit computing. A version of Mathematica 5 optimized for the AMD64 architecture was released earlier this year, for use with Linux. The choice of operating systems was a reflection on who'd ready for the change, says Germundsson. "The big barrier is the need to address more memory. The commercial OSes can't deal with 64-bit addressing the way Unix and Linux can. Windows and Mac aren't ready yet."
Germundsson says that the release was necessary given the kinds of problems researchers are working on, especially those involving large data sets that are greater than the 4GB limit imposed by 32-bit processors. "With the 64-bit computing debate...so many people have been talking about speed. The issue isn't speed. The real issue is being able to access and use more memory. For big number computation, 64-bit makes a difference. With raw, basic number crunching, like with matrices, 64-bit doesn't make a big difference."
Much of the discussion about 64-bit computing has involved its usefulness. Germundsson says that, at least in technical computing, where a good deal of the work is done on desktops and workstations, the need is making itself known. "That people are hitting the barriers is good," Germundsson says. "It shows we've evolved."