A map leképezés a funkcionális és a párhuzamos programozás idiómája. Lényege, hogy egy műveletet végrehajtanak egy sorozat minden tagjára. Mivel végezhető párhuzamosan, azért használják arra, hogy egyes problémákat párhuzamosan végrehajtható részletekre osszanak, amelyek nem igényelnek kommunikációt, legfeljebb egymás bevárását a végén.

Alkalmazásakor a funktor egy "elemi" függvényt vesz át, ezt hívja meg a lista minden elemére. Lista helyett más adatszerkezet is előfordulhat. A végrehajtást szálak, hiperszálak végzik, amelyeket SIMD lanek, többmagos processzorok futtatnak vagy több számítógép futtat. Tipikusan a párhuzamos programozás más eszközeivel társítják. Kategóriaredukcióval a MapReduce mintát adja.

Funkcionális nyelvek beépítve tartalmazzák. Egyes párhuzamos rendszereken, mint az OpenMP és a Cilk párhuzamos for ciklusként támogatják nyelvi szinten. Az OpenCL és a CUDA elemi függvényként tartalmazza.

Jegyzetek

Kategória:Programtervezési minták