  The true costs of high performance computing are currently dominated by
software. Addressing these costs requires shifting to high productivity
languages such as Matlab. MatlabMPI is a Matlab implementation of the Message
Passing Interface (MPI) standard and allows any Matlab program to exploit
multiple processors. MatlabMPI currently implements the basic six functions
that are the core of the MPI point-to-point communications standard. The key
technical innovation of MatlabMPI is that it implements the widely used MPI
``look and feel'' on top of standard Matlab file I/O, resulting in an extremely
compact (~250 lines of code) and ``pure'' implementation which runs anywhere
Matlab runs, and on any heterogeneous combination of computers. The performance
has been tested on both shared and distributed memory parallel computers (e.g.
Sun, SGI, HP, IBM, Linux and MacOSX). MatlabMPI can match the bandwidth of C
based MPI at large message sizes. A test image filtering application using
MatlabMPI achieved a speedup of ~300 using 304 CPUs and ~15% of the theoretical
peak (450 Gigaflops) on an IBM SP2 at the Maui High Performance Computing
Center. In addition, this entire parallel benchmark application was implemented
in 70 software-lines-of-code, illustrating the high productivity of this
approach. MatlabMPI is available for download on the web
(www.ll.mit.edu/MatlabMPI).
