Guia docente
DATOS IDENTIFICATIVOS 2023_24
Asignatura COMPUTACIóN DE ALTAS PRESTACIONES Código 00715003
Enseñanza
0715 - MASTER UNIV. INGENIERIA INFORMATICA
Descriptores Cr.totales Tipo Curso Semestre
4.5 Obligatoria Primer Primero
Idioma
Castellano
Prerrequisitos
Departamento ING.MECANICA,INFORMAT.AEROESP.
Responsable
SÁNCHEZ GONZÁLEZ , LIDIA
Correo-e lsang@unileon.es
vmato@unileon.es
Profesores/as
MATELLÁN OLIVERA , VICENTE
SÁNCHEZ GONZÁLEZ , LIDIA
Web http://agora.unileon.es
Descripción general En esta asignatura se abordan los conceptos fundamentales supercomputación y paralelización de aplicaciones para su optimización. Se exponen los fundamentos de la computación paralela, los modelos de programación paralela y se realizan ejercicios sencillos para su comprensión. Además, se muestran aplicaciones reales en las que se emplea el paralelismo para solucionar problemas de rendimiento (tiempo de ejecución o requerimientos de memoria).
Tribunales de Revisión
Tribunal titular
Cargo Departamento Profesor
Presidente ING.MECANICA,INFORMAT.AEROESP. PANIZO ALONSO , LUIS
Secretario GUERRERO HIGUERAS , ANGEL MANUEL
Vocal CONDE GONZALEZ , MIGUEL ANGEL
Tribunal suplente
Cargo Departamento Profesor
Presidente ING.MECANICA,INFORMAT.AEROESP. CASTEJON LIMAS , MANUEL
Secretario MATEMATICAS GARCIA SIERRA , JUAN FELIPE
Vocal FERNANDEZ ROBLES , LAURA

Competencias
Tipo A Código Competencias Específicas
  A13257 715TI7 Capacidad para comprender y poder aplicar conocimientos avanzados de computación de altas prestaciones y métodos numéricos o computacionales a problemas de ingeniería.
Tipo B Código Competencias Generales y Transversales
  B3064 715CB10 Que los estudiantes posean las habilidades de aprendizaje que les permita continuar estudiando de un modeo que habrá de ser en gran medida autodirigida o autónomo.
  B3066 715CB7 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.
  B3080 715GE8 Capacidad para la aplicación de los conocimientos adquiridos y de resolver problemas en entornos nuevos o poco conocidos dentro de contextos más amplios y mulitidisciplinares, siendo capaces de integrar estos conocimientos.
  B3092 715TI7 Capacidad para comprender y poder aplicar conocimientos avanzados de computación de altas prestaciones y métodos numéricos o computacionales a problemas de ingeniería.
  B3097 715TR3 Toma de decisiones y solución de problemas: localización del problema, identificar causas y alternativas de solución, selección y evaluación de la más idónea.
Tipo C Código Competencias Básicas

Resultados de aprendizaje
Resultados Competencias
El alumno comprende y sabe aplicar conocimientos avanzados de computación de altas prestaciones y métodos numéricos o computacionales a problemas de ingeniería. A13257
B3092
El alumno sabe aplicar los conocimientos adquiridos y sabe resolver problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio. B3066
El alumno sabe aprender de forma autónoma o autodirigida. B3064
El alumno sabe tomar decisiones y solucionar de problemas: localizar del problema, identificar las causas y valorar las alternativas de solución posible, seleccionando y evaluando la más idónea. B3097
El alumno sabe aplicar los conocimientos adquiridos y resolver problemas en entornos nuevos o poco conocidos dentro de contextos más amplios y mulitidisciplinares, y es capaz de integrar estos conocimientos. B3080

Contenidos
Bloque Tema
Bloque I: INTRODUCCIÓN Tema 1: INTRODUCCIÓN.
Introducción a la asignatura. Repaso de conceptos de programación y arquitectura de computadores.
Bloque II: COMPUTACIÓN PARALELA Tema 1: CONCEPTOS FUNDAMENTALES.
Computación secuencial. Límites

Tema 2. COMPUTACIÓN PARALELA.
Fundamentos de arquitecturas paralelas. Límites físicos. Problemas de complejidad elevada. Programación paralela

Tema 3. COMPUTACIÓN DE ALTAS PRESTACIONES: SUPERCOMPUTADORES Y CLUSTERS.
Descripción y características de un supercomputador y un cluster. Top 500. Test de Linpack. Uso de un supercomputador.

Tema 4: MODELADO DE LOS COMPUTADORES PARALELOS.
Paralelismo en los computadores monoprocesador. Paralelismo en los computadores multiprocesador. Organización de los computadores paralelos.
Bloque III. PROGRAMACIÓN PARALELA Tema 1: CONCEPTOS FUNDAMENTALES.
Introducción a la programación paralela. Grafo de dependencias. Patrones de diseño paralelo. Esquemas de algoritmos paralelos. Metodologías.

Tema 2: MODELOS DE PROGRAMACIÓN PARALELA.
Programación mediante paso de mensajes. Programación en memoria compartida. Problemas paralelizables.

Tema 3: OPENMP.
Paralelización con OpenMP: secciones, bucles, tareas. Schedule.

