3.13.4 PD/Análisis y programación de algoritmos paralelos (3 horas Core-Tier1)
Temas:
Core Tier2
- Caminos críticos, el trabajo y la duración y la relación con la ley de Amdahl.
- Aceleración y escalabilidad.
- Naturalmente (vergonzosamente) algoritmos paralelos.
- Patrones Algoritmicos paralelos (divide-y-conquista, map/reduce, amos-trabajadores, otros)
- Algortimos específicos (p.e., MergeSort paralelo)
Electivo
- Algoritmos de grafos paralelo (por ejemplo, la ruta más corta en paralelo, árbol de expansión paralela)
- Cálculos de matriz paralelas.
- Productor-consumidor y algoritmos paralelos segmentados.
- Ejemplos de algoritmos paralelos no-escalables.
Objetivos de Aprendizaje:
Core-Tier2:
- Definir: camino crítico, trabajo y span [Familiarizarse]
- Calcular el trabajo y el span y determinar el camino crítico con respecto a un diagrama de ejecución paralela. [Usar]
- Definir speed-up y explicar la noción de escalabilidad de un algoritmo en este sentido [Familiarizarse]
- Identificar tareas independientes en un programa que debe ser paralelizado [Usar]
- Representar características de una carga de trabajo que permita o evite que sea naturalmente paralelizable [Familiarizarse]
- 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]
- Descomponer un problema (por ejemplo, contar el número de ocurrencias de una palabra en un documento) via operaciones map y reduce [Usar]
Elective:
- Proporcionar un ejemplo de un problema que se corresponda con el paradigma productor-consumidor [Familiarizarse]
- Dar ejemplos de problemas donde el uso de pipelining sería un medio eficaz para la paralelización [Familiarizarse]
- Implementar un algoritmo de matriz paralela [Usar]
- Identificar los problemas que surgen en los algoritmos del tipo productor-consumidor y los mecanismos que pueden utilizarse para superar dichos problemas [Familiarizarse]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM