Sistemas Paralelos


Semestre:

Fecha de elaboración:

Enero de 2014

Fecha de revisión:

Febrero de 2014

Elaborado por:

Magali Arellano Vázquez, Lorena Díaz González

Ciclo de formación:

Profesional

Área curricular:

Ciencias de la Disciplina

Tipo de unidad:

Teórica

Carácter de unidad:

Obligatoria

Clave:

SP01FP050010

Créditos:

10

Semestre:

Horas Teoría:

5

Horas Práctica:

0

Programas académicos en los que se imparte:

Licenciatura en Ciencias Áreas terminales en Matemáticas, Física, Bioquímica y Biología Molecular, y Ciencias Computacionales y Computación Científica

Prerrequisitos:

Comprende los conocimientos básicos sobre la arquitectura y operación de un sistema operativo así como las funciones básicas que desempeña.

Antecedentes Recomendadas:

Ninguna

Consecuentes Recomendadas:

  • Ninguna

Presentación de la unidad de aprendizaje:

En esta unidad de aprendizaje se estudian los fundamentos de la computación en paralelo, tales como métricas de desempeño, arquitectura paralelas, clasificación de algoritmos paralelos, diseño de algoritmos paralelos mediante diversas técnicas paralelas basadas en estructuras de datos avanzadas y lenguajes de programación.


Propósito de la unidad de aprendizaje:

Adquirir conocimientos sobre los principios fundamentales de los sistemas paralelos y realizar un conjunto de prácticas para que aprenda a implementar la computación concurrente en un cluster.


Competencias profesionales:

Codifica y maneja operaciones de estructuras de datos avanzadas.Conoce la arquitectura de los sistemas operativos, el tipo de algoritmos y estructuras de datos que los componen. Comprende la importancia del uso de un sistema operativo para ejecutar los procesos y gestionar los recursos de un sistema.

Contribución al perfil de egreso:

Se aportan competencias académicas y profesionales en el área terminal de su elección, que posibiliten el adecuado desempeño para seleccionar, movilizar y gestionar las disposiciones y los recursos disponibles para resolver problemas en un campo determinado de situaciones de acción, así como la capacidad para el aprendizaje de forma autónoma.


Secuencia temática:

  1. I Introdución.
    1. ¿Qué es el cómputo paralelo?
    2. ¿Por qué usar paralelismo?
    3. Problemas a resolver. Cuándo usar y cuándo no algoritmos paralelos.
    4. Lay de Amdahl. Investigación. ¿Qué establece la ley de Amdahl?
  2. II Métricas de desempeño.
    1. Fracción serial.
    2. Tiempo de ejecución.
    3. Eficiencia.
    4. Speed Up.
  3. III Arquitecturas paralelas.
    1. Clasificación según Flynn.
    2. Una instrucción, un dato (SISD).
    3. Múltiples instrucciones, un dato (MISD).
    4. Una instrucción, múltiples datos (SIMD).
    5. Múltiples instrucciones, múltiples datos (MIMD).
  4. IV Clasificación de algoritmos paralelos.
    1. Algoritmos pipeline/paralelismo algorítmico.
    2. Algoritmos particionados/paralelismo geométrico
    3. Asíncrono/algoritmos relajados.
  5. V Diseño de algoritmos paralelos.
    1. Introducción.
    2. Partición, comunicación, agrupación, asignación.
    3. Grafos acíclicos diridos.
  6. VI Técnicas paralelas.
    1. Árboles balanceados. Prefijo paralelo. Salto de apuntadores.
    2. Dividir para conquistar. Particionamiento. Pipelining.
    3. Cascada acelerada. Rompimiento de simetrías. Sort paralelos.
    4. Árboles de comparación. Árbol de expansión mínima. Descomposición de grafos.
    5. Distancias más cortas.
  7. VII Lenguajes de programación.
    1. Esquema map-reduce. Hadoop.
    2. Message passing interface (MPI).
    3. Ejemplos en MPI. Práctica con MPI en un cluster.

Criterios de Evaluación:

  • Exámenes parciales: 30%
  • Examen final: 30%
  • Participación en clase: 10%
  • Búsqueda de información: 10%
  • Otra (especifique): Tareas: 20%


Bibliografía básica:

  • White O’Reilly, Tom. 2009. Hadoop: the definitive guide. Ed. Media.
  • Pacheco, Peter S. 2011. An introduction to parallel programming. Ed. Morgan Kaufmann Publishers.
  • Gebali, Fayez. Algorithms and parallel computing. Ed. John Wiley & Sons.
  • Quinn, Michael J. Parallel computing, theory and practice. 2a edición. Ed. McGraw-Hill.
  • Lastovetsky, Alexey. 2003. Parallel computing on heterogeneous networks. Ed. John Wiley & Sons.

Bibliografía complementaria:

  • Hwang, Kai y Briggs, Fayé A. 1988. Arquitectura de computadoras y procesamiento paralelo. Ed. McGraw-Hill.
  • Quinn, Michael J. 1988. Designing efficient algorithms for parallel computers. Ed. McGraw-Hill.
  • Karp, Alan H. y Flatt, Horace P. Measuring parallel processor performance. Ed. ACM.
  • Casavant, Thomas L., Tvrdík Pavel y Plásil Frantisek. Parallel computers: theory and practice. Ed. IEEE Computer Society Press Los Alamitos. Estados Unidos.