Logo UAB

Computación de Altas Prestaciones

Código: 102777 Créditos ECTS: 6
2024/2025
Titulación Tipo Curso
2502441 Ingeniería Informática OB 3
2502441 Ingeniería Informática OT 4

Contacto

Nombre:
Anna Barbara Sikora
Correo electrónico:
anna.sikora@uab.cat

Idiomas de los grupos

Puede consultar esta información al final del documento.


Prerrequisitos

Aunque no hay prerrequisitos formalmente establecidos y es responsabilidad de la propia asignatura proporcionar a los alumnos los medios para adquirir los conocimientos descritos en el apartado de contenidos de la asignatura, es recomendable: un buen conocimiento de programación, del funcionamiento de un computador, los diferentes tipos de arquitecturas, de cómo funciona un sistema operativo, de cómo se envían mensajes por la red (Ingeniería del software, Estructura de computadores, Arquitectura de computadores, Sistemas Operativos, Redes, arquitecturas Avanzadas).


Objetivos y contextualización

El objetivo de esta asignatura es conocer los sistemas de cómputo de altas prestaciones y paralelos, sistemas multiprocesador y multicomputadores, paradigmas de programación paralela, aprender a desarrollar aplicaciones con paso de mensajes o memoria compartida y analizar los prestaciones de ejecución de estas aplicaciones.

Los conceptos teóricos sobre paradigmas de programación, paso de mensajes y memoria compartida se refuerza con las sesiones de prácticas en las que los alumnos aprenden a programar utilizando lenguajes de programación paralela.

Todos los componentes descritos en esta asignatura deben permitir al alumno comprender el funcionamiento de los sistemas de altas prestaciones y paralelos y, hasta cierto punto, ser capaz de realizar un diseño sencillo de una aplicación paralela y evaluar sus prestaciones.


Competencias

    Ingeniería Informática
  • Adquirir hábitos de pensamiento.
  • Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo plataformas paralelas y distribuidas, así como desarrollar y optimizar software de para las mismas.
  • Capacidad de diseñar e implementar software de sistema y de comunicaciones.
  • Capacidad para analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y ejecución de aplicaciones y servicios informáticos.
  • Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando hardware, software y redes.
  • Comunicación.

Resultados de aprendizaje

  1. Analizar las características de las aplicaciones que requieran altas prestaciones.
  2. Analizar los modelos, paradigmas y lenguajes de programación paralela disponibles para determinar el que mejor se adecua a las necesidades de la aplicación.
  3. Aplicar los conceptos de sistemas operativos y redes para desarrollar los componentes software necesario para gestionar el sistema de cómputo de altas prestaciones y las comunicaciones involucradas en dichos sistemas.
  4. Comunicar eficientemente, de forma oral y/o escrita, conocimientos, resultados y habilidades, tanto en entornos profesionales como ante públicos no expertos.
  5. Configurar plataformas hardware y entornos de programación para el desarrollo y ejecución de aplicaciones de altas prestaciones.
  6. Desarrollar aplicaciones paralelas basadas en los paradigmas existentes.
  7. Desarrollar el pensamiento científico.
  8. Desarrollar la capacidad de análisis, síntesis y prospectiva.
  9. Determinar las plataformas más adecuadas para cada tipo de aplicación.
  10. Diseñar, implementar e integrar los módulos software de los niveles de sistema y comunicaciones considerando las prestaciones de los mismos.
  11. Evaluar la funcionalidad y el rendimiento de las aplicaciones paralelas/distribuidos desarrolladas.
  12. Evaluar las prestaciones de las arquitecturas de altas prestaciones, así como la funcionalidad de las aplicaciones.
  13. Evaluar y predecir el rendimiento de distintas plataformas de cómputo de altas prestaciones para la ejecución de aplicaciones.
  14. Hacer un uso eficiente de las TIC en la comunicación y transmisión de ideas y resultados.
  15. Identificar los distintos tipos de arquitecturas de cómputo de altas prestaciones, incluyendo sistemas paralelos y distribuidos.
  16. Identificar los niveles de software que ha de comprender un sistema de cómputo de altas prestaciones.
  17. Proponer soluciones informáticas basadas en sistemas de cómputo de altas prestaciones que integren tanto la arquitectura de los componentes hardware del sistema, así como lo interconexión de los mismos, y el diseño del software necesario.
  18. Seleccionar el sistema de cómputo de altas prestaciones más adecuado para satisfacer las necesidades de un tipo de aplicación o usuario determinado.

