MATLAB

MATLAB is a high level programming language.

Licences

The MATLAB installation on ALICE is the same as that on University PCs and shares the campus licence. The versions available are 2018a and 2019a.

The list below shows which toolboxes we currently have for version 2018a. You can run the 'ver' command within MATLAB to see the list.

Simulink
Aerospace Blockset
Aerospace Toolbox
Antenna Toolbox
Audio System Toolbox
Automated Driving System Toolbox
Bioinformatics Toolbox
Communications System Toolbox
Computer Vision System Toolbox
Control System Toolbox
Curve Fitting Toolbox
DSP System Toolbox
Database Toolbox
Datafeed Toolbox
Econometrics Toolbox
Embedded Coder
Filter Design HDL Coder
Financial Instruments Toolbox
Financial Toolbox
Fixed-Point Designer
Fuzzy Logic Toolbox
GPU Coder
Global Optimization Toolbox
HDL Coder
HDL Verifier
Image Acquisition Toolbox
Image Processing Toolbox
Instrument Control Toolbox
LTE HDL Toolbox
LTE System Toolbox
MATLAB Coder
MATLAB Compiler
MATLAB Compiler SDK
MATLAB Report Generator
Mapping Toolbox
Model Predictive Control Toolbox
Neural Network Toolbox
Optimization Toolbox
Parallel Computing Toolbox
Partial Differential Equation Toolbox
Phased Array System Toolbox
Polyspace Bug Finder
Polyspace Code Prover
Powertrain Blockset
Predictive Maintenance Toolbox
RF Blockset
RF Toolbox
Risk Management Toolbox
Robotics System Toolbox
Robust Control Toolbox
Signal Processing Toolbox
SimBiology
SimEvents
Simscape
Simscape Driveline
Simscape Electronics
Simscape Fluids
Simscape Multibody
Simscape Power Systems
Simulink 3D Animation
Simulink Check
Simulink Code Inspector
Simulink Coder
Simulink Control Design
Simulink Coverage
Simulink Design Optimization
Simulink Design Verifier
Simulink Report Generator
Simulink Requirements
Simulink Test
Stateflow
Statistics and Machine Learning Toolbox
Symbolic Math Toolbox
System Identification Toolbox
Text Analytics Toolbox
Trading Toolbox
Vehicle Dynamics Blockset
Vehicle Network Toolbox
Vision HDL Toolbox
WLAN System Toolbox
Wavelet Toolbox

Submit a MATLAB Job

To submit a MATLAB job, you need to submit a MATLAB function file (a .m file) to the scheduler.

The example submission script below requests 10 hours of walltime and executes a MATLAB function script called mscript.m located in the same directory as the submission script.

#!/bin/bash
#
#PBS -N MATLAB_job
#PBS -l nodes=1:ppn=1
#PBS -l vmem=4g
#PBS -l walltime=10:00:00

module load matlab/2018a

cd $PBS_O_WORKDIR

matlab -nodisplay -nojvm -r mscript
  • Start MATLAB with the -r option
  • Specify the name of the MATLAB program without the .m suffix
  • Use the -nodisplay option to stop MATLAB from starting its user interface or opening any display windows. It's important that the MATLAB program doesn't attempt to open any windows itself during execution since this will fail.

 

Parallel MATLAB Jobs

Some of MATLAB's functions will automatically take advantage of multiple cores under some circumstances. When a job submission script specifies nodes=1:ppn=N where N > 1, MATLAB will use N threads where possible. There's no gain in doing this if your code doesn't fit the criteria for taking advantage of multiple cores though - please read Which MATLAB Functions Benefit from Multithreaded Computation? for details.

Please note that if you are using the Parallel Computing Toolbox then you should not use the '-nojvm' option when starting your program as java is required for this fucntionality. e.g.

matlab -nodisplay -r mscript

Passing Arguments to MATLAB Programs

It is easy to pass arguments from a job submission script to a MATLAB program. This can be used as a basis for creating MATLAB array jobs and automating parameter sweeps etc.

In the job submission script at the line where MATLAB is called, you can pass an argument with a value as part of the MATLAB program name. For example to set the MATLAB variable x to the value 4 on initialisation of the program mscript.m, use the following:

matlab -nodesktop -nojvm -r "x=4;mscript"

When mscript.m starts, x will have the value 4.

You can pass multiple arguments by separating them with semi-colons:

matlab -nodesktop -nojvm -r "x=4;y=5;mscript"

Share this page: