5.45.4.16 Algoritmos (4 horas) [Habilidades AG-C09,AG-C11]

Referencias Bibliográficas: [Pacheco and Malensek, 2021,Herlihy et al., 2020]

Temas

  1. Expresar e implementar algoritmos en lenguajes y marcos de trabajo dados, para iniciar actividades (por ejemplo hilos), usar constructos de memoria compartida, y APIs de canales, sockets y/o llamada a procedimiento remoto (RPC). Ver también: Fundamentos de los Lenguajes de Programación (FPL) -ParallelDistributedComputing.
    1. Ejemplos de datos paralelos incluyendo mapeo/reducción.
    2. Uso de APIs de canal, socket y/o RPC en un lenguaje dado, con control del programa para enviar (generalmente procedimental) vs recibir (generalmente reactivo o basado en RPC).
    3. Uso de bloqueos, barreras y/o sincronizadores para mantener la vivacidad sin introducir carreras.

Aprendizaje esperado (Learning Outcomes)

  1. Implementar un componente paralelo/distribuido basado en un algoritmo conocido [Implementar]
  2. Escribir un programa de datos paralelos que, por ejemplo, calcule el promedio de un arreglo de números [Escribir]
  3. Escribir un programa productor-consumidor en el que un componente genere números y otro calcule su promedio. Medir las aceleraciones cuando los números son escalares pequeños versus valores de multiprecisión grandes [Escribir]



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