Parallel Computing

Mathematica provides a uniquely integrated and automated environment for parallel computing. With zero configuration, full interactivity, and seamless local and network operation, the symbolic character of the Mathematica language allows immediate support of a variety of existing and new parallel programming paradigms and data-sharing models.

ReferenceReference

Automatic Parallelization

Parallelize evaluate an expression using automatic parallelization

ParallelTry try different computations in parallel, giving the first result obtained

Computation Setup & Broadcasting »

ParallelEvaluate evaluate an expression on all parallel subkernels

DistributeDefinitions distribute definitions to all parallel subkernels

ParallelNeeds load the same package into all parallel subkernels

Data Parallelism »

ParallelMap ▪ ParallelTable ▪ ParallelSum ▪ ...

ParallelCombine evaluate expressions in parallel and combine their results

Concurrency Control »

ParallelSubmit submit expressions to be evaluated concurrently

WaitAll wait for all concurrent evaluations to finish

WaitNext wait for the next of a list of concurrent evaluations to finish

Shared Memory & Synchronization »

SetSharedVariable specify symbols with values to synchronize across subkernels

SetSharedFunction specify functions whose evaluations are to be synchronized

$SharedVariables ▪ $SharedFunctions ▪ UnsetShared ▪ CriticalSection

Setup and Configuration »

LaunchKernels launch a specified number of subkernels

$KernelCount number of running subkernels

$KernelID ▪ Kernels ▪ AbortKernels ▪ CloseKernels ▪ ...

$ProcessorCount number of processor cores on the current computer

Multi-Processor and Multicore Computation

Compile create compiled functions that run in parallel

Parallelization execute compiled functions in parallel

CompilationTarget create machine-level parallel compiled functions

GPU Computing »

CUDAFunctionLoad load a function to run on a GPU using CUDA

OpenCLFunctionLoad load a function to run on a GPU using OpenCL

New to Mathematica? Find your learning path »
Have a question? Ask support »