Interactive SuperComputing


 

Parallel Matlab survey

Parallel MATLAB®: Doing it Right
By Ron Choy , Alan Edelman

Download Parallel MATLAB®: Doing it Right
Which appeared in the Proceedings of the IEEE, Volume 93, Issue: 2, February 2005
On page(s): 331- 341 and as a Computer Science AI Lab Memo at the Massachusetts Institute of Technology.
(Copyright: November 2003)

 

Going Parallel Kit
The downloadable kit contains a Case Study, White Paper, and Product Overview.

Star-P Interactive Tour
Online presentations and demos show how Star-P significantly accelerates parallel code development.


Parallel Matlab survey

Current Parallel Matlab count: 27

  1. Provide communication routines (MPI/PVM) in Matlab.
  2. Provide routines to split up work among multiple Matlab sessions.
  3. Provide parallel backend to Matlab.
  4. Compile Matlab scripts into native parallel code.

*NOTE*: A lot of these projects no longer work with the latest version of MATLAB® (R14). This is especially true for those projects that are written in C and compiled into .mex

Message Passing

MultiMATLAB®
Cornell Multitasking Toolbox for Matlab
DP-Toolbox
MPITB/PVMTB
MATmarks
Parallel Toolbox for MATLAB®
MatlabMPI
pMatlab

Embarrassingly Parallel

MULTI Toolbox
Paralize
PMI
PLab
Parmatlab
MATLAB® Parallelization Toolkit
DistributePP


Requires multiple MATLAB® clients

Backend Support

Netsolve
DLab
Matpar
PLAPACK
Paramat
MATLAB®*P
 Requires one MATLAB® client

Compilation

Otter
RTExpress
ParAL
FALCON
CONLAB Compiler
MATCH
Menhir

 Requires one or zero MATLAB® client


Clev's corner features MATLAB®*p (now Star-p)

Message Passing

MultiMATLAB®
http://www.cs.cornell.edu/Info/People/lnt/multimatlab.html
Status: dormant
Matlab sessions required: multiple
Platform: UNIX
  • "Using short, MATLAB®-style commands like Eval, Send, Recv, Bcast, Min, and Sum, the user operating within one MATLAB® session can start MATLAB® processes on other machines and then pass commands and data between between these various processes ..."
Cornell Multitasking Toolbox for Matlab
http://www.tc.cornell.edu/Services/Software/CMTM/
Status: active
Matlab sessions required: multiple
Platform: UNIX, Windows

        

  • enables MPI calls inside Matlab
  • included in the Microsoft parallel programming software developer toolkit
Distributed and Parallel Application Toolbox (DP-Toolbox)
http://www-at.e-technik.uni-rostock.de/dp/
Status: active
Matlab sessions required: multiple
Platform: UNIX, Windows

        

  • PVM-based
  • similar to CMTM
  • available on both UNIX and Windows
  • active
MPI/PVM Toolbox for Matlab (MPITB/PVMTB)
http://atc.ugr.es/javier-bin/mpitb_eng
http://atc.ugr.es/javier-bin/pvmtb_eng
Status: seems active
Matlab sessions required: multiple
Platform: UNIX

        

  • similar to CMTM
  • source not yet available
MATmarks
http://polaris.cs.uiuc.edu/matmarks/
Status: seems active
Matlab sessions required: multiple
Platform: currently unavailable because of licensing problem
  • "MATmarks is an environment that allows users to run several MATLAB®? programs in parallel using the shared memory programming style. The environment extends the Matlab language with several primitives to enable shared variables and synchronization primitives. "
Parallel Toolbox for MATLAB®
Web page unknown
Status: dormant
Matlab sessions required: multiple
Platform: unknown
  • This is a project found cited by several parallel MATLAB® papers. However the webpage has been scrapped. We are trying to contact the authors to obtain more information about the project.
MatlabMPI
http://arXiv.org/abs/astro-ph/0107406
Status: active
Matlab sessions required: multiple
Platform: various
  • Simulate MPI in MATLAB® using a common file system
  • pure m-file
pMatlab
http://www.ll.mit.edu/hpec/agendas/proc03/abstracts/kepner-pMatlab.pdf
Status: active
Matlab sessions required: multiple
Platform: various
  • Built upon MatlabMPI, supporting global data structures (distributed dense, distributed sparse) as well.


Embarrassingly Parallel

