Parallel Computing
The Wolfram Language 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 Wolfram Language allows immediate support of a variety of existing and new parallel programming paradigms and data-sharing models.
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
CriticalSection — synchronize concurrent access using lock variables
$SharedVariables ▪ $SharedFunctions ▪ UnsetShared
Setup and Configuration »
LaunchKernels — launch a specified number of subkernels
$KernelCount — number of running subkernels
$KernelID ▪ 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
Remote Computation »
LocalEvaluate — evaluate an expression in a local kernel
RemoteEvaluate — evaluate an expression in one or more remote kernels