Mapa es un modismo en computación paralela donde se aplica una operación simple a todos los elementos de una secuencia, potencialmente en paralelo. [1] Se utiliza para resolver problemas embarazosamente paralelos : aquellos problemas que se pueden descomponer en subtareas independientes, sin requerir comunicación/sincronización entre las subtareas excepto una unión o barrera al final.
Al aplicar el patrón de mapa, uno formula una función elemental que captura la operación a realizar sobre un elemento de datos que representa una parte del problema, luego aplica esta función elemental en uno o más hilos de ejecución , hiperhilos , carriles SIMD o en múltiples computadoras .
Algunos sistemas de programación paralela, como OpenMP y Cilk , tienen soporte de lenguaje para el patrón map en forma de un bucle for paralelo ; [2] lenguajes como OpenCL y CUDA admiten funciones elementales (como " núcleos ") a nivel de lenguaje. El patrón map se combina típicamente con otros patrones de diseño paralelo. Por ejemplo, map combinado con reducción de categorías da como resultado el patrón MapReduce . [3] : 106–107