Wolfram Computation Meets Knowledge

Wolfram Language & System Documentation Center Wolfram Language Home Page »

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

File-Based Parallelism

FileSystemScan  ▪  FileSystemMap

Top