Guía docente de Arquitectura y Computación de Altas Prestaciones (Especialidad Ingeniería de Computadores) (296113L)

Curso 2026/2027
Fecha de aprobación: 06/07/2026

Grado

Grado en Ingeniería Informática

Rama

Ingeniería y Arquitectura

Módulo

Formación de Especialidad 3: Ingeniería de Computadores

Materia

Sistemas de Cómputo de Altas Prestaciones

Year of study

3

Semestre

2

ECTS Credits

6

Tipo

Obligatoria

Profesorado

Teórico

Víctor Vázquez Rodríguez. Grupo: A

Práctico

Víctor Vázquez Rodríguez Grupos: 1 y 2

Tutorías

Víctor Vázquez Rodríguez

Email
No hay tutorías asignadas para el curso académico.

Prerrequisitos y/o Recomendaciones

Se recomienda la superación de los contenidos y adquisición de competencias de las materias de formación básica y de rama, especialmente las asignaturas "Arquitectura de Computadores" y "Sistemas Concurrentes y Distribuidos".

En el caso de utilizar herramientas de IA para el desarrollo de la asignatura, el estudiante debe adoptar un uso ético y responsable de las mismas. Se deben seguir las recomendaciones del CEPRUD.

Breve descripción de contenidos (Según memoria de verificación del Grado)

  • Arquitecturas para computación de altas prestaciones.
  • Programación paralela y distribuida (herramientas, paradigmas, modelos, ...).
  • Red de interconexión en plataformas de altas prestaciones.
  • Evaluación de prestaciones.

Competencias

Competencias Generales

  • CG06. Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando hardware, software y redes.

Competencias Transversales

  • CT01. Capacidad de organización y planificación así como capacidad de gestión de la Información. 
  • CT02. Capacidad para tomar decisiones basadas en criterios objetivos (datos experimentales, científicos o de simulación disponibles) así como capacidad de argumentar y justificar lógicamente dichas decisiones, sabiendo aceptar otros puntos de vista. 

Resultados de aprendizaje (Objetivos)

Objetivos formativos particulares

  • Distinguir entre los diferentes tipos de plataformas de altas prestaciones. Identificar las características de una plataforma de altas prestaciones.
  • Distinguir entre los diferentes paradigmas de programación de arquitecturas de altas prestaciones.
  • Relacionar los paradigmas de programación con el hardware que lo implementa más directamente.
  • Reconocer y utilizar eficientemente los diferentes tipos de herramientas de programación de plataformas paralelas y distribuidas (compiladores, bibliotecas de funciones, lenguajes, directivas, …) y asociar herramientas de programación con su tipo.
  • Distinguir entre procesamiento paralelo y procesamiento distribuido y asociarlo a las herramientas de programación que se utilizan para implementarlo.
  • Generar código adaptado a la arquitectura en la que se va a ejecutar siguiendo una metodología concreta de diseño.
  • Depurar, optimizar y evaluar código para arquitecturas de altas prestaciones. Identificar posibles problemas en la ejecución y proponer posibles soluciones.
  • Explicar los conceptos de escalabilidad y eficiencia. Estudiar la escalabilidad de un sistema.
  • Distinguir y reconocer conceptos habituales en computación de altas prestaciones (ganancia en velocidad, ganancia escalable, isoeficiencia, etc.)
  • Explicar la organización y las tareas básicas de los componentes de una red de interconexión de altas prestaciones (interfaz de red, conmutadores y enlaces).
  • Describir las partes en las que se divide el diseño o análisis de una red de interconexión entre nodos de procesamiento en una plataforma de altas prestaciones.
  • Describir las alternativas de implementación de control de flujo, técnicas de conmutación, encaminamiento y topología en redes de interconexión entre nodos de una plataforma de altas prestaciones.
  • Evaluar las prestaciones de una red de interconexión de altas prestaciones.
  • Analizar críticamente las listas de computadores de altas prestaciones y su evolución.

Objetivos formativos de carácter general (Competencias según BOE de 4 de Agosto de 2009)

  • Describir las alternativas de implementación de control de flujo, técnicas de conmutación, encaminamiento y topología en redes de interconexión entre nodos de una plataforma de altas prestaciones.
  • Evaluar las prestaciones de una red de interconexión de altas prestaciones.
  • Analizar críticamente las listas de computadores de altas prestaciones y su evolución.

Programa de contenidos Teóricos y Prácticos

Teórico

Tema 1. Arquitecturas paralelas

  • Clasificaciones de arquitecturas
  • Evaluación de prestaciones: Isoeficiencia, Ley de Amdahl, Ley de Gustafson

Tema 2. Modelos de programación paralela adaptados a la arquitectura

  • Encontrar concurrencia
  • Patrones de algoritmos paralelos
  • Estructuras disponibles
  • Algoritmos comunes para HPC

Tema 3. Redes de interconexión

  • Clasificación de los tipos de redes de interconexión
  • Estructura general del sistema
  • Análisis de prestaciones
  • Diseño de redes: Niveles de servicio
  • Topología y clasificación
  • Técnicas de conmutación
  • Control de flujo
  • Encaminamiento

