Parallel MATLAB and OCTAVE
There are a lot of different ideas about what parallel interactive
environments like MATLAB or OCTAVE mean.
One model is to have multiple sessions open on different machines that
can pass data back and forth easily.
The problem with this (at least for MATLAB users) is that it is very
slow, and requires as many licenses as sessions you have open
(not a problem with OCTAVE). This may be useful for
"embarrasingly parallel" problems where order and scheduling of
calculations is not an issue, but for parallel linear algebra, this is
not a good model. Another
model is to simply use a single "root" interactive environment to
organize and schedule all the parallel computation, which
runs in a lower level language like C with calls to the MPI library and
something like PLAPACK.
I've listed a few of the parallel projects that I've run across.
A much more comprehensive list can be found at the
Matlab survey. This list seems to be updated regularly and is
But, before you spend a lot of time
sifting through these schemes, let me suggest a simple hack that might
well be standard operating proceedure for those in the know. Here's
the idea: write your usual MATLAB code, calling an executable
that you trick MATLAB into thinking it created. The executable is
some compiled C code that you have written with all the calls to
parallel toolboxes you need with input and data passed to and from the
root MATLAB session. To be able to do this, you need the
MATLAB compiler. Generate the C code corresponding to your root
MATLAB code with a call to a dummy function which, after generating the
MATLAB-to-C code you replace with the parallel C code you've
written. I'm sure this idea will also work with OCTAVE in some
If you still want to look into parallel MATLAB or OCTAVE, a
recommendation. Of all the schemes I've looked at for running
multiple MATLAB sessions in parallel, the only one I've had success
with is the DPToolbox
out of Uni-Rostock. It's pretty effective, simple to learn
to use, and is current (runs with MATLAB 6). The only drawback is
that it runs on PVM which is unsupported, and network administrators
seem to hate. Your cluser also has to permit nodes to push
xterminals to the root, which many administrators also don't
like. Some other suggestions are below.
Parallel Toolbox: My pick.
MPI Toolbox for Matlab
(MPITB): I had originally written disparaging remarks about
this toolbox because they only had binaries available which limited its
use. I've recently been informed that they've made some improvements in
this direction. This looks very promising.
Recently learned about this. Haven't tried it, but it looks
Unsupported (unavailable?) parallel matlab toolbox from Cornell. It's
is the Cornell
Multitask Toolbox for MATLAB® (CMTM). This appears to be
supported. Unfortunately, it only runs on WINDOWS clusters (yup,
a MATLAB-like environment for interactive parallel computing. Doesn't
be current, so the functionality is probably limited.
for MATLAB: This would have been what we needed, 6 years ago.
Unfortunately, outdated toolboxes like this don't grow with Matlab and
Compiler (MATCH): Still haven't really figured out what this thing
MPI Toolbox for
: Dated June 2001.
(Last updated April 22, 2004)