Datos Identificativos 2019/20
Asignatura (*) Arquitectura de Altas Prestaciones Código 614473101
Titulación
Mestrado Universitario en Computación de Altas Prestacións / High Performance Computing (Mod. Presencial)
Descriptores Ciclo Periodo Curso Tipo Créditos
Máster Oficial 1º cuatrimestre
Primero Obligatoria 6
Idioma
Inglés
Modalidad docente Presencial
Prerrequisitos
Departamento Departamento profesorado máster
Enxeñaría de Computadores
Coordinador/a
Doallo Biempica, Ramon
Correo electrónico
ramon.doallo@udc.es
Profesorado
Blanco Heras, Dora
Doallo Biempica, Ramon
Fernández Rivera, Francisco
Touriño Dominguez, Juan
Vázquez Álvarez, Álvaro
Correo electrónico
ramon.doallo@udc.es
juan.tourino@udc.es
Web http://aula.cesga.es
Descripción general Mediante esta materia preténdese completar os coñecementos sobre arquitecturas de altas prestacións, para elo trátanse as arquitecturas paralelas modernas tanto desde o punto de vista funcional como de deseño. Estes coñecementos facilitarán ao alumno o desenvolvemento de algoritmos paralelos correctos e eficientes en base ás características arquitectónicas dos sistemas utilizados. As materias relacionadas coa programación vanse ver, por tanto, claramente beneficiadas.

Competencias del título
Código Competencias del título
A1 CE1 - Definir, evaluar y seleccionar la arquitectura y el software más adecuado para la resolución de un problema
A2 CE2 - Analizar y mejorar el rendimiento de una arquitectura o un software dado
A3 CE3 - Conocer los conceptos y las técnicas básicas de la computación de altas prestaciones
A4 CE4 - Profundizar en el conocimiento de herramientas de programación y diferentes lenguajes en el campo de la computación de altas prestaciones
A8 CE8 - Ser capaz de aplicar los conocimientos, capacidades y aptitudes adquiridas a la realidad empresarial y profesional, planificando, gestionando y evaluando proyectos en el campo de la computación de altas prestaciones.
B1 CB6 - Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en el desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación
B2 CB7 - Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio
B3 CB8 - Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios
B4 CB9 - Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades
B5 CB10 - Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.
B6 CG1 - Ser capaz de buscar y seleccionar la información útil necesaria para resolver problemas complejos, manejando con soltura las fuentes bibliográficas del campo
B7 CG2 - Elaborar adecuadamente y con cierta originalidad composiciones escritas o argumentos motivados, redactar planes, proyectos de trabajo, artículos científicos y formular hipótesis razonables.
B9 CG4 - Ser capaz de planificar y realizar tareas de investigación, desarrollo e innovación en ámbitos relacionados con la computación de altas prestaciones
B10 CG5 - Ser capaz de trabajar en equipo, especialmente de carácter multidisciplinar, y ser hábiles en la gestión del tiempo, personas y toma de decisiones.
C1 CT1 - Utilizar las herramientas básicas de las tecnologías de la información y las comunicaciones (TIC) necesarias para el ejercicio de su profesión y para el aprendizaje a lo largo de su vida

Resultados de aprendizaje
Resultados de aprendizaje Competencias del título
El alumno conocerá los distintos tipos de arquitecturas paralelas y su clasificación. AP1
AP3
BP1
BP5
CP1
El alumno conocerá los conceptos básicos de organización y deseño de una arquitectura paralela tanto a nivel de microarquitectura como de sistemas multiprocesador. AP2
AP8
BP2
BP4
BP6
El alumno conocerá los principios de diseño y los principales componentes de un sistema multiprocesador. AP2
AP3
AP8
BP1
BP3
BP7
BP9
BP10
CP1
El alumno aprenderá a analizar las prestaciones de una arquitectura paralela. AP2
AP4
AP8
BP4
BP7
BP9
CP1

