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.
Automatic Parallelization
Parallelize — evaluate an expression using automatic parallelization
ParallelTry — try different computations in parallel, giving the first result obtained
ParallelEvaluate — evaluate an expression on all parallel subkernels
DistributeDefinitions — distribute definitions to all parallel subkernels
ParallelNeeds — load the same package into all parallel subkernels
ParallelCombine — evaluate expressions in parallel and combine their results
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
SetSharedVariable — specify symbols with values to synchronize across subkernels
SetSharedFunction — specify functions whose evaluations are to be synchronized
LaunchKernels — launch a specified number of subkernels
$KernelCount — number of running subkernels
$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
CUDAFunctionLoad — load a function to run on a GPU using CUDA
OpenCLFunctionLoad — load a function to run on a GPU using OpenCL