MATLAB_DISTCOMP
Distributed Computing with MATLAB


MATLAB_DISTCOMP is a directory of information which discusses the use of distributed computing with MATLAB.

The idea of distributed computing is to take a single computing job and divide it into several tasks, each of which can be carried out independently. These tasks may then be submitted together to some kind of scheduler or batch system, which can decide how and when (and perhaps where) to execute them.

Distributed computing can occur locally, that is, on your desktop machine, particularly if it has multiple processors. You can also do distributed computing remotely, for instance, on Virginia Tech's Ithaca cluster.

In the remote distributed computing case, you must first do a certain amount of preparation. These steps are outlined in the document "Notes on Enabling Remote Submission of MATLAB Jobs".

Enabling remote submission of jobs to the Ithaca cluster involves:

  1. Setting up passwordless remote access to Ithaca from your machine. This is described in the document.
  2. Copying some necessary files into the toolbox/local subdirectory of your copy of MATLAB. These files are available in the matlab_remote directory.
  3. Copying a parallel configuration file to your machine, installing it into MATLAB, and modifying it appropriately for your environment.

Once you think you've got your remote submission set up properly, you can test it by copying the GZIP'ed tar file from this directory, unzipping it, starting MATLAB, and issuing the command test_all.

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Related Data and Programs:

BIRTHDAY_REMOTE, a MATLAB program which runs a Monte Carlo simulation of the birthday paradox, and includes instructions on how to run the job, via MATLAB's BATCH facility, on a remote system such as Virginia Tech's ITHACA cluster.

COLOR_REMOTE, a MATLAB program which carries out the color segmentation of an image in parallel, via SPMD commands; this includes instructions on how to run the job, via MATLAB's BATCH facility, on a remote system such as Virginia Tech's ITHACA cluster.

CONTRAST_SPMD, a MATLAB program which demonstrates the SPMD parallel programming feature for image operations; the client reads an image, the workers increase contrast over separate portions, and the client assembles and displays the results.

CONTRAST2_SPMD, a MATLAB program which demonstrates the SPMD parallel programming feature for image operations; this improves the contrast_spmd program by allowing the workers to share some data; this makes it possible to eliminate artificial "seams" in the processed image.

FD2D_HEAT_EXPLICIT_SPMD, a MATLAB program which uses the finite difference method and explicit time stepping to solve the time dependent heat equation in 2D. A black and white image is used as the "initial condition". MATLAB's SPMD facility is used to carry out the computation in parallel.

KNAPSACK_TASKS, a MATLAB program which solves a knapsack problem by subdividing it into tasks, each of which is carried out as a separate program.

LYRICS_REMOTE, a MATLAB program which runs in parallel, using three workers which cooperate "systolically", that is, as through they were on an assembly line. The output from worker 1 is passed to worker 2 for further processing, and so on. This includes instructions on how to run the job, via MATLAB's BATCH facility, on a remote system such as Virginia Tech's ITHACA cluster.

MATLAB_REMOTE, MATLAB programs which illustrate the use of remote job execution, in which a desktop copy of MATLAB sends programs and data to a remote machine for execution. Included is information needed to properly configure the local machine.

MD_PARFOR, a MATLAB program which carries out a molecular dynamics simulation; it runs in parallel using MATLAB's "parfor" facility, and includes instructions on how to run the job, via MATLAB's BATCH facility, on a remote system such as Virginia Tech's ITHACA cluster.

PLOT_SPMD, a MATLAB library which demonstrates the SPMD parallel programming feature, by having a number of labs compute parts of a sine plot, which is then displayed by the client process.

QUAD_PARFOR, a MATLAB program which estimates an integral using quadrature; running in parallel using MATLAB's "PARFOR" feature.

QUAD_TASKS, a MATLAB program which estimates an integral using quadrature; running in parallel using MATLAB's "TASK" feature.

SATISFY_PARFOR, a MATLAB program which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfiability problem, running in parallel using MATLAB's "PARFOR" feature.

Reference:

The User's Guide for the Parallel Computing Toolbox is available at http://www.mathworks.com/access/helpdesk/help/pdf_doc/distcomp/distcomp.pdf

Source Code:

This top level directory includes some files of interest:

Below this top level directory are five subdirectories that contain information associated with the five separate jobs. Information about the files in these directories is not included here. However, for each of these directories, there is a discussion of the files and their purpose at another location.

You can go up one level to the MATLAB source codes.


Last revised on 04 February 2010.