Contenido

Tema 1: Introducción a sistemas de altas prestaciones.

Introducción a los sistemas de altas prestaciones, sistemas paralelos, multiprocesadores y multicomputadores. Ejecución de aplicaciones paralelas en sistemas de altas prestaciones.

Tema 2: Clasificación de paralelismo

SIMD (Single Instruction, Multiple Data), MIMD (Multiple Instruction, Multiple Data). Modelos de aplicaciones paralelas.

Tema 3: Algoritmos paralelos

Definición de algoritmos paralelos. Ejemplos de algoritmos paralelos. Desarrollo de algoritmos paralelos.

Tema 4: Programación paralela

Paradigmas de programación paralela. Aplicaciones basadas en paso de mensajes. Estándar MPI (Message Passing Interface). Aplicaciones basadas en memoria compartida. Estándar OpenMP (Open multiprocessing) y CUDA (Compute Unified Device Architecture). Aplicaciones híbridas (MPI + OpenMP). Desarrollo de aplicaciones utilizando MPI, OpenMP, CUDA y programación híbrida.

Tema 5: Arquitectura de Supercomputadores

Particularidades de la arquitectura de supercomputadores. Redes de Interconexión. Infraestructura física y costes.

Tema 6: Análisis de prestaciones

Análisis de prestaciones de sistemas paralelos. Evaluación de prestaciones de sistemas paralelos. Ejemplos de herramientas de evaluación de prestaciones.


Actividades formativas y Metodología

Título Horas ECTS Resultados de aprendizaje
Tipo: Dirigidas      
Problemas (Resolución de ejercicios) 7 0,28 2, 1, 11, 4, 7, 8, 14, 17
Práctica (Resolución de las prácticas de laboratorio) 15 0,6 2, 1, 13, 11, 12, 6, 8, 9, 10, 15, 17, 18
Teoría 12 0,48 2, 1, 3, 11, 5, 8, 15, 16, 18
Tipo: Autónomas      
Estudio autónomo 30 1,2 2, 1, 3, 9, 15, 16, 18
Investigación 15 0,6 2, 3, 11, 5, 8, 9, 14, 15, 16
Preparación de problemas 15 0,6 2, 1, 11, 4, 7, 8, 14, 17
Preparación de prácticas 40 1,6 2, 1, 13, 11, 12, 5, 6, 8, 9, 10, 15, 17, 18

En el desarrollo de la asignatura se podrán diferenciar cuatro tipos de actividades docentes:

  • Clases teóricas. Exposición en la pizarra de la parte teórica de cada tema del programa. La estructura típica de una clase magistral de este tipo será la siguiente: en primer lugar se hará una introducción donde se presentarán brevemente los objetivos de la exposición y los contenidos a tratar. A continuación se desgranarán los contenidos objeto de estudio, incluyendo exposiciones narrativas, desarrollos formales que proporcionen los fundamentos teóricos, e intercalando ejemplos, que ilustren la aplicación de los contenidos expuestos. Finalmente, el/la profesor/a expondrá las conclusiones de los contenidos. Durante todo el curso habrá evaluaciones continuas de grupos de temas.
  • Clases prácticas. Todos los temas irán acompañados de una relación de problemas que el alumno debe intentar resolver. En este sentido, y a medida que el alumno vaya progresando y profundizando en sus conocimientos, estos problemas serán poco a poco más complejos. Los seminarios serán el foro natural en el que se podrá discutir en común el desarrollo del trabajo práctico, aportando los conocimientos que le faltan al estudiante para llevarlo adelante. La misión de las clases prácticas es hacer de puente entre las clases teóricas y las clases en laboratorio, que promoverá la capacidad de análisis y síntesis, el razonamiento crítico, y entrenar al o la estudiante en la resolución de problemas. Aquellos que el/la profesor/a considere de mayor interés o en los que los/las estudiantes encuentren mayor dificultad serán corregidos en la pizarra. Antes del comienzo de cada temario de problemas el/la profesor/a podrá proponer una lista de ejercicios que los/las alumnos/as deberán resolver.
  • Clases en el laboratorio. La parte práctica de los temas teóricos quedará completada con sesiones en el laboratorio, donde el/la alumno/a desarrollará un cojunto de programas y deberá intentar resolver un problema concreto que recibirá al comenzar el temario. Algunos de estos ejercicios se deberán entregar en la clase en las fechas señaladas. Las prácticas se desarrollarán en grupos de dos alumnos/as. Las clases incluyen 9 sesiones en el laboratorio, de 2 horas de duración, donde el/la alumno/a realizará el desarrollo de los ejercicios.
  • Realización de trabajos. Realización de trabajos. Durante el curso, los/las estudiantes (en grupos) realizarán varios trabajos. Por un lado, cada grupo (de 5-6 personas) desarrollará un trabajo de investigación (un trabajo científico) sobre un tema relacionado con la asignatura. Con este ejercicio se busca que los/las estudiantes sean capaces de buscar, analizar y resumir información disponible (búsqueda de información, divulgación científica – libros o artículos) relacionada con los conceptos que son tratados en la asignatura. Por otra parte, habrá un conjunto de ejercicios básicos, cortos y prácticos relacionados con la teoría y las clases prácticas de problemas. Cada grupo (de 2 personas) solucionará estos ejercicios y realizará la entrega con la fecha correspondiente. Con este ejercicio se busca que el estudiante sea capaz de resolver de forma teórica a los conceptos trabajados en teoría y después pueda aplicarlos al caso práctico de laboratorio.

