Ministerio de Educación, Ciencia y Tecnología
Universidad Nacional de San Luis
FACULTAD DE CS. FISICO MAT. Y NAT.

ANEXO II

PROGRAMA DEL CURSO: SISTEMAS DISTRIBUIDOS Y PARALELISMO

DEPARTAMENTO DE:   INFORMATICA
AREA: Area II: Sistemas de Computacion (FCFMyNAÑO: 2005 (Id: 3909)
Estado: Aprobado

 

I - OFERTA ACADÉMICA

CARRERAS PARA LAS QUE SE OFRECE EL MISMO CURSO

PLAN DE ESTUDIOS
ORD. Nº

CRÉDITO HORARIO

   

SEM.

TOTAL

LIC. EN CIENCIAS DE LA COMPUTACION11/987105

II - EQUIPO DOCENTE

Funciones

Apellido y Nombre

Total hs en
este curso

Cargo y Dedic.

Carácter

Responsable

PRINTISTA, ALICIA MARCELA7  hs.PROFESOR ADJUNTO EXC.Efectivo
Auxiliar de 1ºTISSERA, PABLO CRISTIAN 7  hs.AYUDANTE DE 1RA. SEMI. Temporal

III - CARACTERÍSTICAS DEL CURSO

CREDITO HORARIO SEMANAL
MODALIDAD
REGIMEN

Teórico/

Práctico

Teóricas

Prácticas de

Aula

Práct. de lab/ camp/

Resid/ PIP, etc.

1c
7 Hs.
 Hs.
 Hs.
 Hs.
Asignatura
Otro: 
Duración: 14 semanas
Período del 14/03/04 al 17/06/03

IV.- FUNDAMENTACION


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.


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

UNIDAD Nro. 2:
Características de Sistemas Distribuidos
Compartición de recursos, facilidad de expansión (openness), concurrencia, escalabilidad, tolerancia a las faltas, transparencia.
Objetivos de diseño: Comunicación cliente - servidor. Modelo de pool de procesadores. Requerimiento de usuarios: funcionalidad, reconfiguración y calidad de servicio.

UNIDAD Nro. 3:
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
Llamadas a Procedimientos Remotos (RPC).
Problemas- Pasos Críticos.
Pasaje de Parámetros. Empaquetado (Marshalling)
Dynamic Binding: importación/Exportación

UNIDAD Nro. 4:
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.
Una librería particular: P-thread de Unix.

UNIDAD Nro. 5:
Fundamentos de Computación Paralela
Introducción
Evolución de Sistemas de Computadoras: generaciones de sistemas de computadoras.
Tendencias hacia el procesamiento paralelo.

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 (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) Progrmación orientada a pasaje de mensajes (MPI)
Práctico nro. 5 (Máquina) Análisis de la Performance de Porgramas Paralelos.


VIII - RÉGIMEN 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 90% de los horarios establecidos para prácticos de máquina.

c) Aprobar los exámenes parciales.
La cátedra establece parciale/s a realizarse durante su dictado. Los alumnos deberán aprobar tal/es parciales para regularizar, pudiendo recuperar a lo sumo una vez cada uno de ellos.

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 a), b) y c) con una calificación mayor a 7 (siete) podrán promocionar la materia realizando el punto d).

Los alumnos que superen las instancias a), 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. i tal prueba resultara satisfactoria, los alumnos rendirán en la fecha establecida, un examen final con la misma modalidad que los alumnos regulares.



IX.a - BIBLIOGRAFÍA BÁSICA


Akl, S. G.
The Design and Analysis of Parallel Algorithms. Prentice-Hall. 1989.
Bonorden O., Juurlink B., Otte I., Rieping I.
PUB: Library. Design, Implementation and performance. 13th. International Parallel Processing Symposium . IEEE. 1999.

Carlini, Villano
Transputers and Parallel Architectures. Ellis Horowood Limited. 1991.

Foster I.
Designing and Building Parallel Programs. Addison-Wesley. 1994.

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.

Hwang, K., Briggs, F.
Computer architecture and parallel processing. McGraw-Hill. 1985.

Quinn M.
Parallel Computing. Theory and Practice. Second Edition. McGraw-Hill, Inc. 1994.

Tinetti F., De Giusti A.
Procesamiento paralelo. Conceptos de Arquitecturas y Algoritmos. Primera edición. Agosto de 1998. Editorial Exacta.

Wilkinson B. & Allen M.
Parallel Programming: Techniques and Application using Networked Workstations, Prentice-Hall. 1996.

Comer D.
Internetworking with TCP/IP Vol I y II, Prentice Hall, Englewood Cliff, N.J., 1990.

Coulouris George, Jean Dollimore, Tim Kindberg.
Distributed Systems Concepts and Design Addison Wesley Publishing Company (Second Edition).



IX b - BIBLIOGRAFÍA COMPLEMENTARIA


Warning: fread() [function.fread]: Length parameter must be greater than 0. in /extra/alumnos/carreras/impresion.php3 on line 568



COMPLEMENTO DE DIVULGACION


OBJETIVOS DEL CURSO


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.

 

 

PROGRAMA SINTETICO


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

 


IMPREVISTOS