MatLab DCS R2013a

Overview
The following outline highlights the steps involved to configure your MatLab install and write programs that submit tasks to the worker nodes of the Distributed Computing Server on Cheaha:


 * Configure the Task Submit Environment (One-time Setup)
 * Install MatLab with the Parallel Computing Toolbox on your Windows / Linux / Mac workstation
 * Download and extract the MatLab task submission functions to your workstation MatLab environment
 * Define the "cheaha" parallel configuration in your workstation MatLab environment to submit tasks to Cheaha
 * Run the validation tests to ensure your "cheaha" parallel configuration works
 * Develop and Run Parallel Computing Applications
 * Write, test and debug your parallel code on your local workstation using the default "local" parallel configuration
 * Once your code works, select the "cheaha" parallel configuration to submit tasks to the Cheaha cluster. Note: your workstation MatLab application does not need to keep running after the tasks are submitted.
 * You will receive an email when the tasks you submitted are complete
 * Use your workstation MatLab application to retrieve the results
 * When you are finished with your job contexts, clean up the job related content to free disk space

Using MATLAB DCS
The MATLAB Distributed Computing Services (DCS) are accessed via the Parallel Computing Toolbox (PCT) which is installed as part of your desktop MATLAB installation. The PCT allows MATLAB running on your workstation to send MATLAB code and data (tasks) to the cluster directly from the comfort of your familiar MATLAB environment on your desktop. This makes the expanded compute power of Cheaha available to processes work loads that exceed the capabilities of your desktop computer. Once your tasks are submitted to Cheaha, your desktop MATLAB is also free to move on to other tasks or be closed completely, freeing your desktop or laptop for your other activities.

Configuring the Parallel Computing Toolbox involves three steps documented below:
 * 1) install MATLAB submit functions on your workstation
 * 2) configure the "cheaha" parallel computing target to which PCT tasks can be submitted
 * 3) run the validation tests to confirm a working installation.

This page documents the DCS configuration for MATLAB 2013a. For DCS configuration instructions on previous versions of MATLAB, please see the page MatLab DCS R2010a and Earlier or Matlab DCS R2010b -R2011b or  MATLAB DCS R2012a

Using MATLAB DCS requires you have a cluster account on Cheaha. Please request an account by sending an email to mailto:support@vo.uabgrid.uab.edu and include your campus affiliation and a brief statement of your research interests for using the cluster.

MATLAB Submit Functions
The MATLAB submit functions create a cluster job context for your code and are responsible for transferring your code and the data it analyzes to the cluster for processing.

These submit functions must be installed on your computer and must be accessible to MATLAB via the MATLAB PATH environment. The easiest way to accomplish this is to copy the submit functions to the default directory created for by MATLAB. These directories on the respective operating systems are listed below.

All operating systems (Windows, Linux and Mac) are supported by the same set of submit functions. The functions are written in MATLAB making them cross-platform and only dependent on the version of MATLAB in use.


 * 1) Download the MATLAB submit functions
 * 2) * Submit Functions for MATLAB R2013a -(updated 09/03/2013)
 * 3) Unzip the files to a directory included in your MATLAB PATH setting. Recommended locations are:
 * 4) * Windows:  My Documents\MATLAB
 * 5) * Linux:    $HOME/Documents/MATLAB
 * 6) * Mac:      $HOME/Documents/MATLAB

Once the submit function files have been downloaded and unzipped in the above paths, restart MATLAB to ensure they are properly loaded in your environment.

NOTE: If you choose not to use the above path recommendations, your MATLAB PATH may be viewed/altered by starting the MATLAB client on your workstation and clicking File -> Set Path and adding the path in which you unpacked the submit functions.

Parallel Computing Toolbox Configuration
The Parallel Computing Toolbox (PCT) enables language extensions in MATLAB that support dividing your application into tasks that can be executed in parallel. By default, all of these tasks will run on your local workstation using the pre-defined "local" PCT configuration.

To run these tasks on the Cheaha compute cluster, a new configuration for the PCT must be defined. In this section we will create the "cheaha" configuration and run a quick validation test to confirm its operation.

Prior to continuing, make sure you:
 * can establish an SSH connection to Cheaha
 * have followed the steps in the previous section


 * 1) The R2013a cluster configuration file available with the Submit functions as Cheaha-R2013a.settings
 * 2) * Start MATLAB R2013a on your workstation
 * 3) * Click the "Parallel" menu
 * 4) * Click "Manage Cluster Profiles"
 * 5) * In the "Cluster Profile Manager" window, click the "Import" button on the toolbar
 * 6) * Browse to the location where you saved the cheaha-R2013a.settings file, select it, and click "Open"



Personalize the "cheaha" PCT Configuration

 * 1) Double click on cheaha in the Configuration Manager window to open the configuration editor. (Note: stretch the "Generic Scheduler Configuration Properties" window to the right so that you can view all of the text in the fields making it easier to read and edit correctly.)
 * 2) Edit the following fields to use your personal data directories
 * 3) * ClusterMatlabRoot: Make sure that the Root directory of MATLAB installation for workers matches the exact version of MATLAB you are using on your workstation. In this example /share/apps/mathworks/R2013a matches a MATLAB R2012a workstation install. Change the "R2012a" to match your workstation MATLAB version.
 * 4) * JobStorageLocation    : Change the directory path where job data is stored to an existing directory on your workstation where MATLAB can stage job files.
 * 5) * IndependentSubmitFcn: Change the text "YOURUSERID" to your login id on Cheaha
 * 6) * CommunicatingSubmitFcn       : Change the text "YOURUSERID" to your login id on Cheaha
 * 7) Click 'OK'to save the configuration
 * 8) SSH to cheaha and make sure to create the $USER_SCRATCH/matlab directory. If this directory does not exist, the parallel computing toolbox jobs will fail.

The initial configuration will look similar to this screen shot. You will need to edit the fields as describe in the preceding steps before you can use the configuration. NOTE: be sure to replace the template user name settings "YOURUSERNAME" with the appropriate settings for your desktop and cluster account.



Validate the "cheaha" PCT Configuration
Currently our validations need to manually specify the vf and h_rt options for each job. The job will wait in qw state till these options are added with the following qalter command

qalter -l vf=1G,h_rt=1:00:00 jobid


 * 1) Before starting validation please make sure the directory '/scratch/user/YOURUSERID/matlab' exists on the scratch space on the Cheaha. If it does not please SSH into Cheaha and create the directory before proceeding.
 * 2) Select Cheaha on the configuration manager page and click 'Start Validation'
 * 3) Wait for the validation to complete. This might take a few minutes and you ask for User credentials on Cheaha. All tests other than 'Matlabpool' validate on the Cheaha and the output is as shown.



Begin Using MATLAB DCS from your Desktop
The MATLAB DCS is now configured for Desktop usage. A simple parallel wave job "rParforWave" to test the configuration is described in MatLab_DCS_Examples.

A summary of the above steps is available at MATLAB_workshop_2011 with additional examples and submit scripts available in the workshop demo  section.