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 take advantage of parallel computing resources without requiring any 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 the parallel computing support to larger resources such as computer clusters, you also need MATLAB Distributed Computing Server™.

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)
Product Name Support Summary Additional Resources
MATLAB Coder Use parfor to run MEX-files generated by MATLAB Coder in parallel Example: Simulation Acceleration using System Objects, MATLAB Coder and Parallel Computing Toolbox
Embedded Coder

Generating and building code in parallel using model blocks

Blog: Parallel Computing with Simulink: Model Reference Builds

Release notes: Embedded Coder

Simulink Coder

Generating and building code in parallel using model blocks

Blog: Parallel Computing with Simulink: Model Reference Builds

Release notes: Simulink Coder

Product NameSupport SummaryAdditional Resources
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

Product Name Support Summary Additional Resources
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

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

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)
Product Name Support Summary Additional Resources
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

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

Product Name Support Summary Additional Resources
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


Model-Based Calibration Toolbox

Parallel computing support for fitting multiple models to experimental data

Running of multiple optimizations in parallel


Neural Network Toolbox

Parallel computing support for training and simulation

GPU support for training and simulation

Documentation: Parallel Computing on CPUs and GPUs

Release notes: Neural Network Toolbox

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

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


Product NameSupport SummaryAdditional Resources
Communications System 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)


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

Signal Processing Toolbox

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

Example: Accelerating Correlation with GPUs

Product NameSupport SummaryAdditional Resources
Simulink Test

Parallel computing support for test execution

See Run Tests Using Parallel Execution.