Parallel Computing Toolbox

Perform parallel computations on multicore computers, GPUs, and clusters

Parallel Computing Toolbox™ lets you solve computationally and data-intensive problems using multicore processors, GPUs, and computer clusters. High-level constructs such as parallel for-loops, special array types, and parallelized numerical algorithms enable you to parallelize MATLAB® applications without CUDA or MPI programming. The toolbox lets you use parallel-enabled functions in MATLAB and other toolboxes. You can use the toolbox with Simulink® to run multiple simulations of a model in parallel. Programs and models can run in both interactive and batch modes.

The toolbox lets you use the full processing power of multicore desktops by executing applications on workers (MATLAB computational engines) that run locally. Without changing the code, you can run the same applications on clusters or clouds (using MATLAB Parallel Server™). You can also use the toolbox with MATLAB Parallel Server to execute matrix calculations that are too large to fit into the memory of a single machine.

Get Started:

Scale Up MATLAB Applications

Parallel Computing Toolbox allows your applications to take advantage of computers equipped with multicore processors and GPUs.

Speed Up MATLAB with Multicore Computers

Use parallel for loops (parfor) to run independent iterations in parallel on multicore CPUs, for problems such as parameter sweeps, optimizations, and Monte Carlo simulations. parfor automates the creation of parallel pools and manages file dependencies, so that you can focus on your work. Key functions in several MATLAB and Simulink products have parallel enabled functions. With Parallel Computing Toolbox, these functions can distribute computations across available parallel computing resources. You can execute parallel applications interactively and in batch.

Use Parallel Computing Toolbox to speed up MATLAB and Simulink with additional CPU and GPU resources.

Accelerate MATLAB with GPUs

Parallel Computing Toolbox enables you to use NVIDIA® GPUs directly from MATLAB using GPUArray. More than 500 MATLAB functions run automatically on NVIDIA GPUs, including fft, element-wise operations, and several linear algebra operations such as lu and mldivide, also known as the backslash operator (\). Key functions in several MATLAB and Simulink products, such as Deep Learning Toolbox, have GPU enabled functions. You can use GPUs without having to write any additional code, so you can focus on your applications rather than performance tuning. Advanced developers can call their own CUDA code directly from MATLAB. You can utilize multiple GPUs on desktop, compute clusters, and cloud environments.

Use GPUArray and GPU-enabled MATLAB functions to help speed up MATLAB operations without low-level CUDA programming.

Process Big Data

Parallel Computing Toolbox extends the tall arrays and mapreduce capabilities built into MATLAB so that you can run on local workers for improved performance. You can then scale tall arrays and mapreduce up to additional resources with MATLAB Parallel Server on traditional clusters or Apache Spark™ and Hadoop® clusters. You can also prototype distributed arrays on the desktop and then scale up to additional resources with MATLAB Parallel Server.

Analyze big data sets in parallel using MATLAB tall arrays.

Speed Up Simulink Simulations

With Parallel Computing Toolbox, you can easily run many Simulink simulations at the same time on multiple CPU cores. Easily run the same model with different inputs or parameter settings in Monte Carlo analyses, parameter sweeps, model testing, experiment design, and model optimization.

Run Multiple Simulations in Parallel

Use the parsim function to run your simulations in parallel. The function distributes multiple simulations to multicore CPUs to speed up overall simulation time. parsim also automates the creation of parallel pools, identifies file dependencies, and manages build artifacts, so that you can focus on your design work. You can execute parallel simulations interactively or in batch.

Use the parsim function to run multiple simulations in parallel.

Simulation Manager

Simulation manager is integrated with parsim and can be used to monitor and visualize multiple simulations in one window. You can select an individual simulation and view its specifications, as well as use the Simulation Data Inspector to examine simulation results. You can also conveniently run diagnostic tasks or abort simulations.

Monitor multiple simulations in one window with Simulation Manager.

Leverage Parallel-Enabled Simulink Functionality

In addition to using parsim and batchsim functions to run Simulink simulations, there are a number of Simulink products, including Simulink Design Optimization™, Reinforcement Learning Toolbox™, Simulink Test™, and Simulink Coverage™ that provide parallel capability, so you can run simulations in parallel without writing any code.

Parallel simulations can be enabled by a preference or flag setting.

Parallel Computing in Clusters and Clouds

Prototype and debug applications on the desktop or virtual desktop and scale to clusters or clouds without recoding. Develop interactively and move to production with batch workflows.

Run a MATLAB Desktop in Public and Private Clouds

Speed up analysis and simulations by taking advantage of multiple on-demand, high-performance CPU and GPU machines. Run MATLAB and Simulink directly on virtual machines in the Amazon Web Services® (AWS) environment or in Microsoft Azure®.

You can also speed up your deep learning applications by training neural networks in the MATLAB Deep Learning Container on NVIDIA GPU Cloud or on NVIDIA DGX.

Run MATLAB and Simulink directly on EC2 instances in the Amazon Web Services (AWS) environment.

Scale to Clusters with MATLAB Parallel Server

Develop a prototype on your desktop, and scale to a compute cluster or clouds without recoding. Access different execution environments from your desktop just by changing your cluster profile. 

Easily scale up your applications using additional cluster and cloud resources without changing your code.

See Parallel Computing Toolbox in Action

Latest Features


Support for gpuArray and Statistics & Machine Learning Toolbox

New queries to support code portability

query the underlying data type of classes and for support of Parallel Computing Toolbox functionality

Expanded enhanced capabilities

use new and enhanced gpuArray functions, tall array functionality, and distributed array functionality

Improved scalability with MATLAB Parallel Server

MATLAB Job Scheduler now supports 4,000 workers

HTCondor support

use the preconfigured plugin scripts for the generic scheduler interface

AWS Batch support

use the MATLAB Parallel Server with AWS Batch reference architecture and preconfigured plugin scripts for the generic scheduler interface

See the release notes for details on any of these features and corresponding functions.