MULTI Toolbox
http://www.lapsi.eletro.ufrgs.br/Disciplinas/ENG_ELETRICA/CAD-ENG/Matlab/CommSim/COMMSIM%20for%20MATLAB®%205.htm
Status: dormant (webpage exists, but can't download)
Matlab sessions required: multiple
Platform: UNIX
  • "Multi is a set of tools for starting MATLAB® processes on remote machines, managing a list of processes, executing MATLAB® statements in a non-blocking fashion on those remote machines, and passing MATLAB® arrays back and forth"
  • pure m-files
Paralize
ftp://ftp.mathworks.com/pub/contrib/v5/tools/paralize/paralize.html
Status: unknown
Matlab sessions required: multiple
Platform: unknown
  • "Parallelization function for the heterogeneous computer network with a common file system"
  • takes a 3D matrix, splits up the 3rd dimension and hand off to different Matlab processes
  • makes use of a common file system for communication
  • dynamic load balancing
PMI
ftp://ftp.mathworks.com/pub/contrib/v5/tools/PMI
Status: unknown
Matlab sessions required: multiple
Platform: unknown
  • similar to MULTI
  • no info about status
  • requires multiple Matlab client
PLab
http://bond.imm.dtu.dk/plab/
Status: seems active
Matlab sessions required: multiple
Platform: UNIX
  • simple parallelization approach (without much coordination), similar to MULTI
  • can do for loop parallelization (but with a pfor call)
Parmatlab
ftp://ftp.mathworks.com/pub/contrib/v5/tools/parmatlab/
Status: active
Matlab sessions required: multiple
Platform: UNIX, windows
  • "This toolbox distributes processes over matlab workers available over the intranet/internet. These workers must be running a matlab daemon to be accessed. "
  • TCP/IP based communication
Matlab Parallelization Toolkit
http://hem.passagen.se/einar_heiberg/index.html
Status: active
Matlab sessions required: multiple
Platform: UNIX
  • "Several high level commands are available such as parallelized for-loops, eval, profiler and debugging"
  • based on PMI (above)
DistributePP
http://www.essrl.wustl.edu/~mdd2/DistributePP/
Status: active
Matlab sessions required: multiple
Platform: UNIX
  • "DistributePP is a parallel processing package for MATLAB®? which is intended to support coarse granularity parallelism across a heterogeneous computing network with access to a shared file system. "
  • "At this time, the routine to be executed by a server process must return exactly one return value or an error will result"


Backend Support

Netsolve
http://www.cs.utk.edu/netsolve/
Status: active
Matlab sessions required: one
Platform: UNIX, Windows
  • similar to MATLAB®*P
  • RPC-based
  • interface available for C, f77, Java, Matlab
  • generates more data traffic than MATLAB®*P since matrices are stored locally
DLab
http://www.cse.uiuc.edu/~radenska/dlab/statement.ps
Status: dormant
Matlab sessions required: one
Platform: UNIX
  • similar to MATLAB®*P
  • transparent like MATLAB®*P
  • client-server based like MATLAB®*P
  • provide internal scheduling mechanism
  • multi-user support
  • lazy evaluation - i.e. non-blocking server side eval
  • client-side matrices, more data traffic than MATLAB®*P
  • only ScaLAPACK available on backend. less extensible than MATLAB®*P.
Matpar
http://www-hpc.jpl.nasa.gov/PS/MATPAR/
Status: active
Matlab sessions required: 1
Platform: some UNIX flavors
  • similar to MATLAB®*P
  • requires learning a set of functions e.g. p_qr() instead of qr()
  • PVM based
PLAPACK
http://www.cs.utexas.edu/users/plapack/
Status: active
Matlab sessions required: one
Platform: UNIX
  • mainly a parallel numerical package, but provides interface to Matlab
  • claims better than ScaLAPACK performance
  • similar to Matpar
Paramat
http://www.alphadata.co.uk/dsheet/paramat.html
Status: seems dormant
Matlab sessions required: one
Platform: NT for alpha
  • not too much details given, but seems to provide functions for the parallel processing
  • therefore not transparent
  • commercial
MATLAB®*P / PPServer
http://supertech.lcs.mit.edu/~cly/matlabp.html
Status: active
Matlab sessions required: one
Platform: UNIX
  • matrices stored on server to reduce data traffic
  • makes use of overloading so existing serial scripts can be parallelized with minimal effort
  • easily extensible via packages - so far ScaLAPACK, PARPACK, Aztec, S3L, PetSc has been ported
  • being actively worked on
  • Runs on Beowulf
  • Supports embarrassingly parallel operations (if multiple MATLAB®s are available)
  • Supports MPI through MatlabMPI


Compilation

Otter
http://www.cs.orst.edu/~quinn/papers/hpdc7.ps
Status: seems dormant
Matlab sessions required: one
Platform: UNIX
  • compiled approach
  • translate Matlab scripts into C code, then compile and link with parallel numerical libraries.
RTExpress
http://www.rtexpress.com/
Status: active
Matlab sessions required: one
Platform: Mercury hardware (PPC), CSPI, SPARC, Linux x86
  • similar to Otter
  • commercial
  • compiles code for embedded systems
  • thanks to Rob Ostrander for the information
ParAL
http://www.sedal.usyd.edu.au/~igor/paral/
Status: seems dormant
Matlab sessions required: one
Platform: BLACS based
  • similar to Otter
  • BLACS based
  • limited functionality, need high level (i.e. vectorized) Matlab scripts
FALCON
http://www.csrd.uiuc.edu/falcon/falcon.html Status: seems dormant
Matlab sessions required: one
Platform: F90 based
  • basically a Matlab to F90 translator with parallelization directives
  • suggest that it only works on SMP system (?)
CONLAB Compiler
http://www.cs.umu.se/research/conlab/
Status: seems active
Matlab sessions required: one
Platform: some flavors of UNIX, PVM based
  • The compiler translates its input files into C-language files to which it applies a suitable C compiler. In order to achieve high performance the computational kernels of executable code are built on level 1-2-3 BLAS (Basic Linear Algebra Subprograms) and LAPACK (Linerar Algebra Package). Communication via explicit message passing is performed by PVM
MATCH
http://www.accelchip.com
Status: active
Matlab sessions required: one
Platform: DSP
  • Originally a project funded by DARPA at NWU, now a product of a startup.
  • Compilers that take MATLAB® and Simulink code and generates RTL VHDL and Verilog code that maps into FPGA, QuickDSP, or ASIC devices.
Menhir
http://www.irisa.fr/caps/PROJECTS/Menhir/menhir/orap/ (in French)
Status: unknown
Matlab sessions required: one
Platform: unknown
  • This is a widely cited MATLAB® compiler. However we failed to locate the project webpage, and we are trying to decipher the above webpage (which appears to be a talk on Menhir in French)