Tema 4: CUDA
Programación usando GPUs. Bloques. Hilos. Memoria compartida. Errores. Gestión de varias GPUs. Memoria unificada. Librerías (ej. cuBlas). Thrust. Funciones en el dispositivo.

Tema 5: MPI
Funciones bloqueantes. Funciones colectivas. Funciones no bloqueantes. Tipos de datos derivados. Topologías
Bloque IV: ESQUEMAS DE ALGORITMOS PARALELOS. Tema 1: UTILIZACIÓN DE TÉCNICAS DE PARALELISMO PARA OPTIMIZAR PROBLEMAS REALES.
Resolución de ejercicios prácticos empleando el supercomputador caléndula de SCAYLE

Planificación
Metodologías  ::  Pruebas
  Horas en clase Horas fuera de clase Horas totales
Practicas a través de TIC en aulas informáticas 30 30 60
 
Prácticas de campo / salidas 2 0 2
Trabajos 2 30 32
 
Sesión Magistral 8 7.5 15.5
 
Pruebas prácticas 2 0 2
Pruebas objetivas de preguntas cortas 1 0 1
 
(*)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
Practicas a través de TIC en aulas informáticas Se programarán ejercicios secuenciales y paralelos en el laboratorio
Prácticas de campo / salidas Visita al centro de supercomputación de Castilla y León para conocer in situ un supercomputador real: caléndula
Trabajos Permitirá la adquisición de las competencias de toma de decisiones, resolución de problemas, aprendizaje autónomo empleando la computación de altas prestaciones
Sesión Magistral En las clases teóricas se expondrán los distintos conceptos fundamentales relacionados con la computación grid, la supercomputación, la programación y la paralelización de aplicaciones. Se desarrollarán con más profundidad en las sesiones prácticas.

Tutorías
 
Practicas a través de TIC en aulas informáticas
Sesión Magistral
descripción
Para solventar las dudas que surjan al resolver problemas resueltos en clase o propuestos (tanto de teoría como de prácticas), así como cualquier asunto relacionado con la elaboración de los trabajos solicitados, se recomienda vía email, por videoconferencia o presencialmente, acudir al profesor.

Evaluación
  descripción calificación
Practicas a través de TIC en aulas informáticas Se implementarán programas de dificultad parecida a la que se ha realizado en las sesiones prácticas
35%
Trabajos Realización y exposición de trabajos. Se realizará un trabajo donde se apliquen las técnicas de paralelismo para solucionar un problema determinado de cualquier disciplina. Dicho trabajo se defenderá en el laboratorio para demostrar que se domina. 50%
Pruebas objetivas de preguntas cortas Se realizarán pruebas de pregunta cortas para evaluar la adquisición de los conocimientos de la asignatura 15%
 
Otros comentarios y segunda convocatoria
1. COMPORTAMIENTO EN CLASE:

En el desarrollo de la asignatura, el alumno deberá evitar comportamientos que a juicio del profesor sean indeseables, pudiendo ser expulsado de la actividad en caso contrario. Sin ánimo de ser exhaustivos esto incluye comportamientos violentos, sexistas, homófobos, xenófobos, antihigiénicos, el uso indebido de dispositivos electrónicos y las charlas no relacionadas con la asignatura. En particular la realización de grabaciones no autorizadas queda terminantemente prohibida.

2. COMPORTAMIENTO EN EL EXAMEN

Los trabajos presentados podrán ser revisados con un programa informático antiplagio que podrá realizar comprobaciones entre los trabajos de los alumnos de la convocatoria actual y anteriores y contra fuentes externas. En el caso de detectarse plagio el trabajo se calificará como suspenso.

Durante las pruebas de evaluación no será posible la utilización de recursos electrónicos (calculadoras, tablets, teléfonos, ordenadores, etc), excepto para aquellas pruebas que bajo indicación expresa del profesor requieran el uso de alguno de estos recursos. En caso de producirse alguna irregularidad durante la celebración del examen o prueba de evaluación correspondiente se procederá a la retirada inmediata del examen, expulsión del alumno y calificación como suspenso. En cualquier caso se atenderá a lo establecido en la normativa interna de la ULE incluida en el documento "Pautas de actuación en los supuestos de plagio, copia o fraude en exámenes o pruebas de evaluación" (Aprobado Comisión Permanente del Consejo de Gobierno 29/01/2015).

3. SEGUNDA CONVOCATORIA

En la segunda convocatoria se realizará una prueba de evaluación del total de la asignatura.


Fuentes de información
Acceso a la Lista de lecturas de la asignatura

Básica MPI Forum, Estándar MPI 4.0 , , https://www.mpi-forum.org/mpi-40/
Lidia Sánchez, Apuntes de la asignatura, ,
F. Almeida, D. Gimenez, Jose Miguel Mantas, A.M. Vidal, Introducción a la programación paralela, Paraninfo Cengage Learning, 2008
Kumar, V., Grama, A., Gupta, A., Karypis G. Benjamin, Introduction to Parallel Computing, Cummings Publishing Company, 2003
http://www.open-mpi.org, Página Oficial de Open MPI, ,
Michael J. Quinn, Parallel Programming in C with MPI and OpenMP, McGraw-Hill, 2003
John Cheng, Max Grossman, Ty Mckercher, Professional CUDA C Programming, John Wiley & Sons Inc, 2014
Lidia Sánchez, Transparencias de la asignatura, ,

Complementaria


Recomendaciones