What Is Parallel Computing?

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

Related Topics