Este planteamiento del trabajo está orientado a promover un aprendizaje activo y desarrollar las competenciasdecapacidad de organización y planificación, comunicación oral y escrita, trabajo en equipo y razonamiento crítico. La calidad de los ejercicios realizados, de su presentación y de su funcionamiento se valorará especialmente.

Se prevee dos salidas para visitar diferentes centros de cómputo.

Competencias transversales:

Como se ha mencionado anteriormente, la asignatura incluye como actividad docente la realización de un trabajo de investigación especial. Consta de la investigación sobre un tema relacionado con la asignatura y su presentación (p.e. una presentación sobre una divulgación científica). El trabajo está orientado a desarrollar la capacidad de análisis, síntesis y prospectiva y el pensamiento científico de los estudiantes (competencia T01, resultados de aprendizaje T01.02 y T01.03). Los estudiantes dispondrán de guías que describen cómo realizar una búsqueda del tema escogido. Durante el semestre se realizarán reuniones con los grupos para discutir y evaluar la evolución del trabajo.

La gestión de la docencia de la asignatura se hará a través del Campus Virtual (https://cv2008.uab.cat/), que servirá para poder ver los materiales, gestionar los grupos de prácticas, hacer las entregas correspondientes, ver las notas, comunicarse con los/las profesores/as, etc.

Nota: se reservarán 15 minutos de una clase dentro del calendario establecido por el centro o por la titulación para que el alumnado rellene las encuestas de evaluación de la actuación del profesorado y de evaluación de la asignatura o módulo.


Evaluación

Actividades de evaluación continuada

Título Peso Horas ECTS Resultados de aprendizaje
Control individual parcial 1 20% 2 0,08 2, 1, 8, 15
Control individual parcial 2 20% 2 0,08 2, 3, 6, 8, 9, 16, 17, 18
Entrega de práctica 1 8% 1 0,04 2, 3, 13, 12, 5, 6, 8, 10, 16, 17
Entrega de práctica 2 13,5% 1 0,04 2, 3, 13, 12, 5, 6, 8, 10, 16, 17
Entrega de práctica 3 13,5% 1 0,04 2, 3, 13, 11, 12, 5, 6, 8, 10, 16, 17
Realización de ejercicios prácticos 15% 8 0,32 2, 13, 11, 6, 8, 9, 18
Trabajo de investigación 10% 1 0,04 2, 1, 12, 4, 7, 8, 9, 14, 15, 16, 18

El objetivo del proceso de evaluación es verificar que el alumno ha adquirido los conocimientos y habilidades definidos en los objetivos de la asignatura, así como las competencias.

Se evaluarán cuatro tipos de actividades de manera independiente donde la suma ponderada de ellas dará la nota final. Estas cinco actividades son:

  1. Teoría (T)
  2. Resolución de las prácticas de laboratorio (PL)
  3. Trabajo de investigación (TR)
  4. Realización de ejercicios prácticos (EXER).

La parte de Teoría (T) se evaluará con dos controles parciales individuales durante todo el curso. La nota final de Teoría saldrá de la suma ponderada de los dos controles (0.5*Control 1 + 0.5*Control 2). Habrá una segunda oportunidad para recuperar esta parte el día que tenemos asignado en la semana de exámenes de recuperación de junio. Se podrán recuperar por separado las partes que no se hayan superado en los controles parciales de teoría. La nota mínima para aprobar esta parte de Teoría es >= 5. En la recuperación sólo se pueden recuperar los exámenes suspendidos, no se puede subir la nota obtenida (en el caso de aprobar la parte de Teoría). La nota máxima que puede obtenerse en la recuperación es un 7.

La parte de Resolución de prácticas de laboratorio (PL) se evaluará de manera grupal. Tiene tres entregas. La nota final saldrá de la suma ponderada de las tres entregas (X0 * Entrega 1 + X1 * Entrega 2 + X2 * Entrega 3, X0 + X1 + X2 = 1). Habrá 3 pruebas cortas y escritas de validación individual de las prácticas en el horario de clase (la tercera prueba en el horario establecido por la coordinación para los segundos parciales). Nota prácticas (PL) = Laboratorio * Validación. Para aprobar las PL la nota mínima deberá ser > = 5. Si es necesario, se podrá recuperar la prueba de validación. La asistencia es obligatoria.

La parte de Trabajo de Investigación (TR) se evaluará de forma grupal (5-6 personas). Cada grupo tendrá un tema de investigación asignado sobre lo que deberá realizar búsqueda, análisis, resumen, crítica y presentación. Este trabajo se discutirá con los miembros del grupo en horas de seguimiento indicadas y posteriormente se hará una entrega en el CV con la fecha indicada. La nota de cada miembro del grupo se determinará por la calidad de la revisión y participación en la discusión. Sólo existe una única oportunidad (no se puede recuperar esta parte). En consecuencia, en caso de que un alumno no tenga nota del trabajo, no podrá optar a lo excelente en la nota final de la asignatura.

Los ejercicios prácticos (EXER) se realizarán en grupos de 2 personas y consistirán en trabajar problemas de programación muy concretos, cortos y relacionados con los que se encontrarán en las prácticas de laboratorio. Se quiere que cada estudiante estudie la resolución de un conjunto de problemas concretos de forma aislada en el caso más general de la práctica. El valor de estos ejercicios es del 15% de la nota final y dada su naturaleza y objetivo no son recuperables.

La nota final de la asignatura será la suma ponderada de las notas de cada una de las cuatro actividades: 40% de Teoría, 10% de Trabajo de Investigación, 15% Resolución de ejercicios prácticos y 35% de Resolución de prácticas delaboratorio. El resultado deberá ser >=5.

En caso de no superar la asignatura por no alcanzar la puntuación mínima en alguno de los apartados (Teoría o Prácticas deLaboratorio), aunque alhacer la media ponderada la nota final fuera igual o superior a 5 la nota que se pondrá en el expediente será de 4,5.

En caso de que la media no llegue a 5 la nota que figurará en el expediente será la nota media obtenida numéricamente.

Si el/la alumno/a entrega cualquier actividad, se entiende que se presenta en la asignatura y será evaluado/a. Si no entrega ninguna actividad, entonces se puede considerar No evaluable.

Otorgar una calificación de matrícula de honor es decisión del profesorado responsable de la asignatura. La normativa de la UAB indica que las MH sólo se podrán conceder a estudiantes que hayan obtenido una calificación final igual o superior a 9.00. Se puede otorgar hasta un 5% de MH del total de estudiantes matriculados.

Las fechas de evaluación continua y entrega de trabajos se publicarán en el campus virtual y pueden estar sujetos a cambios de programación por motivos de adaptación a posibles incidencias; siempre se informará en el campus virtual sobre estos cambios ya que se entiende que el CV es el mecanismo habitual de intercambio de información entre el profesorado y los/las estudiantes.

Para cada actividad de evaluación, se indicará un lugar, fecha y hora de revisión en la que el estudiante podrá revisar la actividad con el/la profesor/a. En este contexto, se podrán hacer reclamaciones sobre la nota de la actividad,que serán evaluadas por el profesorado responsable de la asignatura. Si el/la estudiante no se presenta en esta revisión, no se revisará posteriormente esta actividad.

RESUMEN

Si ((T >= 5) y(PL>= 5) entonces

       NF = 0.40 * T + + 0.1 * TR + 0.15 * EXER + 0.35 * PL

       Si (NF >= 5) entonces APROBADO

       sino SUSPENDIDO

sino SUSPENDIDO

Estudiantes repetidores: Los alumnos repetidores o repetidoras que tengan aprobadas las prácticas de laboratorio pueden pedir la convalidación de esta parte de la asignatura. El resto de actividades de evaluación deberán hacerlas en las mismas condiciones que los/las otros/as estudiantes.

Evaluación Única: Esta asignatura NO PREVÉ EVALUACIÓN ÚNICA.

Nota sobre plagios:

Sin perjuicio de otras medidas disciplinarias que se estimen oportunas, y de acuerdo con la normativa académica vigente, las irregularidades cometidas por un estudiante que puedan conducir a una variación de la calificación en una actividad evaluable se calificarán con un cero (0). Las actividades de evaluación calificadas de esta forma y por este procedimiento no serán recuperables. Si es necesario superar cualquiera de estas actividades de evaluación para aprobar la asignatura, esta asignatura quedará suspendida directamente, sin oportunidad de recuperarla en el mismo curso. Estas irregularidades incluyen, entre otros:

  • la copia total o parcial de una práctica, informe, o cualquier otra actividad de evaluación;
  • dejar copiar;
  • presentar un trabajo de grupo no hecho íntegramente por los y las miembros del grupo (aplicado a todos los y las miembros, no sólo a los que no han trabajado);
  • presentar como propios materiales elaborados por un tercero,aunque sean traducciones o adaptaciones, y en general trabajos con elementos no originales y exclusivos del estudiante;
  • el uso no autorizadode la IA (p. ej., Copilot, ChatGPT o equivalentes);
  • tener dispositivos de comunicación (como teléfonos móviles, smart watches, bolígrafos con cámara, etc.)accesiblesdurante las pruebas deevaluación teórico-prácticas individuales (exámenes);
  • hablar con compañeros o compañeras durante las pruebas de evaluación teórico-prácticas individuales (exámenes);
  • copiar o intentar copiar de otros alumnos durante las pruebas de evaluación teórico-prácticas (exámenes);
  • usar o intentar usar escritos relacionados con la materia durante la realización de las pruebas de evaluación teórico-prácticas (exámenes), cuando éstos no hayan sido explícitamentepermitidos.

En caso de no superar la asignatura debido a que alguna de las actividades de evaluación no alcanza la nota mínima requerida, la nota numérica del expediente será el valor menor entre 4.5 y la media ponderada de las notas. Con las excepciones de que se otorgará la calificación de "No Evaluable" a los y las estudiantes que no participen en ninguna de las actividades de evaluación, y de que la nota numérica del expediente será el valor menor entre 3.0 y la media ponderada de las notas en caso de que el estudiante haya cometido irregularidades en un acto de evaluación (y por tanto no será posible el aprobado por compensación). En ediciones futuras de esta asignatura, el estudiante que haya cometido irregularidades en un acto de evaluación no se le convalidará ninguna de las actividades de evaluación realizadas.

En resumen: copiar, dejar copiar o plagiar (o el intento de) en cualquiera de las actividades de avaluación equivale a un SUSPENSO,nocompensable y sin convalidaciones de partes de la asignatura en cursos posteriores.


Bibliografía

  • Parallel Programming Concepts and Practice. Bertil Schmidt, Jorge González-Domínguez, Christian Hundt, Moritz Schlarb. Morgan Kaufmann, 2018
  • An Introduction to Parallel Programming, 2nd edition. Peter S. Pacheco. Morgan Kaufmann. 2018
  • Programming Massively Parallel Processors, A Hands-on Approach. David B. Kirk, Wen-mei W. Hwu. Morgan Kaufmann. 3th Edition. 2018
  • Computer Architecture. A quantitative approach. John L. Hennessy, David A. Patterson. Morgan Kaufmann. 6a edición. 2018
  • Introduction to Parallel Computing. A. Grama et alter. Addison Wesley, Second Edition, 2003.
  • Parallel Program Development For Cluster Computing: Methodology, Tools and Integrated  Environments. Edited by J. C. Cunha, P. Kacsuk, S. C. Winter. Nova Science Publishers, Inc., 2001.

Software

OpenMP

MPI

CUDA

gestor de colas (SLURM)

herramientas para evaluación de rendimiento (perf, TAU, nvcc)

conexión remota con laboratorio (e.g. MobaTex, Eclipse, Visual Studio, etc.)


Lista de idiomas

Nombre Grupo Idioma Semestre Turno
(PLAB) Prácticas de laboratorio 431 Español segundo cuatrimestre manaña-mixto
(PLAB) Prácticas de laboratorio 432 Catalán segundo cuatrimestre manaña-mixto
(TE) Teoría 430 Español segundo cuatrimestre manaña-mixto