
Jon Harrop wrote:
If you write a simple, numerically-intensive program that runs in the Mathematica rewriter then its performance is about 100-1,000x slower than that of a native-code compiled language like Haskell. Mathematica is often 30x slower than interpreted OCaml bytecode.
Is this before or after compiling the Mathematica code?
Incidentally, when I try to recompile with optimizations turned on, GHC refuses to work:
$ ghc htrace.hs -o htrace $ ghc -O2 htrace.hs -o htrace compilation IS NOT required
I must delete the target or edit the source to get it to recompile. I assume this is a known bug?
This one surprised me... I'm pretty sure I tried recompiling with -O2 and it recompiled everything. Maybe I imagined it?
Right, but that is just calling an internal function that is written in C. Provided you only ever call a few library functions, performance will be excellent in Mathematica. But when you cannot phrase your program in terms of the built-in library functions, performance is terrible and this is when everyone reaches for a more efficient tool.
I don't know, I thought one of the big advantages of Mathematica was supposed to be that it can transform problems into the most efficiently solvable form, select between multiple algorithms, etc.
To me, performance is way down on the list of things that make Mathematica great. Integrated graphics is probably the main benefit. I mostly use MMA as a glorified graph plotter.
And I mostly use it to do insane things like give me parametric solutions to giant polynomials and so forth... ;-)