Arquitecturas Multiprocesador
Plan 96
Curso |
Cuatrimestre |
Carácter |
Créditos |
Quinto |
Primero |
Optativo |
6 (4T + 2P) |
3/Oct/12:
Inicio de las clases:
- El curso empieza el miércoles 3 de octubre
|
|
Presentación
Los sistemas multiprocesador (MP) son un tipo de arquitectura con una importancia
creciente y ampliamente difundido. La mayoría de los constructores
de computadores ofrece máquinas en las que están presentes
más de una CPU, configuración que es hoy en día
de uso habitual en casi todos los sistemas de tamaño medio y grande,
incluso ya en ordenadores personales.
Asimismo, los fabricantes de procesadores incorporan a sus arquitecturas,
desde hace unos años, los mecanismos necesarios para que éstos
se puedan emplear fácilmente, y con un coste reducido (publicidad
de Sun Microsystems en 1999: "si compra un procesador, le regalamos
otro"), en la construcción de este tipo de sistemas.
Esta tendencia se ha visto reforzada en los últimos años con la
aparición de los multicore, es decir, varios núcleos por procesador.
En los próximos años veremos máquinas con bastantes procesadores, cada uno
de ellos con multitud de núcleos. Por tanto, comprender como funcionan
y saber explotar correctamente esta potencia de cómputo se vuelve algo
necesario para cualquier ingeniero informático.
Esta asignatura pretende mostrar una panóramica general de los
MP, haciendo hincapié en dos cuestiones: 1) los problemas que surgen
de la existencia de más de una CPU y las distintas soluciones
que se han propuesto; y 2) el cómo un programa puede sacar partido
a la existencia de varios procesadores, fundamentalmente, en la vida real,
a través de su "paralelización" manual.
En el desarrollo de la asignatura se tratará de hacer siempre
referencia a las realizaciones comerciales, presentándose además
globalmente tres sistemas representativos de los principales tipos de arquitecturas.
Se pretende que las clases teóricas de la asignatura tenga un
carácter fundamentalmente participativo, fomentándose
el debate y la discusión en todo momento. Se tratará, por
tanto, de clases alejadas de la forma tradicional "unidireccional" de enseñanza,
primando aquí más el tratar de entender por qué
se hacen las cosas, con sus pros y contras, y buscando en su caso soluciones
alternativas, que el decir meramente que se hacen de determinada
manera. En particular, se dedicará parte del tiempo de clase a la
discusión de algún artículo reciente de interés
o a la presentación y el debate sobre algún tema puntual
que aparezca durante el desarrollo de las clases (pulsando aquí
puedes encontrar los artículos y temas que se debatieron en otros
cursos).
Los alumnos deberán realizar obligatoriamente una práctica
de paralelización de un programa (véase el apartado de Prácticas)
y de manera voluntaria, además, la presentación en clase
de uno de los estudios de ejemplo propuestos.
En la evaluación de la asignatura se
tendrá en cuenta el examen de la asignatura, las prácticas
realizadas y el grado de asistencia y participación en clase del
alumno.
Para cualquier consulta sobre el curso puedes ponerte en contacto con
el coordinador de la asignatura,
Antonio García Dopico.
Curso 2012/13
Lugar:
Horario:
-
Miércoles: 10:00-11:00
-
Jueves: 15:00-17:00
|
L |
M |
X |
J |
V |
9:00 |
|
|
|
|
|
10:00 |
|
|
|
|
|
11:00 |
|
|
|
|
|
12:00 |
|
|
|
|
|
13:00 |
|
|
|
|
|
14:00 |
|
|
|
|
|
15:00 |
|
|
|
|
|
16:00 |
|
|
|
|
|
Profesorado:
-
Antonio García Dopico
(coordinador)
-
Luis M. Gómez Henríquez
-
Fernando Pérez Costoya
Programa
La asignatura comprende los siguientes temas, de los que aparecen aquí
sólo los principales epígrafes. Para un índice más
detallado pulsa aquí.
-
Introducción
-
¿Es la ejecución paralela una necesidad?
-
Clasificación de las arquitecturas paralelas
-
Multiprocesadores (MP)
-
Paralelización
-
Clasificación de los MP
-
Ejemplos
-
MP de memoria compartida
-
Introducción
-
Problemática
-
Programación
-
Modelo de coherencia de memoria
-
Coherencia de caches
-
Ejemplos
- MP de memoria distribuida
-
Introducción
-
Problemática
-
Programación
-
Ejemplos
-
Programación paralela
-
Sincronización
-
Particionamiento
-
Planificación
-
Evaluación de programas: sistemas de visualización
-
Redes de interconexión
-
Sistemas Operativos para MP
-
Introducción
-
Multiprocesamiento simétrico vs. asimétrico
-
Sincronización
-
Planificación
-
Otros aspectos
Prácticas
Los alumnos deberán abordar, individualmente,
la paralelización de una sencilla aplicación, tanto mediante el uso
de OpenMP como mediante el uso de MPI.
Luego deberá ejecutar dichos programas en máquinas paralelas de la facultad
para evaluar el resultado obtenido.
Se realizará un estudio de los resultados obtenidos,
tanto desde el punto de vista de la dificultad de la programación
como en su aspecto cuantitativo, analizando la mejora obtenida frente a
la aplicación secuencial original.
Bibliografía
Dada la continua "ebullición" de la materia, con constantes
nuevas aportaciones y propuestas, se utilizarán fundamentalmente
artículos procedentes de congresos y publicaciones periódicas
así
como de la documentación que suministran los constructores
de MP. Adicionalmente, a modo de "libro de texto", se empleará
la obra de Culler et al. También se
recomienda, aunque no sea un texto dedicado exclusivamente a los MP, el
libro de Sima
et al.
-
D.E. Culler, J.P. Singh, with A. Gupta: "Parallel Computer Architectures:
a Hardware/Software Approach", Morgan Kaufmann, 1999.
-
D. Sima, T. Fountain, P. Kacsuk. ; "Advanced Computer Architectures:
a Design Space Approach", Addison Wesley, 1997.

Evaluación
Se realizará un examen de la asignatura, que pretende ser sólo
una comprobación de que el alumno ha asimilado los principales conceptos
presentados (¡y discutidos!) en clase. La calificación final
se calculará con la siguiente ponderación:
-
Examen: 50%
-
Prácticas: 35%
-
Asistencia y participación en clase: 15%
Actualizado el 3 de octubre de 2012.
Antonio García Dopico.