Estoy buscando notas de conferencias disponibles en línea u otros recursos que brinden una buena introducción a la programación paralela, al igual que el análogo paralelo de las clases básicas de informática.
Mi enfoque es el siguiente: si bien puedo hablar sobre divide y vencerás, algoritmos codiciosos, programación dinámica y similares, es decir, patrones básicos de algoritmos secuenciales (y problemas), y no tengo el lenguaje apropiado para clasificar enfoques en algoritmos paralelos.
Por ejemplo, me gustaría adquirir los términos apropiados para expresar el hecho de que los enfoques paralelos obvios para cada uno de los siguientes problemas tienen un comportamiento cualitativo diferente:
- establecer una matriz de enteros todo cero (escala perfectamente)
- sumando una matriz de enteros (cuantos más hilos use, más gastos generales).
- Dada una matriz, enumere los productos de cada entrada entre sí (si paralelizamos el doble canónico para bucle, el tiempo de ejecución se escalará al sqrt de los procesadores de números).
Un entorno de memoria compartida es suficiente, y la comunicación entre procesos no es tan relevante para mí (de hecho, estoy interesado en algoritmos que lo eviten en absoluto). Además, los aspectos técnicos son insignificantes para mí.