Submitting MATLAB Jobs With Slurm
This script is an example of launching individual MATLAB jobs on the Kennesaw State VHPC Cluster. It includes code to help you safely run Parallel Computing Toolbox (PCT) jobs from within MATLAB, although you will have to adjust your MATLAB code to take advantage of this feature. Failure to do this can cause unpredictable results for your jobs and the compute nodes.
Slurm Shell Script
In our example, we saved the following Slurm script as run_matlab.slurm
(making sure to change netid@kennesaw.edu
and account_name
in the script
to the correct values for your job):
run_matlab.slurm | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
Make sure to change
netid@kennesaw.edu
on this line to your KSU email address or you won't receive emails when the job starts and stops.Make sure to change
account_name
on this line to the VHPC billing account your job should be charged to.
MATLAB Code Changes
If you're using the PCT, you need to set the JobStorageLocation to the
contents of the environment variable SLURM_MATLAB_WORKDIR
. It will also
set the PoolSize of the created cluster to the total number of requested
processors in your job to make maintaining your script easier.
pc = parcluster('local');
pc.JobStorageLocation = getenv('SLURM_MATLAB_WORKDIR');
slurmNP = str2num(getenv('SLURM_NPROCS'));
parpool(pc,slurmNP);
Usage
Assuming you saved the Slurm script from above as run_matlab.slurm
, and
the name of your Rmpi script is matlab_script.m
, you can submit your MATLAB
job with the following command:
[barney@vhpc ~]$ sbatch --export=ALL,FILE=${PWD}/matlab_script.m run_matlab.slurm