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.
- 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.
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)
First of all, what are u referring to when u say that u have used "this". Is this Mathematica or gridMathematica? I am assuming its mathematica. In that case, I would say that u are highly mislead or have not used the product in a long time. I have used all three, and have found Mathematica most suitable for the kind of work I do, namely, sybolic manipulation. Matlab, on the other hand, is excellent for number crunching. Claiming that one is better that the other is a statement similar to saying Redhat is better that Debian .... or something similar.
While Matlab is more efficient, Mathematica, certainly, has a more usable interface(more eyecandy - which is responsible for slowing it down a bit).
While talking about functionality, i have found that Mathematica is the most functional amongst all, for me, with a very large number of inbuilt functions that do the job extremely well.(here come the flames). Also the unix version actually works more efficiently on my system than windows.
I dont know where are u pulling those numbers out of. But it seems u just made them up.
-- Reality is just an extended dream.
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
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
I've seen a menu done in AutoCAD and a 3d mechanical drawing done in photoshop - both to quite hysterical results.
Wolfram know that there are _lots_ of users who'd much rather persuade their employer/institution to buy lots of gridMathematica licences than have they themselves switch to working in Fortran.
## W.Finlay McWalter ## http://www.mcwalter.org ##
... 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
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...
That's not the optimal method of proceding.
A video codec, such as DivX, typically utilises some form of transformation, be it FFT, IDCT or some form of wavelet transform, then quantisation. Whilst you could split that into separate sections, it makes more sense to operate at a higher level - i.e. to split your video stream into chunks and then send each chunk off to a node, to compress in the usual fashion.
The advantages of this approach is that the codec only need be written once, and given that that's a hard part, this is a good thing. It also means that the cluster interface is codec neutral, thus no particular work need be done on the part of the codec developers.
transcode has such a mode.
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.
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.
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.