Parallel computing allows you to carry out many calculations simultaneously. Large problems can often be split into smaller ones, which are then solved at the same time.
The main reasons to consider parallel computing are to
Save time by distributing tasks and executing these simultaneously
Solve big data problems by distributing data
Take advantage of your desktop computer resources and scale up to clusters and cloud computing
With Parallel Computing Toolbox™, you can
Accelerate your code using interactive parallel computing
tools, such as parfor
and parfeval
Scale up your computation using interactive Big Data
processing tools, such as distributed
, tall
, datastore
,
and mapreduce
Use gpuArray
to speed up your
calculation on the GPU of your computer
Use batch
to offload your calculation
to computer clusters or cloud computing facilities
Here are some useful Parallel Computing concepts:
CPU: Central Processing Unit, comprising multiple cores or processors
GPU: Graphics Processing Unit, now widely used for general purpose (GP) GPU computing
Node: standalone computer, containing one or more CPUs / GPUs. Nodes are networked to form a cluster or supercomputer
Thread: smallest set of instructions that can be managed independently by a scheduler. On a GPU, multiprocessor or multicore system, multiple threads can be executed simultaneously (multi-threading)
Batch: off-load execution of a functional script to run in the background
Scalability: increase in parallel speedup with the addition of more resources
What tools do MATLAB® and Parallel Computing Toolbox offer?
MATLAB workers: MATLAB computational engines for parallel computing, associated with the cores in a multicore machine
Parallel pool: a parallel pool of MATLAB workers can
be created using parpool
Speed up: Accelerate your code by running on multiple MATLAB workers, using parfor
and parfeval
Scale up: Partition your big data
across
multiple MATLAB workers,
using distributed
arrays and mapreduce
Asynchronous processing: Use parfeval
to
execute a computing task without waiting for it to complete