4.40.6.5 Análisis y programación de algoritmos paralelos (18 horas) [Habilidades a,b]

Referencias Bibliográficas: [Matloff, 2014,Quinn, 2003,Georg Hager, 2010] Temas
  1. Caminos críticos, el trabajo y la duración y la relación con la ley de Amdahl.
  2. Aceleración y escalabilidad.
  3. Naturalmente (vergonzosamente) algoritmos paralelos.
  4. Patrones Algoritmicos paralelos (divide-y-conquista, map/reduce, amos-trabajadores, otros)
    1. Algortimos específicos (p.e., MergeSort paralelo)
  5. Algoritmos de grafos paralelo (por ejemplo, la ruta más corta en paralelo, árbol de expansión paralela)
  6. Cálculos de matriz paralelas.
  7. Productor-consumidor y algoritmos paralelos segmentados.
  8. Ejemplos de algoritmos paralelos no-escalables.
Objetivos de Aprendizaje
  1. Definir: camino crítico, trabajo y span [Familiarizarse]
  2. Calcular el trabajo y el span y determinar el camino crítico con respecto a un diagrama de ejecución paralela. [Usar]
  3. Definir speed-up y explicar la noción de escalabilidad de un algoritmo en este sentido [Familiarizarse]
  4. Identificar tareas independientes en un programa que debe ser paralelizado [Usar]
  5. Representar características de una carga de trabajo que permita o evite que sea naturalmente paralelizable [Familiarizarse]
  6. Implementar un algoritmo dividir y conquistar paralelo (y/o algoritmo de un grafo) y medir empiricamente su desempeño relativo a su analogo secuencial [Usar]
  7. Descomponer un problema (por ejemplo, contar el número de ocurrencias de una palabra en un documento) via operaciones map y reduce [Usar]
  8. Proporcionar un ejemplo de un problema que se corresponda con el paradigma productor-consumidor [Usar]
  9. Dar ejemplos de problemas donde el uso de pipelining sería un medio eficaz para la paralelización [Usar]
  10. Implementar un algoritmo de matriz paralela [Usar]
  11. Identificar los problemas que surgen en los algoritmos del tipo productor-consumidor y los mecanismos que pueden utilizarse para superar dichos problemas [Usar]

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM