Cs-95-016. PROCESAMIENTO PARALELO EN SISTEMAS DE TIEMPO REAL
- ALGORITMOS Y ARQUITECTURAS-
Profesor: Dr. Julio Solano González
e-mail: julio@uxdea4.iimas.unam.mx
OBJETIVO GENERAL: Introducir los conceptos fundamentales del procesamiento paralelo, incluyendo las arquitecturas, estructuras y algoritmos de programación típicos que permitan al alumno conocer el impacto y los beneficios propios del uso de esta tecnología. El curso se enfocará en particular al desarrollo de sistemas de alto desempeño en varias aplicaciones de la ingeniería (ej. procesamiento de señales, procesamiento de imágenes y robótica, entre otras). El procesador paralelo Transputer y los lenguajes paralelos, Occam y C, serán utilizados como vehículos para el desarrollo de diversos casos de estudio.
TEMARIO:
1. Procesamiento Paralelo
1.1 Introducción
1.2 Necesidad del Cómputo de Alto Desempeño
1.3 Beneficios y Problemática
1.4 Retos
1.5 Sistemas de tiempo real
2. Clasificación de Arquitecturas Paralelas
2.1 Introducción
2.2 Modelos Computacionales
2.3 SISD
2.4 MISD
2.5 SIMD
2.6 MIMD
2.7 El transputer y otras Arquitecturas
- Transputer
3.1 Arquitectura
3.2 Lenguajes de programación
3.3 Ambientes e interfaces
3.4 Sistemas de desarrollo
4. Programación de Procesos Paralelos
4.1 Metodología
4.2 Programación en un procesador
4.3 Programación en múltiples procesadores
4.4 Configuración de programas
4.5 Mapeo de procesos en procesadores
4.6 Casos de estudio (Control, Robótica, Algoritmos Genéticos, etc.)
5. Métricas de Desempeño
5.1 Factores que limitan el desempeño
5.2 Speed-up
5.3 Eficiencia
5.4 Fracción Serial
5.5 Otras métricas
6. Comunicación entre Procesadores
6.1 Memoria y variables compartidas
6.2 Memoria y variables distribuidas
6.3 Modelos de interconexión
6.4 Métricas para modelos de Interconexión
7 Construcción de Algoritmos Paralelos
7.1 Algoritmos pipelined/paralelismo algorítmico
7.2 Algoritmos particionados/paralelismo geométrico
7.3 Algoritmos asíncronos/paralelismo relajado
7.4 Algoritmo farm de procesos
7.5 Balance de carga estático y dinámico
7.6 Distribución de carga dinámica y estática
8. Proyectos de Aplicación
TÉCNICAS DE ENSEÑANZA
Las sesiones teóricas estarán complementadas con lecturas relativas a los temas tratados y con tareas periódicas de programación. Los estudiantes tendrán que presentar exposiciones periódicas en la clase. Para desarrollar el trabajo práctico se utilizará una plataforma multiusuario de procesamiento paralelo, accesible vía red local. Este sistema está integrado por 16 transputers y cuenta con compiladores paralelos y herramientas de software.
EVALUACIÓN
La evaluación de los estudiantes se realizará sobre la base de las siguientes actividades: Tareas, Exámenes, Proyecto Final.
BIBLIOGRAFÍA
Lewis, T.G., "Introduction to Parallel Computing", Prentice Hall International Editions, 1992.
Stone, H.S., "High Performance Computer Architectures", Addison Wesley, 1987.
Krishnamurthy, E.V., "Parallel Processing Principles and Practice", Addison Wesley, 1989.
Pountain, D., May, D.; "A Tutorial Introduction to Occam Programming", Blackwell Scientific Publications, 1987.
Jones, G., Goldsmith, M., "Programming in Occam 2", Prentice Hall, 1988.
Harp, G., "Transputer Applications", Computer Systems Series, Pitman, 1989.
Bertsekas, D.P., "Parallel and Distributed Computation-Numerical Methods", Prentice Hall, 1989.
Thoeni, U., "Programming Real-Time Multicomputers for Signal Processing", Prentice Hall, 1994.
Pitas, I., "Parallel Algorithms for Digital Image Processing, Computer Vision..., Wiley, 1993.
Webber, H.C., "Image Processing and Transputers", IOS Press, 1992.