Contenidos
Tema Subtema
Tema 1. Computadores paralelos - Breve Introducción Histórica
- Niveles de paralelismo: desde la microarquitectura hasta los supercomputadores
- Clasificación
Tema 2. Diseño de multiprocesadores, multinúcleo y many-core - Introducción
- Características arquitectónicas de los sistemas multiprocesador, multinúcleo y many-core
- Organización del sistema de memoria
Tema 3. Coherencia de la caché - Protocolos de coherencia caché
- Protocolos de snooping (arquitecturas UMA)
- Protocolos basados en directorios (arquitecturas CC-NUMA)
Tema 4. Sincronización y consistencia de memoria en multiprocesadores - Primitivas de sincronización
- Soporte hardware para sincronización
- Implementaciones software de sincronización
- Modelos de consistencia de memoria
- Comparación entre los modelos de consistencia
Tema 5. Redes de interconexión - Tipos de redes
- Componentes básicos de una red: links, encaminadores e - interfaces de red
- Parámetros de rendimiento
- Espacio de diseño en redes de interconexión: Clasificación, topología, técnicas de conmutación, algoritmos de encaminamiento, control de flujo, bloqueos
- Validación de prestaciones en redes de interconexión
Tema 6. Sistemas distribuídos: clústers Introducción a las arquitecturas clúster
- Arquitectura de un cluster
- Nodos
- Redes de interconexión
- Software
- Paquetes de herramientas
- Aplicaciones de las arquitecturas clúster: Alta productividad, alto rendimiento y alta disponibilidad
- Planificación y balanceo da carga
Tema 7. Introducción al análisis de rendimiento. - Análisis de rendimiento: motivación.
- Conceptos básicos sobre el análisis del rendimiento.
- Caracterización y detección de problemas de rendimiento.
- Aspectos arquitectónicos que influyen en el rendimiento.

Planificación
Metodologías / pruebas Competéncias Horas presenciales Horas no presenciales / trabajo autónomo Horas totales
Sesión magistral A1 A3 B1 B5 22 0 22
Prácticas de laboratorio A2 A4 B2 B6 B10 C1 24 24 48
Trabajos tutelados A8 B3 B4 B7 B9 0 72 72
Prueba mixta B4 B7 2 0 2
 
Atención personalizada 6 0 6
 
(*)Los datos que aparecen en la tabla de planificación són de carácter orientativo, considerando la heterogeneidad de los alumnos

Metodologías
Metodologías Descripción
Sesión magistral Exposición oral por parte del profesor con ayuda de material editado electrónicamente, acompañada por preguntas dirigidas a los estudiantes con el fin de afianzar los conocimientos y mejorar el aprendizaje. Puede haber debates sobre algunos puntos específicos de los contenidos de la materia.
Prácticas de laboratorio Se realizarán trabajos prácticos en el laboratorio, bien mediante resolución de problemas o bien a nivel de programación, para apoyar los contenidos vistos en la sesión magistral.
Trabajos tutelados Los estudiantes elaborarán en grupo o individualmente trabajos dirigidos sobre una temática específica de la materia. En algunos casos se podría solicitar una exposición en clase de estos trabajos ante el resto de compañeros.
Prueba mixta El profesor puede dedicar un tiempo a preguntar a los estudiantes sobre sus prácticas y trabajos tutelados para complementar la evaluación.

Atención personalizada
Metodologías
Prácticas de laboratorio
Trabajos tutelados
Descripción
Prácticas de laboratorio:
Análisis con el estudiante del trabajo práctico en el laboratorio, y defensa de su práctica una vez ha terminado.

Trabajos tutelados:
Guía del estudiante para la realización del trabajo tutelado asignado, verificando periódicamente que se están cumpliento los objetivos planificados.

