Parallel Computing Toolbox™ supports distributed arrays to partition large arrays across multiple MATLAB® workers. You operate on the entire array as a single entity, however, workers operate only on their part of the array, and automatically transfer data between themselves when necessary. Simultaneous execution is supported by the single program multiple data (
spmd) language construct to facilitate communication between workers. Use distributed-enabled matrix operations and functions to work directly with these arrays without further modification. You can use distributed arrays in Parallel Computing Toolbox to run big data applications using the combined memory of your cluster.
|Create and access elements of distributed arrays from client
|Transfer distributed array,
Composite object, or
gpuArray object to local workspace
|Execute code in parallel on workers of parallel pool
|Create and access nondistributed variables on multiple workers from client
|Build and use constant from data or function handle
|Shut down parallel pool
|Redistribute codistributed array with another distribution scheme
|Access elements of arrays distributed among workers in parallel pool
|1-D distribution scheme for codistributed array
|2-D block-cyclic distribution scheme for codistributed array
|Create codistributed array from distributed data
for-loop over distributed range
|Local portion of codistributed array
|Global indices for local part of codistributed array
|Reduce arrays on
spmd workers (Since R2022b)
|Write distributed data to an output location
|Apply function to each page of distributed or GPU array
Examples and How To
- Create and Use Distributed Arrays
When your data array is too big to fit into the memory of a single machine, you can create a
- Run MATLAB Functions with Distributed Arrays
MATLAB functions that operate on distributed arrays.
- Distributing Arrays to Parallel Workers
distributedto create distributed arrays and partition the data among your workers.
- Run Single Programs on Multiple Data Sets
spmdstatements to run the same code on multiple datasets and control codistributed arrays.
- Access Worker Variables with Composites
Composite objects in the MATLAB client session let you directly access data values on the workers.
- Train Network in Parallel with Custom Training Loop (Deep Learning Toolbox)
This example shows how to set up a custom training loop to train a network in parallel.
- Use spmdReduce to Achieve MPI_Allreduce Functionality
In this example, we look at the
spmdReducefunction and the functions that build on it:
- Numerical Estimation of Pi Using Message Passing
This example shows the basics of working with spmd statements, and how they provide an interactive means of performing parallel computations.
- Choose Between spmd, parfor, and parfeval
Compare and contrast
spmdagainst other parallel computing functionality such as
- Nondistributed Versus Distributed Arrays
Describes the various types of arrays used in communicating jobs.
- Working with Codistributed Arrays
Describes how to use codistributed arrays for calculation.
- Looping Over a Distributed Range (for-drange)
Describes how to program a
for-loop with codistributed arrays.
- Work with Remote Data
Work with remote data in Amazon S3™, Azure® Blob Storage, or HDFS™.