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.
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.
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
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.
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.
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
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.
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.
Leverage Parallel-Enabled Simulink Functionality
In addition to using
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 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.
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.
See Parallel Computing Toolbox in Action
Enhanced GPU Functionality for Sparse
Use new and enhanced
gpuArray functions, such as sparse diag, sparse trace, and others
NVIDIA CUDA Toolkit 10.1 Support
Update to NVIDIA CUDA Toolkit 10.1
gpuArray Data Loading on CPU
gpuArray data on CPU, when no GPU is present
Distributed Array Functionality
Use new and enhanced distributed array functionality, such as decomposition,
topkrows, and more
Batch Jobs Documentation
Explore batch workflows with new examples such as Run Batch Job and Access Files from Workers
Common Job Schedulers Performance
Improved performance of vectorized task creation for local and third-party schedulers
mexcuda functions without installing the CUDA toolkit