stringtranslate.com

Vergonzosamente paralelo

En computación paralela , una carga de trabajo o problema vergonzosamente paralelo (también llamado vergonzosamente paralelizable , perfectamente paralelo , deliciosamente paralelo o agradablemente paralelo ) es uno en el que se necesita poco o ningún esfuerzo para dividir el problema en varias tareas paralelas. [1] Esto se debe a la mínima o nula dependencia de la comunicación entre las tareas paralelas, o de los resultados entre ellas. [2]

Estos difieren de los problemas de computación distribuida , que necesitan comunicación entre tareas, especialmente comunicación de resultados intermedios. Son más fáciles de realizar en granjas de servidores que carecen de la infraestructura especial que se utiliza en un verdadero clúster de supercomputadoras . Son adecuados para grandes plataformas de computación voluntaria basadas en Internet, como BOINC , y sufren menos de desaceleración paralela . Lo opuesto a los problemas vergonzosamente paralelos son los problemas inherentemente seriales , que no se pueden paralelizar en absoluto.

Un ejemplo común de un problema embarazosamente paralelo es la representación de video 3D manejada por una unidad de procesamiento de gráficos , donde cada cuadro (método de avance) o píxel ( método de trazado de rayos ) se puede manejar sin interdependencia. [3] Algunas formas de descifrado de contraseñas son otra tarea embarazosamente paralela que se distribuye fácilmente en unidades centrales de procesamiento , núcleos de CPU o clústeres.

Etimología

"Vergonzosamente" se utiliza aquí para referirse a problemas de paralelización que son "vergonzosamente fáciles". [4] El término puede implicar vergüenza por parte de los desarrolladores o compiladores: "Debido a que tantos problemas importantes permanecen sin resolver principalmente debido a su complejidad computacional intrínseca, sería vergonzoso no desarrollar implementaciones paralelas de métodos de continuación de homotopía polinomial". [5] El término se encuentra por primera vez en la literatura en un libro de 1986 sobre multiprocesadores del creador de MATLAB , Cleve Moler , [6] quien afirma haber inventado el término. [7]

Un término alternativo, agradablemente paralelo , ha ganado cierto uso, tal vez para evitar las connotaciones negativas de vergüenza en favor de una reflexión positiva sobre la paralelización de los problemas: "Por supuesto, no hay nada embarazoso en estos programas en absoluto". [8]

Ejemplos

Un ejemplo trivial es el de la entrega de datos estáticos. Se necesitaría muy poco esfuerzo para que muchas unidades de procesamiento produjeran el mismo conjunto de bits. De hecho, el famoso problema de Hola Mundo podría paralelizarse fácilmente con pocas consideraciones de programación o costos computacionales.

Algunos ejemplos de problemas vergonzosamente paralelos incluyen:

Implementaciones

Véase también

Referencias

  1. ^ Herlihy, Maurice; Shavit, Nir (2012). El arte de la programación multiprocesador, reimpresión revisada (edición revisada). Elsevier. pág. 14. ISBN 9780123977953. Recuperado el 28 de febrero de 2016 . Algunos problemas computacionales son "vergonzosamente paralelos": se pueden dividir fácilmente en componentes que se pueden ejecutar simultáneamente.
  2. ^ Sección 1.4.4 de: Foster, Ian (1995). Diseño y construcción de programas paralelos. Addison–Wesley. ISBN 9780201575941. Archivado desde el original el 1 de marzo de 2011.
  3. ^ Alan Chalmers; Erik Reinhard; Tim Davis (21 de marzo de 2011). Representación paralela práctica. CRC Press. ISBN 978-1-4398-6380-0.
  4. ^ Matloff, Norman (2011). El arte de la programación R: un recorrido por el diseño estadístico de software , pág. 347. Sin almidón. ISBN 9781593274108
  5. ^ Leykin, Anton; Verschelde, Jan; Zhuang, Yan (2006). "Algoritmos de homotopía paralela para resolver sistemas polinómicos". Software matemático - ICMS 2006. Apuntes de clase en informática. Vol. 4151. págs. 225–234. doi :10.1007/11832225_22. ISBN 978-3-540-38084-9.
  6. ^ Moler, Cleve (1986). "Computación matricial en multiprocesadores de memoria distribuida". En Heath, Michael T. (ed.). Multiprocesadores de hipercubo . Sociedad de Matemáticas Industriales y Aplicadas, Filadelfia. ISBN 978-0898712094.
  7. ^ El hipercubo de Intel, segunda parte, publicado nuevamente en el blog Cleve's Corner del sitio web MathWorks
  8. ^ Kepner, Jeremy (2009). MATLAB paralelo para computadoras multinúcleo y multinodo , p. 12. SIAM. ISBN 9780898716733
  9. ^ Erricos John Kontoghiorghes (21 de diciembre de 2005). Manual de computación paralela y estadística. CRC Press. ISBN 978-1-4200-2868-3.
  10. ^ Yuefan Deng (2013). Computación paralela aplicada. World Scientific. ISBN 978-981-4307-60-4.
  11. ^ Josefsson, Simon; Percival, Colin (agosto de 2016). "Función de derivación de clave basada en contraseña de scrypt". tools.ietf.org . doi :10.17487/RFC7914 . Consultado el 12 de diciembre de 2016 .
  12. ^ Mathog, DR (22 de septiembre de 2003). "Parallel BLAST en bases de datos divididas". Bioinformática . 19 (14): 1865–6. doi : 10.1093/bioinformatics/btg250 . PMID  14512366.
  13. ^ Cómo hicimos que nuestro reconocedor de rostros fuera 25 veces más rápido (publicación del blog del desarrollador)
  14. ^ Shigeyoshi Tsutsui; Pierre Collet (5 de diciembre de 2013). Computación evolutiva masivamente paralela en GPGPU. Springer Science & Business Media. ISBN 978-3-642-37959-8.
  15. ^ Youssef Hamadi; Lakhdar Sais (5 de abril de 2018). Manual de razonamiento con restricciones paralelas. Springer. ISBN 978-3-319-63516-3.
  16. ^ Paquete de red simple de estaciones de trabajo (SNOW)

Enlaces externos