Parallel Computing Toolbox

Built-in Parallel Computing Support in MathWorks Products

Key functions in several MathWorks products offer built-in ability to take advantage of parallel computing resources without requiring any extra coding. To take advantage of built-in parallel computing functionality on your multicore desktop, you need Parallel Computing Toolbox. To use this functionality on larger resources such as computer clusters, you need MATLAB Distributed Computing Server in addition to the toolbox.

Simulink

Product Name Support Summary Additional Resources
Simulink

Ability to run multiple Simulink simulations using simcommand with parfor

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

Documentation: Running Parallel Simulations

Example: Parameter Sweep in Rapid Accelerator Mode

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

Code Generation

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

Computational Biology

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

Control System Design and Analysis

Product Name Support Summary Additional Resources
Robust Control Toolbox

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

Documentation: Speed Up Tuning with Parallel Computing Toolbox Software

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 and optimizing system response

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

Documentation: Speeding Up Response Optimization Using Parallel Computing

Release notes: Simulink Design Optimization

Video: Parallel Computing for Faster Parameter Estimation (4:25)

Image Processing and Computer Vision

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

Math, Statistics, and Optimization

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

Documentation:

Model-Based Calibration Toolbox

Parallel computing support for fitting multiple models to experimental data

Running of multiple optimizations in parallel

Documentation:

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 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

Documentation:

Signal Processing and Communications

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

comm.gpu.LDPCDecoder
comm.gpu.ConvolutionalEncoder
comm.gpu.TurboDecoder
comm.gpu.ViterbiDecoder
comm.gpu.BlockDeinterleaver
comm.gpu.BlockInterleaver
comm.gpu.ConvolutionalDeinterleaver
comm.gpu.ConvolutionalInterleaver
comm.gpu.PSKDemodulator
comm.gpu.PSKModulator
comm.gpu.AWGNChannel

MATLAB Compiler Support for GPU System Objects

Documentation: Simulation Acceleration Using Graphics Processing Units (GPUs)

Examples:

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

Verification, Validation, and Test

Product Name Support Summary Additional Resources
SystemTest

Ability to run test iterations on multiple processors or machines by applying the Distributed option

Conference paper: The Use of Computing Clusters and Automatic Code Generation to Speed Up Simulation Tasks

Webinar: Parallel Computing for Signal Processing Using SystemTest (35:45)