Ministerio de Cultura y Educación Universidad Nacional de San Luis Facultad de Ciencias Físico-Matemáticas y Naturales Departamento: Informatica Área: Area II: Sistemas de Computacion |
I - Oferta Académica | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
II - Equipo Docente | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
III - Características del Curso | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
IV - Fundamentación |
---|
El presente curso esta destinado a alumnos de 5to. año de la Lic. en Ciencias de la Computación. La materia asume familiaridad con la programación secuencial y se concentra en técnicas y herramientas para diseñar programas en entornos distribuidos y paralelos.
|
V - Objetivos |
---|
El objetivo de esta materia es proveer una visión amplia que guíe a estudiantes de la cátedra que deseen construir programas eficientes para computadoras distribuidas y paralelas. La materia trata los conceptos más importantes de la temática y provee una discusión del diseño de algoritmos paralelos, de su análisis de performance y de la construcción de programas, con numerosos ejemplos que ilustran los principios fundamentales.
Objetivos específicos: Desarrollar en el alumno la capacidad de conocer y distinguir las características esenciales de sistemas de computación no convencionales; máquinas de alta performance, máquinas paralelas, y otras arquitecturas de uso específico. |
VI - Contenidos |
---|
UNIDAD Nro. 1:
Sistemas Distribuidos y Paralelos - Hardware y Software. Introducción. Comparación entre Computación Distribuida y Paralela Clasificación de FLYNN. MIMD: Clasificación. MIMD de Memoria Compartida y de Memoria Distribuida Hardware MIMD Software MIMD Características de Sistemas Distribuidos UNIDAD Nro. 2: Comunicación en Sistemas Distribuidos Modelo Cliente- Servidor Modelo con protocolos en capa. Modelo referencial OSI (Open System Interconnection) Protocolos de direccionamientos Primitivos de Sincronización Modelo RPC UNIDAD NRO. 3: Medidas de performance de Sistemas de Alta performance. Velocidad. Aceleración. Conjeturas. Aceleración lineal. UNIDAD Nro. 4: Sistemas Distribuidos. Transacciones Atómicas. Espacio de Trabajo Privado. Writeahead log. Protocolo "Two Phase Commit". Control de Concurrencia. UNIDAD Nro. 5: Programación con Threads Concepto de Thread. Características de los Threads. Threads y Procesos: Similitudes y Diferencias. Beneficios de los Threads: Througput, Procesadores Múltiples, Interfaces del Usuario. Server para Requerimientos del Usuario o Prevención de Deadlock. Estructura de Programa y Comunicación. Desventajas de los Threads. Aspectos del Diseño de Paquetes de Threads: Administración, Sincronización, Tipos de Variables. Scheduling. Librerías deThreads en espacio del Kernel o en espacio del Usuario. Ventajas y Desventajas de cada una. UNIDAD Nro. 6: Programación Paralela Programación con Pasaje de Mensajes. Creación Dinámica de Procesos. Rutinas básicas de Pasaje de Mensajes Máquina Virtual Paralela. Concepto de Procesos Demonios Administración de grupos. Comunicaciones Colectivas Máquinas de Memoria Compartida MIMD de Memoria Compartida Distribuida (DSM) Programación de Máquinas de Memoria Compartida Programación con centinelas (OpenMP) Directivas, Rutinas de Librería y Variables de ambientes. |
VII - Plan de Trabajos Prácticos |
---|
Práctico nro. 1 (Aula) Características de Sistemas Distribuidos
Práctico nro. 2 (Aula) Comunicación en Sistemas Distribuidos Práctico nro. 3 (Aula) Transacciones Atómicas Práctico nro. 1 (Máquina) Routing en Topologías con múltiples Procesadores. Práctico nro. 2 (Máquina) Programación con Threads Práctico nro. 3 (Máquina) Programación orientada a pasajes de mensajes (PVM) Práctico nro. 4 (Máquina) Programación orientada a pasaje de mensajes (MPI) Práctico nro. 5 (Máquina) Análisis de la Performance de Programas Paralelos. |
VIII - Regimen de Aprobación |
---|
a) Realizar los prácticos de aula.
Se entiende por práctico de aula a todo práctico que la cátedra fije para cada unidad, a realizar o entregar en el aula. b) Aprobar los prácticos de máquina. Se entiende por práctico de máquina a todo práctico que involucre programación. Cada práctico se deberá entregar y aprobar en la fecha fijada por la cátedra o en una fecha de recuperación. También para la aprobación de los mismos se requerirá una asistencia del 80% de los horarios establecidos para prácticos de máquina. c) Aprobar los exámenes parciales. La cátedra establece un parcial a realizarse durante su dictado. Los alumnos deberán aprobar tal parcial para regularizar, pudiendo recuperarlo a lo sumo una vez. d) Realizar un proyecto de fin de materia La cátedra fijará el conjunto de aplicaciones paralelas, entre las cuales los deberán seleccionar para implementar. El trabajo podrá ser individual o grupal, pudiendo incluir búsqueda bibliográfica y elaboración de monografías. Deberá ser expuesto ante el equipo de cátedra y para toda la clase. Sólo los alumnos que superen las instancias b) y c) con una calificación mayor a 8 (ocho) podrán promocionar la materia realizando el punto d). Los alumnos que superen las instancias b) y c) con una calificación menor a 7 (siete) podrán regularizar la materia realizando el punto d). EXAMEN FINAL El examen final será escrito u oral, pudiendo incluir uno o varios temas teóricos y/o prácticos. EXAMEN LIBRE Los alumnos que encontrándose en condiciones de rendir libre la materia, deseen hacerlo, deberán contactarse con el responsable de la cátedra quince días antes de la constitución de la mesa examinadora, a los efectos de recibir el conjunto de trabajos prácticos similares a los realizados por los alumnos regulares durante el cursado normal de la asignatura. Dichos trabajos se llevarán a cabo bajo la continua supervisión de los colaboradores de la cátedra. Si tal prueba resultara satisfactoria, los alumnos rendirán en la fecha establecida, un examen final con la misma modalidad que los alumnos regulares. |
IX - Bibliografía Básica |
---|
[1] Akl, S. G.
[2] The Design and Analysis of Parallel Algorithms. Prentice-Hall. 1989. [3] Bonorden O., Juurlink B., Otte I., Rieping I. [4] PUB: Library. Design, Implementation and performance. 13th. International Parallel Processing Symposium . IEEE. 1999. [5] Carlini, Villano [6] Transputers and Parallel Architectures. Ellis Horowood Limited. 1991. [7] Foster I. [8] Designing and Building Parallel Programs. Addison-Wesley. 1994. [9] Geist A., Beguelin A., Dongarra J., Jiang W., Mancheck R., Sunderam V. [10] PVM: Parallel Virtual Machine - A Users Guide and Tutorial for Network Parallel Computing. MIT Press. [11] Hwang, K., Briggs, F. [12] Computer architecture and parallel processing. McGraw-Hill. 1985. [13] Quinn M. [14] Parallel Computing. Theory and Practice. Second Edition. McGraw-Hill, Inc. 1994. [15] Tinetti F., De Giusti A. [16] Procesamiento paralelo. Conceptos de Arquitecturas y Algoritmos. Primera edición. Agosto de 1998. Editorial Exacta. [17] Wilkinson B. & Allen M. [18] Parallel Programming: Techniques and Application using Networked Workstations, Prentice-Hall. 1996. [19] Comer D. [20] Internetworking with TCP/IP Vol I y II, Prentice Hall, Englewood Cliff, N.J., 1990. [21] Coulouris George, Jean Dollimore, Tim Kindberg. [22] Distributed Systems Concepts and Design Addison Wesley Publishing Company (Second Edition). |
X - Bibliografia Complementaria |
---|
[1]
|
XI - Resumen de Objetivos |
---|
El presente curso esta destinado a alumnos de 5to. año de la Lic. en Ciencias de la Computación. La materia asume familiaridad con la programación secuencial y se concentra en técnicas y herramientas para diseñar programas paralelos. El objetivo de esta materia es proveer una visión amplia que guíe a estudiantes de la cátedra que deseen construir programas eficientes para computadoras distribuidas y paralelas. La materia trata los conceptos más importantes de la temática y provee una discusión del diseño de algoritmos paralelos, de su análisis de performance y de la construcción de programas, con numerosos ejemplos que ilustran los principios fundamentales. |
XII - Resumen del Programa |
---|
UNIDAD Nro.1: Sistemas Distribuidos y Paralelos. Hardware y Software UNIDAD Nro.2: Características de Sistemas Distribuidos. Objetivos de diseño: Requerimiento de usuarios. UNIDAD Nro.3: Comunicación en Sistemas Distribuidos. Modelo Cliente-Servidor UNIDAD Nro.4: Programación con Threads. UNIDAD Nro.5: Fundamentos de Computación Paralela. Evolución de Sistemas de Computadoras. Tendencias hacia el procesamiento paralelo. UNIDAD Nro.6: Programación Paralela. Programación con Pasaje de Mensajes. Programación en Máquinas de Memoria Compartida |
XIII - Imprevistos |
---|
|