File Exchange

image thumbnail

Parallelizing Matlab on Large Distributed Computing Clusters

version 1.0 (173 KB) by

A solution to running large amounts of Matlab code in parallel on large computational pools.



View License

I am describing a solution that allows you to break apart and run large amounts of your Matlab code in parallel on large computational pools. In order to provide the user with the familiar Matlab work environment, I glue back the remotely evaluated Matlab code via web services, such that the logical structure of the Matlab application is still maintained, while the physical layout of the code to the executing machine gets farmed out to the computational pool.

The need for such a solution is mostly characteristic to the academic environment, where scientists have large, computationally intensive problems to solve, have access to large computational grids (TeraGrid \cite{TeraGrid}, OSG, etc), but only have Matlab on their personal/departmental computers.

The scenario addressed by this solution is that of a scientist who has implemented their research model in Matlab, and who runs into computational-resource-availability limitations (most likely because of the size of their problem, or because of the complexity of the algorithm), with the effect of having to wait for extensive periods before their results come back. We call such a model and \emph{expensive function evaluation} .
The simple solution is to break up the model and farm out the computationally-intensive parts to more machines, which is what the commercial Matlab Distributed Computing Server supports out of the box. However, we will look at an inexpensive alternative that will allow you to scale beyond the limits of your wallet (i.e. licensing costs), and present an in-house-built open-source-based Distributed Matlab Execution Engine. This solution is \emph{inexpensive} but \emph{not free}. You will save money on licenses, but will have to spend money on replicating this solution and customizing it to your case.

I am simply presenting my solution as a guidance/example. I am using the Swift Grid scripting/workflow engine to drive the parallel execution and Web Services to hook back this execution into the rest of the Matlab code.

Comments and Ratings (0)

MATLAB Release
MATLAB 7.8 (R2009a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video