gridMathematica Announced
simpl3x writes "Mathematica for grids was announced at Comdex. It offers support for the usual platforms--Windows, OS X, Linux, and Unix--and offers the ability to use heterogeneous OSes. I haven't used the product in years, but cool nonetheless. Does an off-the-shelf software package, which is scalable as this is provide competition to custom packages--is it easier to add machines than develop custom programs?" And just when you thought Comdex was good and dead.
- Support for multiprocessor machines, heterogeneous networks, LAN, and WAN
- Support for scheduling of virtual processes or explicit distribution to available processors
- Support for virtual shared memory
- Support for synchronization, locking, and latency hiding
It looks like they took a few pages from the various distributed projects (United Devices, distributed.net). I can see this being used for universities and some research and scientific institutions, but still, with processor power today, even Mathematica representations of 10-dimensional Calabi-Yau spaces can be rendered in minutes.woof.
- Windows 95/98/Me/NT/2000/XP
- Mac OS X
- Mac OS 8.1 or later
- Linux (Redhat 7.1 or equivalent) or later
- PowerPC Linux (Yellow Dog 2.1 equivalent or later)
- AlphaLinux (Redhat 6.2 or equivalent) or later
- Solaris 8 or later
- Compaq Tru64 Unix 5.1 or later
- HP-RISC HP-UX 11.00 or later
- IBM RS/6000 AIX 5.1 or later
- SGI IRIX 6.2 or later
If the call is for "Redhat 7.1 or equivalent", I can't think of any reason that a distro with kernel 2.4.2 or later wouldn't work.woof.
Probably the most advanced open source project competing with Mathematica et. al. is Maxima. It's a spinoff of Macsyma, which was the first symbolic integrator. Originally developed by MIT, it's got a lot of features the other programs have, and a few they don't. It's got some bugs, but is under very active development.
It's major weaknesses currently are in the GUI and documentation department. TeXmacs can do a decent job of providing a nice interface, but it still won't measure up to Mathematica, which can handle 2D input and output. The default interface is a Tcl/Tk program, which is OK but pretty basic. My prefered way to use Maxima is through emacs - it has a very good emacs mode called emaxima.
As far as grid support goes I'm not aware of anything. The project isn't really to that stage - it's currently working towards a stable 6.0 release which fixes all known mathematical bugs. Then comes feature extensions and new GUI work. That would probably be the point to start thinking about grid support - basically someone would have to decide they wanted it enough to impliment it. The usual open source thing.
"I object to doing things that computers can do." -- Olin Shivers, lispers.org
For interactive symbolic manipulation, Maxima is an excellent open-source alternative. For numerical applications, Numerical Python and its associated packages beat both Matlab and Mathematica in my opinion. For 3D visualization, you can get VTK, which also has Python bindings.
Maxima is also used occasionally as a rapid prototyping language, but it's proprietary and it has a lot of rough edges. You are probably better off using one of a number of open languages with similar features, like Scheme, OCAML, SML, Prolog, or Haskell.
Don't forget about C++, however. In many ways, C++ nowadays allows you to write numerical code more naturally than any of these other languages (yes, better than Matlab and Mathematica), it has by far the best libraries available for it, and it gives you excellent performance. And you can even do symbolic mathematics in C++, with the right libraries (though it's not interactive, of course).
At Texas A&M, one of the local CS students was doing his Thesis on some sort of large math problem in HRBB. He had two choices for writing the code to provide the solution. He could either write it in Fortran and use the Cray Y-MP we had (which, 10 years ago, was a fairly big deal). OR, he could use a high level language and use Zilla and our NeXT lab to solve it. He chose the second.
Amazing to see - you'd tell the Cubes to run Zilla in the background, feed it the problem, and away you go. We had 6 computers in the lab, and you could tell he was working on it when you first logged in - it would be a bit sluggish. IIRC, he later took over the NeXT lab downstairs, which had 30 NeXT "pizza boxes". Not bad, especially for 1991-1992.
And this paper says:
Parallelization: with a NeXTstep application called Zilla, multiple Mathematica sessions may be invoked on networks of NeXT computers to allow the simultaneous solution of different parts of a large problem.
BTW: anyone happen to know if they're doing Zilla on OS X? I remember reading something about an easy way to cluster Macs for performance, but I forget the details. It just involved running a client on each workstation.
"Sometimes a woman is a kind of religion, she can save your soul & set you free from all your sins" - Bad Examples