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. For example, map combined with category reduction gives the MapReduce pattern.[3]: 106–107 

See also

edit

References

edit
  1. ^ Samadi, Mehrzad; Jamshidi, Davoud Anoushe; Lee, Janghaeng; Mahlke, Scott (2014). Paraprox: Pattern-based approximation for data parallel applications (PDF). Proc. 19th Int'l Conf. on Architectural support for programming languages and operating systems. doi:10.1145/2541940.2541948.
  2. ^ Wolfe, Michael (6 April 2015). "Compilers and More: The Past, Present and Future of Parallel Loops". HPCwire.
  3. ^ Michael McCool; James Reinders; Arch Robison (2013). Structured Parallel Programming: Patterns for Efficient Computation. Elsevier. ISBN 978-0124159938.

📚 Artikel Terkait di Wikipedia

Embarrassingly parallel

embarrassingly parallel problems. Cellular automaton Connection Machine CUDA framework Manycore processor Map (parallel pattern) Massively parallel Multiprocessing

Map (higher-order function)

Functional programming Higher-order function List comprehension Map (parallel pattern) In a non-strict language that permits general recursion, such as

Map (disambiguation)

list with the results MAP (file format) Map (parallel pattern), an idiom in parallel computing .map (top-level domain), a top-level domain owned by Google

MapReduce

MapReduce is a programming model and an associated implementation for processing and generating big data sets with a parallel and distributed algorithm

Autostereogram

autostereogram, every pixel in the image is computed from a pattern strip and a depth map. A hidden 3D scene emerges when the image is viewed with the

List of C++ software and tools

research and optimization library Parallel Augmented Maps — ordered sets, ordered maps, and augmented maps. Parallel Patterns Library — Microsoft library that

Join-pattern

Join-patterns provides a way to write concurrent, parallel and distributed computer programs by message passing. Compared to the use of threads and locks

Algorithmic skeleton

computing, algorithmic skeletons, or parallelism patterns, are a high-level parallel programming model for parallel and distributed computing. Algorithmic skeletons