Parallel Computing Support in MATLAB and Simulink Products

A growing number of functions, System objects™, and features in several MATLAB® and Simulink® products offer the ability to use parallel computing resources without requiring extra coding. You can enable this support by simply setting a flag or preference. To take advantage of this functionality on your desktop, you need Parallel Computing Toolbox™. To scale parallel computing support to larger resources such as computer clusters, you also need MATLAB Parallel Server™.

In addition, you can create algorithms that leverage parallel constructs like parfor

Note, there are two exceptions for functionality with parallel workers:

Product Name Support Summary Additional Resources

Ability to run multiple Simulink simulations using parsim

Ability to run multiple simulations in rapid accelerator mode using parsim with prebuilt Simulink models

Documentation: Running Parallel Simulations

Example: Parameter Sweep in Rapid Accelerator Mode

Video: Running Multiple Simulink Simulations in Parallel (2:29)
Bioinformatics Toolbox

Ability to distribute pairwise alignments to a computer cluster using functions for progressive alignment of multiple sequences (multialign) and pairwise distance between sequences (seqpdist)

Documentation: Multiple Sequence Alignment

Communications Toolbox

GPU support for a select list of System objects. These System objects execute on GPU (graphics processing unit) to improve performance by reducing simulation time and are among the most commonly used functionality in the product:


MATLAB Compiler Support for GPU System Objects

Documentation: Simulation Acceleration Using Graphics Processing Units (GPUs)


Computer Vision System Toolbox

Parallel execution support for functions in bag-of-words workflow including bagOfFeatures, bagOfFeatures.encode, trainImageCategoryClassifier, imageCategoryClassifier, and imageCategoryClassifier.predict

Documentation: Enabling Parallel Support with Computer Vision System Toolbox Preferences

Control System Toolbox

Parallel computing support for tuning fixed-structure control systems with the looptune and systune commands

Documentation: Speed Up Tuning with Parallel Computing Toolbox Software

Release notes: Control System Toolbox

Deep Learning Toolbox

Parallel computing support for training and simulation

GPU support for training and simulation

Documentation: Parallel Computing on CPUs and GPUs

Release notes: Deep Learning Toolbox

Embedded Coder

Generating and building code in parallel using model blocks

Only available through interactive parpool sessions

Blog: Parallel Computing with Simulink: Model Reference Builds

Release notes: Embedded Coder

Filter Design HDL Coder Only available through interactive parpool sessions  
Global Optimization Toolbox

Simultaneous exploration of local solution space in genetic algorithm, particle swarm, and pattern search solvers. The multistart solver runs the local solver from all starting points and can be run in parallel


GPU Coder Only available through interactive parpool sessions  
HDL Coder Only available through interactive parpool sessions  
Image Processing Toolbox

Option in Batch Image Processor to improve performance with parallel processing. Set the “Parallel” button in the toolstrip to use this option.

Option in blockproc function to improve performance of block processing tasks. Set the ‘UseParallel’ argument to true to use this option.

GPU acceleration for popular image processing functions such as bwmorph, edge, imfilter, imdilate, imerode, imopen, imclose, imtophat, imbothat, radon, iradon, and imshow.

Documentation: Image Processing Toolbox

See GPU Computing section for a complete list of GPU-enabled functions


Use parfor to run MEX-files generated by MATLAB Coder in parallel

Only available through interactive parpool sessions

Example: Simulation Acceleration using System Objects, MATLAB Coder and Parallel Computing Toolbox
Model-Based Calibration Toolbox

Parallel computing support for fitting multiple models to experimental data

Running of multiple optimizations in parallel



Parallel Model Building

Parallel Computing for Optimization


Optimization Toolbox

Accelerating gradient estimation in selected constrained nonlinear solvers

Support for launching parallel computations from optimtool GUI

Documentation: Parallel Computing for Optimization

Example: Minimizing an Expensive Optimization Problem Using Parallel Computing Toolbox

Phased Array System Toolbox

Acceleration of clutter model simulation with parfor or GPU

Documentation: Constant Gamma Clutter Simulation on GPU

Example: GPU Acceleration of Clutter Simulation

Robust Control Toolbox

Parallel computing support for tuning control systems with the looptune, systune, and hinfstruct commands for robustness against plant variation

Release notes: Robust Control Toolbox

Signal Processing Toolbox

GPU acceleration for xcorr, xcorr2, fftfilt, xcov, and cconv

Example: Accelerating Correlation with GPUs

Simulink Coder

Generating and building code in parallel using model blocks

Only available through interactive parpool sessions

Blog: Parallel Computing with Simulink: Model Reference Builds

Release notes: Simulink Coder

Simulink Code Inspector Only available through interactive parpool sessions  
Simulink Control Design

Parallel computing support for frequency response estimation of Simulink models

Documentation: Speeding Up Estimation Using Parallel Computing

Example: Speeding Up Frequency Response Estimation Using Parallel Computing

Release notes: Simulink Control Design

Simulink Design Optimization Parallel computing support for estimating model parameters, optimizing system response and sensitivity analysis


Article: Improving Simulink Design Optimization Performance using Parallel Computing (PDF)

Documentation: Speeding Up Response Optimization Using Parallel Computing

Use Parallel Computing for Sensitivity Analysis


Release notes: Simulink Design Optimization

Video: Speeding Up Design Optimization (5:11)
Simulink Design Verifier Only available through interactive parpool sessions  
Simulink PLC Coder Only available through interactive parpool sessions  
Simulink Test GPU acceleration for xcorr, xcorr2, fftfilt, xcov, and cconv Example: Accelerating Correlation with GPUs
Statistics and Machine Learning Toolbox

Parallel execution support using resampling functions: bootstrap, bootci, jackknife, crossval, lasso, lassoglm, plsregress, sequentialfs, treebagger

Parallel execution support for fitting multiclass support vector machines and other classifiers: fitcecoc

Support in RandStream class for generation of reproducible random streams in parallel across multiple workers through SubStream property

Parallel execution support for D-optimal design generation functions: candexch, cordexch, daugment, dcovary, rowexch

Parallel execution support for functions with multiple starting points: kmeans, kmedoids, nnmf

More than 90 GPU-enabled functions in Statistics and Machine Learning Toolbox, including probability distribution, descriptive statistics, and hypothesis testing


Interactive Support for Transformation Programs

Use of MATLAB Coder, Simulink Coder, Embedded Coder, GPU Coder, HDL Coder, Filter Design HDL Coder, Simulink PLC Coder, Simulink Design Verifier, and Simulink Code Inspector, are only available through interactive parpool sessions.

Products Not Eligible to Run with Parallel Workers

DO Qualification Kit, IEC Certification Kit, MATLAB Compiler, MATLAB Compiler SDK, MATLAB Web Server, Simulink Compiler, and Spreadsheet Link