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,sistemas distribuidos 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 Protocolos de direccionamientos. Primitivos de Sincronización Llamadas a procedimiento remotos (RPC). Objetos distribuidos: Paso de mensajes frente a objetos distribuidos. Sistemas de objetos distribuidos. La arquitectura de Java RMI. API de Java RMI. Comparación entre RMI y la API de socketcs. UNIDAD Nro. 3: Sistemas Distribuidos. Transacciones Atómicas. Espacio de Trabajo Privado. Writeahead log. Protocolo "Two Phase Commit". Control de Concurrencia. UNIDAD Nro. 4: Programación Paralela, Computación Paralela de Memoria Distribuida y de Memoria Compartida. Medidas de performance de Sistemas de Alta performance. Velocidad. Aceleración. Conjeturas. Aceleración lineal. UNIDAD Nro. 5: Computación Paralela de Memoria Distribuida: Programación con Pasaje de Mensajes. Creación Dinámica de Procesos. Rutinas básicas de Pasaje de Mensajes. Concepto de Procesos Demonios. Grupos. Administración de grupos. Comunicaciones Colectivas. Casos de estudio: PVM y MPI. UNIDAD Nro. 6: Computación Paralela de Memoria Compartida. 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. 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 de Threads en espacio del Kernel o en espacio del Usuario. Ventajas y Desventajas de cada una. |
VII - Plan de Trabajos Prácticos |
---|
Prácticos de Aula
Práctico 1 Características de Sistemas Distribuidos y paralelos. Práctico 2 Comunicación en Sistemas Distribuidos. Práctico 3 Transacciones Atómicas Procesadores. Prácticos de Laboratorio (seis) Práctico 1 Routing en Distintas Topologías. Práctico 2 Invocación de Métodos Remotos (Java RMI). Práctico 3 Programación orientada a pasajes de mensajes (PVM). Práctico 4 Programación orientada a pasaje de mensajes (MPI). Práctico 5 Programación con Threads Práctico 6 Programación con OpenMP |
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(6 prácticos de laboratorio). 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. Con respecto a la recuperación por trabajo, la misma se realizará en los términos establecidos y fijados por la universidad. d) Realizar un proyecto de fin de materia La cátedra fijará el conjunto de aplicaciones paralelas a desarrollar por los alumnos. 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 entre 7 (siete)y 8(ocho) 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 Se considerará como alumnos libres aquellos que teniendo aprobados los prácticos de máquina y el trabajo de investigación correspondientes al último año académico del dictado de la materia, estén libres por parciales o faltas. La condición de alumno libre se mantiene hasta la finalización del próximo dictado de la materia(finalización del primer cuatrimestre 2009) Los alumnos que encontrándose en condiciones de rendir libre la materia y deseen hacerlo, deberán: 1) Rendir un examen sobre los prácticos. 2) Rendir el examen final de la materia. El orden de la lista anterior es relevante y la no aprobación de uno significa la automática desaprobación del examen libre. |
IX - Bibliografía Básica |
---|
[1] Akl, S. G. The Design and Analysis of Parallel Algorithms. Prentice-Hall. 1989.
[2] M. L. Liu,Computación Distribuida. Fundamentos y Aplicaciones, Addison-Wesley, 1rd. Edición, 2004 [3] Qusay H. Mahmoud. Distributed Programming with Java, Manning, 1999. [4] Foster I. Designing and Building Parallel Programs. Addison-Wesley. 1994. [5] Geist A., Beguelin A., Dongarra J., Jiang W., Mancheck R., Sunderam V. PVM: Parallel Virtual Machine - A Users Guide and Tutorial for Network Parallel Computing. MIT Press. [6] Hwang, K., Briggs, F. Computer architecture and parallel processing. McGraw-Hill. 1985. [7] Quinn M. Parallel Computing. Theory and Practice. Second Edition. McGraw-Hill, Inc. 1994. [8] Wilkinson B. & Allen M. Parallel Programming: Techniques and Application using Networked Workstations, Prentice-Hall. 1996. [9] Comer D. Internetworking with TCP/IP Vol I y II, Prentice Hall, Englewood Cliff, N.J., 1990. [10] Coulouris George, Jean Dollimore, Tim Kindberg. Distributed Systems Concepts and Design Addison Wesley Publishing Company (Second Edition). [11] A. Tanenbaum, M. van Steen, Distributed Systems: Principles and Paradigms, Prentice Hall, 2002 [12] H. Deitel. Operating Systems. 3th edition. Addison-Wesley. 2004 [13] C. Leopold. Parallel and Distributed Computing: a survey of Models, paradigms and approaches. John Wiley & Son, Inc. 2001. |
X - Bibliografia Complementaria |
---|
[1] Apuntes de la Cátedra
[2] Artículos de Internet |
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: Comunicación en Sistemas Distribuidos UNIDAD Nro. 3: Sistemas Distribuidos. Transacciones Atómicas. UNIDAD Nro. 4: Computación Paralela de Memoria Distribuida y de Memoria Compartida. UNIDAD Nro. 5: Computación Paralela de Memoria Distribuida: Programación con Pasaje de Mensajes. UNIDAD Nro. 6: Computación Paralela de Memoria Compartida. |
XIII - Imprevistos |
---|
|