Evaluación
Metodologías Competéncias Descripción Calificación
Prácticas de laboratorio A2 A4 B2 B6 B10 C1 Valórase o correcto funcionamento, a estructuración do código, e aa comprensión dos conceptos traballados. Tamén valórase a participación activa do estudante durante as sesións de prácticas. 39
Trabajos tutelados A8 B3 B4 B7 B9 No caso de desenvolvemento de código, valoranse os mesmos aspectos que nas prácticas. No caso de traballos escritos, valorase a capacidade de comprensión e síntesis sobre o tema proposto, e a calidade da presentación. 59
Prueba mixta B4 B7 Tanto no caso das prácticas como dos traballos tutelados o profesor pode facer preguntas concretas aos estudantes que poden complementar a avaliación. 2
 
Observaciones evaluación

Consiste en una evaluación continua basada en la realización de trabajos
académicamente dirigidos (60%) y prácticas junto con el seguimiento de la participación activa durante las clases (40%).

Evaluación de la convocatoria ordinaria (Enero): Se realizará según la
evaluación continua detallada mas arriba. No habrá examen de la
asignatura.

Evaluación de la convocatoria extraordinaria (Julio):
Para superar la evaluación continua será necesario entregar los
trabajos académicamente dirigidos y prácticas que se hayan suspendido
durante la convocatoria ordinaria. No habrá examen.

NO PRESENTADO
Se considerará no presentado al alumno que no tenga entregado ningún trabajos tutelado o prácticas.

Durante
los procesos de evaluación los profesores pueden solicitar a los
estudiantes que se identifiquen pidiendo la presentación del DNI o
pasaporte, o haciendo los controles previos o posteriores que consideren
oportunos. A aquellos alumnos que presenten trabajos o realicen pruebas
de evaluación de forma no presencial, se les podrá solicitar también la
firma digital de los mismos y/o una declaración jurada sobre la autoría
de los mismos.

















* Alumnos
matriculados a tiempo parcial: Se dotará de flexibilidad horaria a los alumnos
matriculados a tiempo parcial para la realización de las prácticas/trabajos de
la asignatura usando para ello las horas de tutorías de los profesores.




Fuentes de información
Básica

Dado que se trata de estudiar no solo los fundamentos de la arquitectura de supercomputadores sino también los avances mas recientes, mucha de la información bibliográfica se consultará en artículos publicados en revista y disponibles online así como en otras fuentes de consulta disponibles. La bibliografía básica necesaria para seguir cada parte da materia será indicada por el profesor durante las clases.

Bibliografía básica. Los libros por los que se sigue más directamente algunas partes de la materia son:
1. Arquitectura de Computadores, Xullo Ortega, Mancia Anguita e Alberto Prieto. Thompson. 2005.
2. High Performance Cluster Computing, Rajkumar Buyya, ed., Prentice Hall PTR, 1999. ISBN 0-13-013784-7, 0-13-013785-5.

Complementária

Bibliografía complementaria. Los siguientes son libros que permiten consultar mas profundamente algunos contenidos:
1. Parallel Computer Architecture, David E. Culler, Jaswinder Pal Singh e Anoop Gupta. Morgan Kaufmann Publishers. 1999.
2. In Search of Clusters, 2ª ed., Gregory Pfister, Prentice Hall, 1998, ISBN: 0138997090.
3. Organización e Arquitectura de Computadores (7ª edición), W. Stallings. Prentice Hall. 2007.
4. Computer Architecture: a Quantitative Approach (6ª edición), John L. Hennessy e David A. Patterson. Morgan Kaufmann Publishers. 2017.


Recomendaciones
Asignaturas que se recomienda haber cursado previamente

Asignaturas que se recomienda cursar simultáneamente
Programación Paralela/614473102

Asignaturas que continúan el temario
Programación de Arquitecturas Heterogéneas/614473103
HPC en la Nube/614473106
Programación Paralela Avanzada/614473107

Otros comentarios


(*) La Guía Docente es el documento donde se visualiza la propuesta académica de la UDC. Este documento es público y no se puede modificar, salvo cosas excepcionales bajo la revisión del órgano competente de acuerdo a la normativa vigente que establece el proceso de elaboración de guías