# Parallel Computing Fundamentals

Parallel computing can help you to solve big computing problems
in different ways. MATLAB^{®} and Parallel Computing Toolbox™ provide
an interactive programming environment to help tackle your computing
tasks. If your code runs too slowly, you can profile it, vectorize
it, and use built-in MATLAB parallel computing support. Then
you can try to accelerate your code by using `parfor`

on
multiple MATLAB workers in a parallel pool. If you have big data,
you can scale up using distributed arrays or `datastore`

.
You can also execute a task without waiting for it to complete, using `parfeval`

,
so that you can carry on with other tasks. You can use different types
of hardware to solve your parallel computing problems, including desktop
computers, GPUs, clusters, and clouds.

## Functions

## Topics

### Basics

**Choose a Parallel Computing Solution**

Discover the most important functionalities offered by MATLAB and Parallel Computing Toolbox to solve your parallel computing problem.

**Run MATLAB Functions with Automatic Parallel Support**

Take advantage of parallel computing resources without requiring any extra coding.

**Interactively Run a Loop in Parallel Using parfor**

Convert a slow `for`

-loop into a
faster `parfor`

-loop.

**Plot During Parameter Sweep with parfor**

This example shows how to perform a parameter sweep in parallel and plot progress during parallel computations.

**Scale Up from Desktop to Cluster**

This example shows how to develop your parallel MATLAB® code on your local machine and scale up to a cluster.

Use batch to offload work from your MATLAB session to run in the background.

This example shows how to access a large data set in the cloud and process it in a cloud cluster using MATLAB capabilities for big data.

**Evaluate Functions in the Background Using parfeval**

Break out of a loop early and collect results as they become available.

Hundreds of functions in MATLAB and other toolboxes run automatically on a GPU if you supply a
`gpuArray`

argument.

**Train Network in the Cloud Using Automatic Parallel Support (Deep Learning Toolbox)**

This example shows how to train a convolutional neural network using MATLAB automatic support for parallel training.

### Learn More

Learn about MATLAB and Parallel Computing Toolbox.

Learn about starting and stopping parallel pools, pool size, and cluster selection.

**Choose Between Thread-Based and Process-Based Environments**

With Parallel Computing Toolbox, you can run your parallel code in different parallel environments, such as thread-based or process-based environments.

**Run MATLAB Functions in Thread-Based Environment**

Check support for MATLAB functions that you want to run in the background.

**Set Environment Variables on Workers**

Copy system environment variables from the client to workers in a cluster.

Write parallel code that can use parallel resources if you have Parallel Computing Toolbox and that still runs if you do not have Parallel Computing Toolbox.