Computación Paralela

Computación Paralela

Objetivo

El propósito de este curso es discutir técnicas y aplicaciones de la computación paralela y de forma en que se construyen aplicaciones para este paradigma. En este curso nos concentraremos en el uso de varias computadoras que se comunican entre sí ya sea a través de una memoria compartida o mediante el envío de mensajes. 

 

Contenido

  1. Computación Paralela

    1. ¿Por qué computación paralela?

    2. Tipos de computadoras paralelas

    3. Fundamentos del diseño de computadoras paralelas

 

  1. Programas paralelos

    1. Aplicaciones como casos de estudio

    2. El proceso de paralelización

    3. Un caso de studio

 

  1. Programación paralela para mejorar el rendimiento

    1. Descomposición

    2. Mapeo

    3. Calendarización

    4. Evaluación del rendimiento

    5. Medidas de eficiencia

 

  1. Programación con memoria compartida

    1. Procesos

    2. Threads

 

  1. Programación paralela mediante intercambio de mensajes

    1. Principios básicos

    2. Herramientas de software

      1. PVM

      2. MPI

 

  1. Estrategias generales de programación paralela

    1. Particionamiento

    2. Divide y vencerás

    3. Aplicaciones tipo pipeline

    4. Aplicaciones de tipo síncrono

    5. Balance de carga

 

  1. Algoritmos y aplicaciones

    1. Algoritmos de ordenamiento

    2. Algoritmos numéricos

    3. Algoritmos para procesamiento de imágenes

    4. Algoritmos de búsqueda y optimización

 

 

Bibliografía

  1. Culler, David, Singh, J. P. And Gupta, A. Parallel Computer Architecture: A Hardware/Software Approach. Morgan Kauffman Publishers, 1998. ISBN 1-55860-343-3.

  2. Foster, Ian T. Designing and Building Parallel Programs. Addisson-Wesley, 1995. ISBN 0-201-57594-9.

  3. Ananth Grama, George Karypis, Vipin Kumar, Anshul Gupta. An Introduction to Parallel Computing: Design and Analysis of Algorithms (2nd Ed.). Addisson-Wesley 2003. ISBN 0201648652.

  4. Pacheco, Peter. Parallel Programming With MPI. Morgan Kaufmann. ISBN 1558603395.

  5. Quinn, Michael J. Parallel Programming in C with MPI and OpenMP. McGraw-Hill. 2003. ISBN 0072822562 .

  6. Wilkinson, Barry and Allen, Michael. Parallel Programming: Techniques and Aplications Using Networked Workstations and Parallel Computers (2nd Ed.). Prentice-Hall Inc. 2004, ISBN 0131405632.