Map leképezés

A Wikipédiából, a szabad enciklopédiából
Jump to navigation Jump to search

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.[1] 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.

  1. (2014) „Paraprox: Pattern-based approximation for data parallel applicationsProc. 19th Int'l Conf. on Architectural support for programming languages and operating systems.. doi:10.1145/2541940.2541948.