HPCmatlab is a framework for fast prototyping of parallel applications on Matlab. It uses the Message Passing Interface (MPI) for sending and receiving messages among different Matlab processes. The users can use mex functions with syntax similar to the MPI standard syntax.
This version of HPCmatlab is compatible with Matlab versions up to R2015a only. It is not compatible with Matlab versions R2015b onward. We are currently adding support for newer Matlab versions.
This version includes our MPI functions.
The User Guide for this version is included in form of the PDF file
"HPCmatlab_1.0_User_Guide.pdf" under doc/
For users new to parallel programming, we recommend trying out the simple send-receive examples first to get started with the framework.
For details on implementation and performance results, refer our conference paper
URL: http://dx.doi.org/10.1016/j.procs.2016.05.467
A PDF copy of this paper can also be found under doc/
. ([CC BY-NC-ND 4.0] (https://creativecommons.org/licenses/by-nc-nd/4.0/ "CC BY-NC-ND 4.0"))
The examples of simple programs using point-to-point, collective and one-sided
communications are included under examples/
directory.
They also have sample job submission files for SLURM.
GitHub download page: https://github.com/xinchenguo/HPCmatlab
-
Make sure Matlab's
mex
compiler is in your $PATH. Also,mpicc
andmpicxx
should be in $PATH with all environment variables set up for MPI libraries. -
Run
make
to compile the MEX functions from source code. The MEX functions will be placed undermatlab/
directory. -
There are two ways to add the path to these functions to Matlab's search path:
- Before running your script, set the
MATLABPATH
environment variable, e.g.
export MATLABPATH=/path/to/HPCmatlab/matlab:$MATLABPATH
- At the start of your Matlab script, use Matlab's
addpath
function. Refer examples for how to do this.
- Use the default MPI command (
mpirun
,mpiexec
,srun
, etc.) of a cluster to start MATLAB with HPCmatlab framework.mpirun -n 2 matlab -r "test,exit"
- Refer to your cluster's user guide or consult your system admin for the proper MPI command
Use our GitHub page for questions, bug reports, comments, feedback and suggestions:
https://github.com/xinchenguo/HPCmatlab/issues
@article{Guo20161461,
title = "HPCmatlab: A Framework for Fast Prototyping of Parallel Applications in Matlab ",
journal = "Procedia Computer Science ",
volume = "80",
number = "",
pages = "1461 - 1472",
year = "2016",
note = "International Conference on Computational Science 2016, \{ICCS\} 2016, 6-8 June 2016, San Diego, California, \{USA\} ",
issn = "1877-0509",
doi = "http://dx.doi.org/10.1016/j.procs.2016.05.467",
url = "http://www.sciencedirect.com/science/article/pii/S1877050916309516",
author = "Xinchen Guo and Mukul Dave and Mohamed Sayeed",
keywords = "Parallel Programming",
keywords = "Message Passing Interface",
keywords = "Matlab",
keywords = "MEX Functions",
keywords = "Parallel I/O "
}