Parallel Programming with MatlabMPI

Jeremy Kepner
DOI: https://doi.org/10.48550/arXiv.astro-ph/0107406
2001-07-20
Abstract: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 (~100 lines) and ``pure'' implementation which runs anywhere Matlab runs. The performance has been tested on both shared and distributed memory parallel computers. MatlabMPI can match the bandwidth of C based MPI at large message sizes. A test image filtering application using MatlabMPI achieved a speedup of ~70 on a parallel computer.
Astrophysics
What problem does this paper attempt to address?
The problem that this paper attempts to solve is how to make Matlab programs run efficiently on parallel computers. Specifically, the author has developed a tool named MatlabMPI, which is a Message Passing Interface (MPI) standard implemented based on Matlab and aims to enable any Matlab program to utilize multiple processors for parallel computing. The main contribution of the paper is that it has achieved a very compact (about 100 lines of code) and pure MPI "look and feel" through the use of standard Matlab file I/O, which enables MatlabMPI to run on any combination of computers that support Matlab. The key technical challenges mentioned in the paper include: - **Generality of parallel programming**: Existing attempts to provide mechanisms for running Matlab programs efficiently on parallel computers face many challenges, and no method has been widely accepted. - **Performance optimization**: In order to make Matlab programs run effectively on parallel computers, communication latency and bandwidth issues need to be addressed, especially the high - latency problem when dealing with small messages. By testing the image filtering application, the author has shown that the performance of MatlabMPI in large - message transmissions can match that of MPI implemented in C language, and has achieved a significant speed - up on multi - processor systems, even reaching a super - linear acceleration effect, which is mainly due to better cache utilization. These results indicate that MatlabMPI can not only effectively support parallel computing, but also has good - enough performance for most "embarrassingly parallel" Matlab applications.