Lux, James P
james.p.lux at jpl.nasa.gov
Sun Dec 28 10:28:59 PST 2008
On 12/28/08 7:17 AM, "Jeff Layton" <laytonjb at att.net> wrote:
> I think I understand why people want the toolboxes - it makes coding easy.
> From what I've seen people then stay with the "prototype" code and never move
> to a compiled language such as C or Fortran. It's been a long, long time, but
> I did all of my code prototyping for my PhD in Matlab and rewrote it in
> Fortran. I was easily able to get a 10x speedup. I guess people don't like 10x
> improvements in performance any more :)
Bearing in mind Hamming's admonition "the purpose of computing is insight,
not numbers", it could well be that for a "research" application (contrasted
with production) you don't need the 10x speedup. If the slow, easy to code,
version gives you the answers you need in reasonable time, why change.
OTOH, if your dissertation problem requires computation that takes months in
Matlab, you've got two paths (at least):
1) spend some time (less than months) to learn how to code in a faster
2) reframe your problem so it doesn't require the computation (and then
convince your committee of this, which could take longer than just doing the
If you're interested in faster than real time modeling, though, (say, you're
doing real time control in robotics), then fast speed is essential.
> An option for people is to use the Matlab compiler to build faster code. I've
> never used it but the reports I've seen is that it works quite well. I'm not
> sure about how the toolboxes work with it - whether you compile them as well
> or they run as interpreted along with the compiled code.
Works quite well (a lot of the toolboxes are compiled as well).. Just don't
expect to look at and debug the output of the compiler, so good test cases
are important. Ad hoc development styles tend to be dicey.
> Octave has a number of toolboxes. I'm not sure if it covers what various
> people are doing, but they are out there.
Octave also does compilation. That is, just like Matlab, it does a just in
time style of compilation to an intermediate form. A loop doesn't get
reinterpreted on each pass through the loop.
More information about the Beowulf