Titulación | Tipo | Curso |
---|---|---|
4318303 Investigación e Innovación en Ciencia e Ingeniería Basadas en Computadores | OT | 0 |
Puede consultar esta información al final del documento.
Conocimientos de programación (preferiblemente en lenguaje C)
El objetivo fundamental de la asignatura es que el alumnado adquiera las capacidades de análisis, uso y evaluación de los ordenadores, para el desarrollo de aplicaciones avanzadas.
Los conceptos básicos que se expondrán en las sesiones teóricas son: procesamiento paralelo en ordenadores, memorias jerárquicas, evaluación del rendimiento y los lenguajes de programación paralela y modelos de estos sistemas. Los objetivos más específicos son los siguientes:
1. Entender las claves para obtener buen rendimiento de computadores multi-núcleo y multi-procesador, y de aceleradores de cómputo (GPUs)
2. Identificar las oportunidades de paralelización en un algoritmo o aplicación, a diferentes niveles (instrucciones, iteraciones de un bucle, llamadas a funciones...), y expresarlo formalmente
3. Diseñar las estructuras de datos de una aplicación y los algoritmos que acceden a estos datos para favorecer el buen rendimiento de la jerarquía de memoria
4. Analizar, diseñar e implantar algoritmos paralelos con patrones abstractos de cómputo (reducción, transformación...) bajo paradigmas de programación basados en variables compartidas y sincronización; y con lenguajes paralelos actuales.
5. Verificar la funcionalidad y evaluar el rendimiento de aplicaciones paralelas, identificando los cuellos de botella respecto al rendimiento
6. A partir del análisis de rendimiento, seleccionar el computador adecuado a una aplicación y/o realizar optimizaciones del código que mejoren aún más su rendimiento
1. Paralelismo de Instrucciones: Dependencias de datos entre instrucciones en un bucle y reordenación dinámica de la ejecución
2. Paralelismo de Datos: Análisis del paralelismo de datos de un algoritmo y ejecución SIMD (vectorización)
3. Paralelismo de Tareas: Ejecución multi-hilo y multi-núcleo; Jerarquía de memoria comparttida y coherencia de datos; Sincronización entre threads
4. Algoritmos Paralelos: Modelo de paralelismo con variables compartidas y sincronización. Patrones de cómputo paralelo: reducción, transformación, master/worker, divide & conquer y pipeline
5. Evaluación del Rendimiento de Aplicaciones: Análisis de complejidad, paralelismo y localidad; Métricas de rendimiento (elapsed time, IPC, ancho de banda e intensidad aritmética); Trabajo total y camino crítico de la ejecución paralela
Título | Horas | ECTS | Resultados de aprendizaje |
---|---|---|---|
Tipo: Dirigidas | |||
Asistencia a clase de teoría y ejercicios teóricos | 26 | 1,04 | CA04, CA05, KA06, KA07, SA08, CA04 |
Prácticas en Laboratorio | 16 | 0,64 | CA04, KA07, KA08, SA08, SA09, SA10, CA04 |
Tipo: Supervisadas | |||
Trabajo de Investigación | 15 | 0,6 | CA04, CA05, KA06, KA07, KA08, CA04 |
Tipo: Autónomas | |||
Estudio autónomo, redacción de informe y desarrollo de presentación | 41 | 1,64 | CA04, CA05, CA04 |
Estudio y Resolución de Problemas | 50 | 2 | CA05, KA06, KA07, SA10, CA05 |
Clases de Teoría: se expondrán los conocimientos propios de la asignatura ilustrados con ejemplos prácticos. Se resaltarán los problemas de aprendizaje más importantes y se mostrará cómo completar y profundizar en los contenidos. Se discutirán y resolverán problemas prácticos y el profesor detectará los problemas de comprensión y razonamiento más comunes y los resolverá para todos los estudiantes. Se promueve la capacidad de análisis y síntesis, el razonamiento crítico y la capacidad de resolución de problemas.
Caso práctico de estudio autónomo: durante el curso, el alumnado debe diseñar, planificar, realizar, presentar y defender de forma oral un trabajo práctico, indicando los objetivos, el desarrollo, los resultados obtenidos con esquemas, figuras y gráficas comprensibles, las incidencias más notables y, finalmente, las conclusiones más relevantes. Se espera una actitud proactiva y dinámica, la búsqueda autónoma de los conocimientos que sean necesarios, y ambición con los objetivos del trabajo.
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.
Título | Peso | Horas | ECTS | Resultados de aprendizaje |
---|---|---|---|---|
Ejercicios de Laboratorio: Programación y Evaluación de Rendimiento | 50 | 0 | 0 | CA04, CA05, KA06, KA07, KA08, SA08, SA09, SA10 |
Examen Individual | 20 | 1,5 | 0,06 | CA04, CA05, KA06, KA07 |
Informe escrito y Defensa oral del trabajo autónomo | 30 | 0,5 | 0,02 | CA04, CA05 |
Las fechas de evaluación continua y entrega de trabajos se publicarán en la plataforma Moodle de la UAB (Campus Virtual) y pueden estar sujetas a cambios de programación por motivos de adaptación a posibles incidencias. Siempre se informará en la plataforma Moodle sobre estos cambios ya que se entiende que es la plataforma habitual de intercambio de información entre profesor y estudiantes.
Actividades de evaluación
Actividad A: examen escrito de teoría y problemas; realización individual y sin apuntes; 20% de la nota final; no hay nota mínima; recuperable; a final de curso
Actividad B: ejercicisode laboratorio; realización en grupo; 50% de la nota final; nota mínima de 5 sobre 10; no es recuperable; durante todo el curso
Actividad C: informe escrito y defensa oral del trabajo autónomo; realización individual; 30% de la nota finall; no hay nota mínima; recuperable; a final de curso
Procés de Recuperació
El/la estudiante se puede presentar a la recuperación siempre que haya realizado las actividades A, B y C
Irregularidades por parte de los estudiantes, copia y plagio
Sin prejuicio de otras medidas disciplinarias que se estimen oportunas, secalificarán con un cero la irregularidades cometidas por un estudiante que puedan conducir a una variación de la calificación de un acto de evaluación. Por tanto, la copia, el plagio, el engaño, dejar copiar, el uso no autorizado de la IA (p. ej, Copilot, ChatGPT o equivalentes), etc. en cualquiera de las actividades de evaluación implicará suspenderla con un cero. 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, entonces esta asignatura quedará suspendida directamente, sin oportunidad de recuperarla en el mismo curso. En el caso de no superar la asignatura debido a que el estudiante ha cometido irregularidades en un acto de evaluación, la nota numérica del expediente será el valor menor entre 3.0 y la media ponderada de las notas (y por tantono será posible el aprobado por compensación).
Parallel Programming: Techniques and Applications using Networked Workstations and Parallel Computers. Barry Wilkinson. Prentice Hall, 1999.
Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering. Ian Foster. Addison Wesley, 1995.
Introduction to Parallel Computing. A. Grama et alter. Addison Wesley, Second Edition, 2003.
Computer Architecture: A Quantitative Approach. 5th Edition (https://bibcercador.uab.cat/permalink/34CSUC_UAB/15r2rl8/cdi_askewsholts_vlebooks_9780123838735) John Hennessy, David Patterson, Morgan Kaufmann (Elsevier) 2018 (Cap. 4 i 5)Structured Parallel Programming: Patterns for efficient computation M. McCool, J. Reinders, A. Robison, Elsevier, 2012
Parallel Programming for Multicore and Cluster Systems T. Rauber, G. Rünger, Springer (Elsevier), 2010
Programming Massively Parallel Processors: A Hands-on Approach D. Kirk, & W.M. Hwu, Morgan Kaufmann (Elsevier), 2010
C language. OpenMP and OpenACC extensions.
Nombre | Grupo | Idioma | Semestre | Turno |
---|---|---|---|---|
(PLABm) Prácticas de laboratorio (máster) | 1 | Inglés | primer cuatrimestre | tarde |
(TEm) Teoría (máster) | 1 | Inglés | primer cuatrimestre | tarde |