MATERIA: Procesos Paralelos y Distribuidos

CLAVE: COMP-760

SEMESTRE DE UBICACION: Séptimo

AREA: CIENCIAS DE LA COMPUTACION


OBJETIVOS: Este curso tiene que ver con el diseño, estructura y uso de sistemas con procesadores que interactúan. Incluye conceptos de la mayoría de las áreas de ciencias de la computación. Son muy importantes para el soporte básico para sistemas paralelos y distribuídos los conceptos de Algoritmos y estructuras de datos, lenguajes de programación, arquitectura, sistemas operativos e ingeniería de softward, mientras que los Conceptos de Cómputo Numérico, Bases de Datos e Inteligencia Artificial e Interfases máquina-hombre son importantes en prácticamente todas las aplicaciones.

Los temas a tratar incluyen concurrencia y sincronización; soporte arquitectónico; construcciones en los lenguajes de programación para proceso en paralelo; algoritmos paralelos y su complejidad; mensajes vs llamadas remotadas a procedimientos vs. Modelos con memoria compartida; alternativas estructurales (amo-esclavo, cliente-servidor, totalmente distribuído, objetos que cooperan); acoplamiento (justo vs. suelto); nombramientos y ligados; conceptos relacionados con verificación, validación y mantenimiento; tolerancia a fallas y confiabiidad; duplicación y como evitarla; seguridad; estándares y protocolos; preocupaciones respecto al tiempo (persistencia, serialización); coherencia de los datos; balanceo y programación de las cargas; aplicaciones apropiadas.

RECOMENDACIONES AL MAESTRO DEL CURSO:

  • Los trabajos asignados de programación se deberán llevar a cabo idealmente en una arquitectura de multiproceso, ya sea simulada o real

TEMARIO:

  1. Computadoras paralelas

    • Paralelismo e interacción

    • Panorama histórico del paralelismo

    • Arquitectura paralelas

  2. Sistemas distribuidos

    • Sistemas con proceso totalmente distribuido

    • Redes y estructuras de interconexion

    • Diseño de un sistema de proceso distribuido

  3. Programación para proceso paralelo y distribuido

    • Compilación de programas para ejecucion paralela

    • Programacion para procesadores vectoriales

  4. Arquitecturas de computadoras futuras

    • Computo de flujo de datos

    • El enfoque funcional

    • La Maquina de conexion (Connection Machine)

BIBLIOGRAFIA:

  • Atre, S., Distributed Databases, Cooperative Processing, ant netvorking, McGraww-Hikll, 1992

  • Sharp, J. A., An Introduction to Distributed and Parallel Processing, Blackwell Scientific Publications, Oxford, 1987

BIBLIOGRAFIA COMPLEMENTARIA:

  • Ananda, A. L.; Srinivasan, B.; Editores, Distribured Computing Systems: Concepts an Structures, IEEE Computer Society Press, 1991

  • Casavant, T. L.; Singhal, M.; Editores, Readings in Distributed Computing Systems, IEEE Computer Society Press, 1992

  • Lilja, D. L.; Editor., Architectural Alternatives for Exploiting Parallelism, IEEE Computer Society Press, l992

  • Alkinson, C., Object-oriented Reuse, Concurrency And Distribution, An ADA-Based Approach, ACM Press, Addison-Wesley Publishing Company, 1991