Práctico

Seminarios

  • Herramientas de paralelismo mediante paso de mensajes
  • Unidades de procesamiento gráfico (GPUs)
  • Computación de propósito general en GPUs
  • Herramientas de computación cuántica

Prácticas de laboratorio

  • Paralelización de algoritmos con MPI
  • Aceleración de algoritmos con CUDA
  • Desarrollo de circuitos cuánticos

Bibliografía

Bibliografía fundamental

  • J. Ortega Lopera, M. Anguita López, y A. Prieto Espinosa, Arquitectura de computadores, 1ª ed., 2ª reimp. Madrid: Paraninfo, 2006.
  • J. Levesque y G. Wagenbreth, High Performance Computing: Programming and Applications. New York: Chapman and Hall/CRC, 2010. doi: 10.1201/b10442.
  • L. T. Yang y M. Guo, Eds., High-Performance Computing: Paradigm and Infrastructure, 1.ª ed. Wiley, 2005. doi: 10.1002/0471732710.
  • G. Hager y G. Wellein, Introduction to high performance computing for scientists and engineers. en Chapman & Hall/CRC computational science series, no. 7. Boca Raton London New York: CRC Press, Taylor & Francis Group, 2011. doi: 10.1201/EBK1439811924.
  • T. G. Mattson, B. A. Sanders, B. Massingill, y B. Massingill, Patterns for parallel programming, 6. printing. en The software patterns series. Boston Munich: Addison-Wesley, 2010.

Bibliografía complementaria

  • P. S. Pacheco y M. Malensek, An introduction to parallel programming, Second edition. Cambridge: Morgan Kaufmann Publishers, 2022.
  • J. Sanders y E. Kandrot, CUDA by Example: An Introduction to General-Purpose GPU Programming. Addison-Wesley Professional, 2010.
  • W. W. Hwu, D. B. Kirk, y I. E. Hajj, Programming Massively Parallel Processors: A Hands-on Approach. Elsevier Science, 2022.

Metodología docente

  • MD01. Lección Magistral (Clases Teóricas-Expositivas) 
  • MD02. Actividades Prácticas (Resolución de Problemas, Resolución de Casos Prácticos, Desarrollo de Proyectos, Prácticas en Laboratorio, Taller de Programación, Aula de Informática, Prácticas de Campo). 
  • MD03.  Seminarios (Debates, Demos, Exposición de Trabajos Tutelados, Conferencias, Visitas Guiadas, Monografías). 
  • MD04. Actividades no presenciales Individuales. 
  • MD05. Actividades no presenciales Grupales. 
  • MD06. Tutorías Académicas. 

Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final)

Evaluación Ordinaria

Todo lo relativo a la evaluación se regirá por la normativa sobre evaluación y calificación de los estudiantes vigente en la Universidad de Granada. El sistema de calificaciones se expresará mediante calificación numérica de acuerdo con lo establecido en el art. 5 del R. D 1125/2003, de 5 de septiembre, por el que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y validez en el territorio nacional.

La metodología de evaluación ordinaria es la evaluación continua, que en esta asignatura se compone de los siguientes instrumentos de evaluación, ponderaciones y notas mínimas exigidas:

Actividades Formativas Ponderación Mínimo Máximo
Parte teórica Prueba final 35% 2 3,5
Actividades grupales 10% 1
Asistencia a clase y participación 5% 0,5
Parte práctica Prácticas de laboratorio 50% 2 5

Obsérvese que tener un mínimo supone que es obligatorio realizar la prueba final para poder aprobar la asignatura. Esta prueba teórica tendrá lugar al final del semestre en la fecha que fije el centro. La calificación en Acta para quien, no habiendo superado alguno de los mínimos de las partes teórica o práctica, alcance una puntuación superior a 5 al sumar la nota de ambas partes, será igual a 4,9 (suspenso).

Evaluación Extraordinaria

Para la evaluación extraordinaria se utilizará la evaluación única final.

Si en la convocatoria ordinaria se hubiese alcanzado el mínimo exigido en alguna de las partes (teórica o práctica), el estudiante no tiene la obligación de presentarse a esa parte en la convocatoria extraordinaria, usándose en ese caso la calificación obtenida para dicha parte en la convocatoria ordinaria.

Evaluación única final

Además de la evaluación continua, para la convocatoria ordinaria el alumno puede optar por la evaluación de la asignatura mediante una única prueba final, que se celebrará el día indicado por el centro para tal efecto y constará de las siguientes partes, ponderaciones y notas mínimas exigidas:

Prueba escrita Ponderación Mínimo Máximo
Parte teórica 50% 2 5
Parte práctica 50% 2 5

Esta prueba escrita tendrá lugar al final del semestre en la fecha que fije el centro. La calificación en Acta para quien, no habiendo superado alguno de los mínimos de las partes teórica o práctica, alcance una puntuación superior a 5 al sumar la nota de ambas partes, será igual a 4,9 (suspenso).

Software Libre

  • Compiladores para código C.
  • Compiladores para código MPI.