stringtranslate.com

Mapa (patrón paralelo)

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 

Véase también

Referencias

  1. ^ Samadi, Mehrzad; Jamshidi, Davoud Anoushe; Lee, Janghaeng; Mahlke, Scott (2014). Paraprox: Aproximación basada en patrones para aplicaciones paralelas de datos (PDF) . Proc. 19.ª Conferencia Internacional sobre soporte arquitectónico para lenguajes de programación y sistemas operativos. doi :10.1145/2541940.2541948.
  2. ^ Wolfe, Michael (6 de abril de 2015). "Compiladores y más: el pasado, el presente y el futuro de los bucles paralelos". HPCwire .
  3. ^ Michael McCool; James Reinders; Arch Robison (2013). Programación paralela estructurada: patrones para computación eficiente . Elsevier. ISBN 978-0124159938.