Depto. Arquitectura


Arquitecturas Multiprocesador


Plan 96

Curso Cuatrimestre Carácter Créditos
Quinto Primero Optativo  6 (4T + 2P)

 
       
   

 
Presentación Curso 12/13 Programa Prácticas Bibliografía Evaluación

 
Tablón de Anuncios

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:
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í.
     
    1. Introducción
      1. ¿Es la ejecución paralela una necesidad?
      2. Clasificación de las arquitecturas paralelas
      3. Multiprocesadores (MP)
      4. Paralelización
      5. Clasificación de los MP
      6. Ejemplos
    2. MP de memoria compartida
      1. Introducción
      2. Problemática
      3. Programación
      4. Modelo de coherencia de memoria
      5. Coherencia de caches
      6. Ejemplos
    3. MP de memoria distribuida
      1. Introducción
      2. Problemática
      3. Programación
      4. Ejemplos
    4. Programación paralela
      1. Sincronización
      2. Particionamiento
      3. Planificación
      4. Evaluación de programas: sistemas de visualización
    5. Redes de interconexión
    6. Sistemas Operativos para MP 
      1. Introducción
      2. Multiprocesamiento simétrico vs. asimétrico
      3. Sincronización
      4. Planificación
      5. 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.

    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:
                                           


    Actualizado el 3 de octubre de 2012.
    Antonio García Dopico.