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 |
---|---|---|
Simulink | Ability to run multiple Simulink simulations using Ability to run multiple simulations in rapid accelerator mode using |
Documentation: Running Parallel Simulations Example: Parameter Sweep in Rapid Accelerator Mode Video: Parallel Simulations (1:06) |
Bioinformatics Toolbox | Ability to distribute pairwise alignments to a computer cluster using functions for progressive alignment of multiple sequences ( |
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) Examples: |
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 |
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 the solution space with single and multiple objective solvers. The multistart solver runs a gradient-based local solver from all starting points and can be run in parallel |
Documentation: |
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 GPU acceleration for popular image processing functions such as |
Documentation: Image Processing Toolbox See GPU Computing section for a complete list of GPU-enabled functions |
MATLAB Coder | 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 |
Documentation:
Parallel Computing for Optimization
|
Optimization Toolbox | Accelerating gradient estimation in nonlinear solvers | 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 |
Robust Control Toolbox | Parallel computing support for tuning control systems with the |
Release notes: Robust Control Toolbox |
Signal Processing Toolbox | GPU acceleration for |
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
|
|
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: Parallel execution support for fitting multiclass support vector machines and other classifiers: Support in Parallel execution support for D-optimal design generation functions: Parallel execution support for functions with multiple starting points: More than 90 GPU-enabled functions in Statistics and Machine Learning Toolbox, including probability distribution, descriptive statistics, and hypothesis testing |
Documentation: Parallel Computing Support for Resampling Methods Parallel Computing Support for Random Number Generation Parallel Computing Support for D-optimal Designs Parallel Computing Support for k-Means Clustering Parallel Computing Support for Nonnegative matrix factorization Statistics and Machine Learning Toolbox Functions with gpuArray Arguments |
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*, Simulink Compiler, and Spreadsheet Link
* Parallel Computing Toolbox and MATLAB Parallel Server can be used to scale deployed applications previously created using MATLAB Compiler and MATLAB Compiler SDK