Map (parallel pattern)

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Map is an idiom in parallel computing where a simple operation is applied to all elements of a sequence, potentially in parallel.[1] It is used to solve embarrassingly parallel problems: those problems that can be decomposed into independent subtasks, requiring no communication/synchronization between the subtasks except a join or barrier at the end.

When applying the map pattern, one formulates an elemental function that captures the operation to be performed on a data item that represents a part of the problem, then applies this elemental function in one or more threads of execution, hyperthreads, SIMD lanes or on multiple computers.

Some parallel programming systems, such as OpenMP and Cilk, have language support for the map pattern in the form of a parallel for loop;[2] languages such as OpenCL and CUDA support elemental functions (as "kernels") at the language level. The map pattern is typically combined with other parallel design patterns. E.g., map combined with category reduction gives the MapReduce pattern.[3]:106–107

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.