|
Parallel Matlab survey
Parallel Matlab survey
Current Parallel Matlab count: 27
- Provide communication routines (MPI/PVM) in Matlab.
- Provide routines to split up work among multiple Matlab sessions.
- Provide parallel backend to Matlab.
- 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
| | Requires multiple MATLAB® clients | | | Requires one MATLAB® client | | | Requires one or zero MATLAB® client |
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)
|
|