4 ms·
Any HPC people would care to enlighten us ignoramuses on how the different frameworks for scientific computing stack up: matlab, octave, mathematica, gsl, nag,
by fitzwatermellow 11y ago
Any HPC people would care to enlighten us ignoramuses on how the different frameworks for scientific computing stack up: matlab, octave, mathematica, gsl, nag, etc... Or is everyone just defaulting to Python and R now ;)
- gsteinb88 11y agoGSL is closer to something like BLAS or LAPACK[1] -- it's a library that provides tested/reliable/optimized implementations of commonly used functions in scientific computing. The other software you listed is more user facing--and commonly provides wrappers around libraries like GSL. For instance, MATLAB relies heavily on BLAS & LAPACK, as does numpy; I'm less familiar with whether GSL is called from any well known packages other than Octave, but there are definitely bindings for Python (and maybe R? I don't write any R though) [1] Respectively, "Basic Linear Algebra Subsystem" and "Linear Algebra PACKage"
- gh02t 11y ago> GSL is called from any well known packages other than Octave I see GSL used a lot actually. Mostly as a component of big scientific projects, but it's not as high-profile because it tends to be in a similar position to stuff like BLAS - really common but not something many people deal with directly.
- jjoonathan 11y agoMathematica is an outlier in that its API revolves around expressions rather than n-grids of numbers. In theory this makes almost no difference at all, but in practice it makes for a completely different API "feel" and experience. In Mathematica you invoke "grownup" numerics in the exact same way that you invoke "kiddie" numerics and it makes you much more likely to go with the "good" method rather than the "good enough" method. Contrast to matlab (and everything else) where I see people using constant-size grids and Euler's method all the time simply because the language/framework has arbitrarily decided to make them easier to implement rather than because they're actually appropriate for the underlying domain or boundary conditions. I'd really like to see an open source competitor, but SAGE just isn't there yet (or wasn't there last time I looked, which reminds me that it's been a few years and that I should look again).