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.
Can it be used to emulate the universe using a cellular automaton?
Be wary of any facts that confirm your opinion.
- 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.
already have their own cluster, and grid systems? This should mean some small junior college or state college w/o tons of government research grants may be able to even the playing field. With the reduction of cost, it begins to make it easier for smaller research labs and schools to build grids. I remember assisting graduates studens prep processes so that it could be sent to UCSD's supercomputer. Now more universities will have their own system and be able to utilize their computer labs as grids at night. Atleast in theory.
How to the free solutions, if they exist, compare with their (darned expensive) commercial bretheren in general, and in particular is there anything like grid support?
## W.Finlay McWalter ## http://www.mcwalter.org ##
Although this would be expensive, couldn't Wolfram set up a subscription service? Students who need temporary access to the power of Mathematica (I'm thinking of doctoral theses) could but computing time.
On an unrelated note, Integrals.com is one of the most useful high school math sites ever (up with Ask Dr. Math. It ended two weeks of misery by telling integral(sqrt(1+x^-4)dx) is not an elementary function.
It is quite a bit annoying when people say "Linux and Unix". Usually they mean "Linux and Solaris", or maybe "Linux, Solaris and HP", or (increasingly often, as the business world funnels itself down to only one or two Unixlike systems... ahhh, how great monopolies are born!) "Red Hat Linux for x86 and Solaris for SPARC".
It would be simpler-- and more accurate-- to just list the actual operating systems it's available for.
And then there's that whole thing about 'Unix'. Technically, as most of us know, the name 'Unix' only applies to whomever owns the trademarked name 'Unix' at the moment (first AT&T, and then I seem to recall control passed to Novell, and to SCO, at various points in history? Can someone provide a full history?), but most Unix admins just consider any "Unixlike" system to be Unix-- and that includes Linux.
If you don't know the actual OS names, you could always use "...will be available for several Unixlike systems, including Mac OS X, Linux, and Solaris", or whatnot...
Honey, I shrunk the Cygwin
I've used this. Unfortunately it only has around 70% of the functionality of other packages such as matlab and of those functions it has, only around 50% of them are of a decent usable quality. The performance of the Unix version is also rather poor, being around 60% that of the Windows version.
No matter how much horsepower I put behind Mathematica, it still gives me errors when I divide by zero. My employer didn't spend zillions of dollars on SGI Origins just to get errors. Can't Wolfram include some sort of Clippy helper?
Trolling is a art,
wonder if i'll be able to get a $130 gridMathematica for Students version. :-)
You can get a copy of Numerical Python and run PyPVM or PyMPI with it for distributed computing.
I think for numerical computation, that's technically actually a better environment than Mathematica. And, while I'm not usually one to harp on the fact that free software also doesn't cost money, given the steep price of Mathematica, in this case, the money saving aspect really does matter as we..
Cool. What I really want to have is a distributed solver for dynamic simulations. But a dream scenario would be to do the setup, pre- and postprocessing in any simulation program (like ADAMS, LMS or even block-scheme based like EASY5 or AMESIM or good old Simulink). For the solving part, however, I'd like to just export the equation sets (implicit or explicit) and let a distributed solver take care of this. As I understand, it could be possible to use the Mathematica solver as it exists today. Maybe not very efficiently though, but this could be compensated by quantity. I would love to install such baby in our company...
Excellence: Moderate (mostly affected by comments on your karma)
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).
Oops--I meant:
Maxima is non-proprietary, but you probably wouldn't want to use it for programming either... you can drop into CommonLisp for programming when you have to in Maxima.
It is good that atleast mathematica has altered their licensing methods a bit. Maybe this licensing scheme could be used also when utilizing mathematica over 3rd party grid architecture. If someone from Mathematica is listening, I don't mind you contacting me. :)
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
Mathematica
LPL
AMPL
I code it all myself in assembler, thank you very much!
Fingers and toes
Another method
CowboyNeal works it out for me on his abacus
A feeling of having made the same mistake before: Deja Foobar
Don't get me wrong, I absolutely love Mathematica, but if your numerical problem is so huge that it benefits greatly from running on a cluster, then you shouldn't be doing it in Mathematica in the first place. Nothing can match custom written Fortran, C, or C++ code for performance and efficient use of memory (Mathematica is a huge memory hog). Non-numerical problems, on the other hand, might benefit greatly from this.
All is Number -Pythagoras.
Now I can get my SGI, Sun, and other UNIX boxes in my house to do top secret nuclear computations!!
...
Seriously though, alone those machines can only do so much
I burned karma on this post, eh? Well, at least I thought it was funny. Sometimes that is what counts.
How to Download YouTube Videos
... besides Octave you might try the Euro-centric Scilab (http://www-rocq.inria.fr/scilab/). It is very close to Matlab in abilities, already has provision for parallel processing (via PVM), and has a _very_ supportive user group.
Honestly though, I've tried just about everything that's out there in OSS. You can cobble together things with C++ libraries, Python/NumPy, etc. But you pay big bucks because the commercial software brings it together seamlessly and, generally, mindlessly.
Case in point: I got some biochem students running FFT's and principal component analysis w/graphic output in less than half an hour (using Matlab). Didn't have to explain about syntax, wrappers, bindings, etc. Just fft(...) and plot(...). That's worth $1000 because it got them interested. When their problems get more complex than Matlab can handle simply, they'll _want_ to learn the other stuff.
"Consensus" in science is _always_ a political construct.
Well, the three big maths/numerics platforms (Mathematica, Matlab and Maple) are all available for Linux, but you do, of course, have to pay for them :-)
I think the moral of the story here is that not all Linux software is free (either in cost, or in Freedom). And that's OK.
There are many companies that *sell* products or services who are putting a lot of money (read time, testing, development, advocacy etc.) into the open source community, and this will only continue if they make money from the community.
Of course, we'd all love it if we could get math/numerical software of the calibre of the above systems for free, but the truth is that we can't (yet).
There are a couple of open source equivalents (Octave and Maxima are two exaples), but their quality is far from that of the above products.
(That is not to say that all open source software is of lesser quality than 'commercial' software.)
One of the great things about the open source community is that there is a lot of great software that is free (in both senses), but there is (increasingly) a range of 'commercial' software that is available.
So one can be a casual user of Octave and get by without paying for an expensive license, but for those of us who need a product of a higher quality, with printed manuals and technical support (etc.), it is great that this software is available if we want to spend our money on it. And, of course, that we have a broad range of choices.
"The noble art of losing face will one day save the human race"---Hans Blix
I don't know about Zilla, but as for an easy way to cluster Macs, check out Appleseed http://exodus.physics.ucla.edu/appleseed/appleseed .html
http://en.wikipedia.org/wiki/Signature_bloc
Could someone write a Mathematica program to do DiVX encoding and get free clustering from this product? mmmmm.... movies...
This too shall pass.
It is a shame that Mathematica is so expensive, and so slow for numerical calculations -- it is great for prototyping and tinkering, but lousy for serious computations compared to code written in C(++) or Fortran.
I have love/hate relationship with Mathematica -- I have used it for years, and have writtens lots of purpose-built programs in it to support my research, but this "legacy" code makes it hard for me to switch to anything else.
Consequently, I am forced to pay Wolfram's industry-leading prices for the program and put up with their slow-as-molasses approach to bug fixing. For instance, a set of hypergeometric integrals were broken for at least 18 months, and it seriously screwed up the work of at least one colleauge of mine -- and if the source was available we could have fixed it ourselves.
Consequently, I would love to see (and would be keen to contribute to) an open source clone of Mathematica, or at least something that could parse mathematica code into a form understandable by an open source package like Maxima.
However given Wolfram's trigger happy approach to lawsuits I rate the chances of this succeeding to be fairly small -- which is ironic, since Wolfram's recent book fails to acknowledge a lot of prior art, and he was successfully sued by his co-investors for essentially asset-stripping his own company in the early nineties.
Ah well. Back to work.
It seems like this attempt to market something as "gridMathematica" is really a little deceiving. In reality it is more distributed Mathematica. Grids involve virtual organizations, authentication, etc. For more information see Ian Foster, Carl Kesselman, and Steve Tuecke's paper The Anatomy of the Grid.
There are other packages which do very similar things and have a for a long time, such as NetSolve and Ninf which allow you to do cool stuff with most any application that needs computational power.
There is also a Commodity Grid Kit (standard interface to Globus services) for Matlab that should be out soon, more info can be found here.
So for now, I'll just consider this more someone wanting to capitalize on the hype around Grids at SC2002 than anything else. Unless I'm missing something obvious.
My Slashdot account is old enough to drink...
...are a lot like the problems and advantages of Microsoft's products. Mathematica is slow and bloated, but it's also easy and trusted. There are a ton of undergrads who know Mathematica and like it because of the symbolic interface. Any open source competitor needs to have a symbolic interface on par with Mathematica to compete because one of the reasons that gridMathematica may take off is precisely because there will be a lot of undergrads coming to grad school who won't want to program C++ or using the numerical Python module and just want to click sigma and do an infinite sum. Or, in this case, come up with something complicated and click "Solve on the grid" and it will Mathemagically do it, albeit slowly. As someone else said, gridMathematica could reduce a lot of the trouble for smaller universities to get a high powered computing set up, even if there is a ding in speed.
I think, pedagogically, it is actually better to start making your students program, say with VPython (which is easy as pie) and looking through numerical methods books to find a needed numerical method because it really dissects the guts of a math or physics problem better. You have to think about the error term, step sizes, singularities, processing time, etc, rather than just clicking solve in Mathematica.
But that doesn't matter: the more people are used to the Mathematica interface, the more this will catch on.
Fight the national One-Strike law!
Online citizen journalism from the inner city: The View From The Ground
per processor!
How is this different from standard mathematica (which already supports multiple kernels) and the pre-existing paralellization add-on?
I've had this sig for three days.
I love you people. And here... I thought having breasts made me superior.
There's a tradeoff, and in most cases, hardware is cheaper than labor. Let's say that someone earns $60,000 a year as a coder. After all of the costs to the employer, it will cost around $90,000 to $100,000 to keep them employed for a year.
That means that if the coder spends two weeks writing his program to do the math more quickly, it cost the employer $4,000 - in addition to the opportunity costs.
Now, given that you can pick up a 2 GHz-class machine for $500, you're presented with another option: You could just use Mathematica, and let it run across 8 machines in parallel.
Which way makes more sense? It depends on the situation. Let's say your coder is in great demand for other projects - the hardware route might make more sense. If he's sitting around anyway, you might as well put him to work. There are a lot of factors which can tip the scales one way or another.
steve
Oh, you're not stuck, you're just unable to let go of the onion rings.
Gnu Octave. Easy as 'apt-get install octave'.
Whole classes (indeed, whole doctorates) in CS departments center around the creation of algorithms, making O(n^2) level problems into O(logN) problems and so forth. there's a real ar to making your formulae efficient, and the pressure for that art is processor time.
When you only have one processor, the difference between a 20 minute calculation and a 2 day calculation matters.
My worry here is that if whole university clusters were opened up, so even an inefficient O(n^3) problem ran in reasonable time, it sucks up an inordinately large amount of processing power, slowing down the entire organization, while the student running that problem has no idea that with some better written mathematicode they could solve the problem in O(n) time, and even if they did realize, they have little reason to care, when the problem gets solved reasonably fast anyhow, regardless of the cumulative effect on all the other processes...
I'd be fascinated to know if there's any kind of accountability, or better yet, optimizations in Mathematica that can spot common inefficiencies and suggest either a more efficient way to handle a problem, or at least postulate a theorhetical O() level compared to a function's actual level.
A lot of computing power is a good thing in principle, yet I wonder how much faster Word on my G4 would be if it was designed to work on my old 68000.
In summary: extra cycles are a currency that is far too often traded in for lazy programming instead of increased performance.
Kevin Fox
Distributed and grid computing is older than that. PVM itself, for example, came out in 1989, and people were using networks of workstations for large computations before that.
Keep in mind that scientific computing, workstations, object-oriented programming, GUIs, GUI designers, and similar ideas predate NeXT and Apple by a decade, in some cases, many decades. While Jobs did an excellent job selecting and integrating good, pre-existing technologies into the NeXT, I can't think of a single case where they developed something really new (but if you can, please share it).
There is a reason they are charging you only $130 for the student version. It's like a drug: after you have spent many hours getting familiar with Mathematica, you will then buy the full version for $1880 rather than spend more time learning another system. Matlab is even worse: last I checked, the full version costs upwards of $3000 in any reasonable configuration. And you'll end up paying that every time you change jobs. Matlab and Mathematica packaging may be convenient, but they are not technically that much better than the free alternatives to justify that kind of hassle and expense (in fact, I would argue that they are technically worse than the free alternatives, but that's a different argument).
Do yourself a favor and don't invest much time in "student versions". View the use of Mathematica and Matlab in the classroom for what it is: a carefully orchestrated marketing program designed to get students hooked. Spend your time learning something that is open and that you can add to your personal toolbox without having to pay some company large amounts of money again and again.
My worry here is that if whole university clusters were opened up, so even an inefficient O(n^3) problem ran in reasonable time, it sucks up an inordinately large amount of processing power, slowing down the entire organization, while the student running that problem has no idea that with some better written mathematicode they could solve the problem in O(n) time,
[...]
In summary: extra cycles are a currency that is far too often traded in for lazy programming instead of increased performance.
Worst case complexity (which is what "an O(n^3) problem" usually refers to) has little to do with how long programs take to run. What matters is average case complexity on representative distributions of problem instances.
Now, what about complexity? Well, a lazily implemented algorithm with average case complexity O(n) will beat a highly optimized algorithm with average case complexity O(n^3) easily when problems get larger. And you need to keep implementations of algorithms with better complexity simpler because the algorithms tend to be more complex. The irony is that a lot of software today is inefficient and bloated because the programmers spent a lot of time optimizing tiny little pieces and creating software that is so complex and difficult to maintain that they can't fix the big picture (Microsoft Office, KDE, Gnome, etc. come to mind).
Furthermore, for many problems, programmer time is much more valuable than computer time. Even if it takes 10 times as long to run or 10 times as many CPUs, an inefficient implementation is often preferable if it takes 1/2 as long to implement. And the simpler and lazier you keep the implementation, the less likely you are to introduce bugs. Students find that out when they miss the problem set deadline trying to hand-optimize and chase down bugs they introduced during optimization.
In short, your attitude is probably at the root of a lot of bugs in today's software. Programmers need to get lazier for software to improve, and, as a bonus, lazily written software will often run faster, too.
Some of the main strengths of Mathematica are its symbolic algebra and pattern matching capabilities. These unfortunately also work rather slow.
Here is where gridMathematica could come as a real boon. At least the kind of problems I have worked on (Feynman diagram calculations), and I suspect many others, are trivially parallelizable; what previously took days to complete might now be done in hours, depending on the number of machines at your disposal.
He claims to have invented a new kind of prose for the book, and one of the symptoms of this claim is that he constantly refers to the discoveries of his book or his book's discoveries.
My impression of the book: If he were better at collaborating he'd be much more productive. The same is no doubt true of Mathematica.
Maybe we should all write him an email: "Hey dude you're a genius!" Maybe then he'd open source Mathematica. He definitely want Mathematica to be the lingua france of math, but I don't think money is the reason.
I bragged about my Karma at a job interview but I didn't get the job.
So you think that people working in their spare time can create a decent Matlab clone. Do you even know what Matlab is, or what it is truly capable of?
There's a reason why Matlab costs a fortune. Can Octave simulate a complete end-to-end 802.11b system? Can it simulate an automotive drivetrain, or better yet make changes to a dSPACE ECU development module on the fly?
With OSS, you get whatever some group of hippies decided to put down on paper. With commercial software, you get quality engineering software.