Créditos ECTS Créditos ECTS: 4.5
Horas ECTS Criterios/Memorias Trabajo del Alumno/a ECTS: 70.5 Horas de Tutorías: 2 Clase Expositiva: 10 Clase Interactiva: 30 Total: 112.5
Lenguas de uso Castellano, Gallego
Tipo: Materia Ordinaria Grado RD 1393/2007 - 822/2021
Departamentos: Electrónica y Computación
Áreas: Arquitectura y Tecnología de Ordenadores
Centro Escuela Técnica Superior de Ingeniería
Convocatoria: Segundo semestre
Docencia: Con docencia
Matrícula: Matriculable
El objetivo principal de esta asignatura es preparar al alumnado para las necesidades de diseño y creación de código eficiente capaz de explotar al máximo las capacidades del hardware disponible en sistemas multinúcleo y multiprocesador, así como en sistemas manycore (GPU), disponibles en la actualidad y en un futuro próximo. Partiendo de la descripción de las arquitecturas multinúcleo, analizaremos diferentes técnicas para el diseño de algoritmos paralelos y nos centraremos en mecanismos de programación de sistemas de memoria compartida y GPU.
Tema 1: Sistemas multicore y manycore
Tema 2: Caracterización del rendimiento
Tema 3: Introducción a la programación paralela
Tema 4: Técnicas de adaptación de aplicaciones a sistemas multinúcleo y multiprocesador
Tema 5: Técnicas de optimización del rendimiento
Las prácticas se pueden desarrollar en los ordenadores personales, pero deben ejecutarse en los nodos del Centro de Supercomputación de Galicia.
Bloque 1: Seminario introducción al CESGA
Bloque 2: Adquisición de conocimientos básicos en OpenMP y CUDA
Bloque 3: Realización de programas paralelos en OpenMP y CUDA
Bloque 4: Proyecto de programación paralela
Tanto la bibliografía básica como complementaria está disponible en la biblioteca de la Escuela Técnica Superior de Ingeniería.
Básica
Pacheco, Peter S., and Matthew Malensek. An Introduction to Parallel Programming. Second edition., Morgan Kaufmann, 2022.
Hwu, W. W. et al. (2022) Programming massively parallel processors : A hands-on approach. Fourth edition. Cambridge, Morgan Kaufmann.
Complementaria
Gerassimos Barlas (2022). Multicore and GPU Programming. An Integrated Approach. 2nd Edition. MA: Morgan Kaufmann.
El alumnado adquirirá en distintos niveles de profundización, las siguientes competencias básicas, transversales y específicas:
CG4 - Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas, servicios y aplicaciones informáticas, de acuerdo con los conocimientos adquiridos según lo establecido en el apartado 5 de dicho acuerdo.
CG9 - Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.
TR1 - Instrumentales: Capacidad de análisis y síntesis. Capacidad de organización y planificación. Comunicación oral y escrita en gallego, castellano e inglés. Capacidad de gestión de la información. Resolución de problemas. Toma de decisiones.
TR2 - Personales: Trabajo en equipo. Trabajo en un equipo multidisciplinar y multilingüe. Habilidades en las relaciones interpersonales. Razonamiento crítico. Compromiso ético.
TR3 - Sistémicas: Aprendizaje autónomo. Adaptación a nuevas situaciones. Creatividad. Iniciativa y espíritu emprendedor. Motivación por la calidad. Sensibilidad hacia temas medioambientales.
RI1 - Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y sistemas informáticos, asegurando su fiabilidad, seguridad y calidad, conforme a principios éticos y a la legislación y normativa vigente.
RI9 - Capacidad para conocer, comprender y evaluar la estructura y arquitectura de los computadores, así como los componentes básicos que los conforman.
RI14 - Conocimiento y aplicación de los principios fundamentales y técnicas básicas de la programación paralela, concurrente, distribuida y de tiempo real.
TI2 - Capacidad para seleccionar, diseñar, desplegar, integrar, evaluar, construir, gestionar, explotar y mantener las tecnologías de hardware, software y redes, dentro de los parámetros de coste y calidad adecuados.
TI5 - Capacidad para seleccionar, desplegar, integrar y gestionar sistemas de información que satisfagan las necesidades de la organización, con criterios de coste y calidad identificados.
Esta materia tiene un enfoque práctico donde el aprendizaje es a través de ejercicios y un proyecto de programación.
Clases magistrales: en estas clases el profesor expondrá los contenidos teóricos que sirven de base para las clases prácticas de programación buscando un ambiente participativo del alumnado exponiendo algunos temas teóricos.
Clases prácticas: estas clases estarán dedicadas a desarrollar el programa de prácticas de la materia. Básicamente consistirán en la realización de programas paralelos de complejidad creciente hasta completar un proyecto completo de programación paralela que se podrá realizar en grupo. El alumnado será el elemento activo en estas clases, y el profesor guiará el aprendizaje ante las cuestiones y dudas planteadas. Los enunciados de las prácticas, así como el material de ayuda estarán disponibles en el campus virtual de la USC.
Clases de discusión: En estas clases se expondrán los proyectos realizados, discutiendo su implementación a diferentes niveles y, el grado de escalamiento de la aplicación.
Las tutorías podrán ser presenciales (horario acordado con el alumnado o fijado por el centro), a través de correo electrónico o a través del campus virtual.
Esta asignatura aplica un sistema de evaluación continua basado en la participación del alumnado en el desarrollo de las clases, prácticas y proyecto de programación paralela a desarrollar durante el curso. Las tutorías, discusiones en clase y la interacción en las clases prácticas permitirán al profesor conocer el grado de asimilación de la materia que van obteniendo los/las alumnos/as durante el curso.
La asistencia a las prácticas es obligatoria. Cada una de las prácticas propuestas tendrá una fecha de finalización específica. Después de esta fecha, la práctica se considerará como no realizada. Las prácticas se evaluarán durante las sesiones previas y posteriores a la fecha de entrega.
En aplicación de la Normativa da ETSE sobre plaxio (aprobada por la Xunta de la ETSE el 19/12/2019), la copia total o parcial de algún ejercicio de prácticas o de teoría supondrá el suspenso en las dos oportunidades del curso, con la calificación de cero en ambos casos.
Oportunidad ordinaria
Participación en el desarrollo de las clases teóricas (20%).
Competencias trabajadas: CG4, CG9, TR1, TR3, RI9, TI1, TI5
Adquisición de conocimientos básicos en OpenMP y CUDA (15%).
Competencias trabajadas: CG9, TR1, TR3, RI1, R9, R14
Realización de programas paralelos en OpenMP y CUDA (25%).
Competencias trabajadas: CG9, TR1, TR3, RI1, R9, R14
Proyecto de programación paralela (40%).
Competencias trabajadas: CG4, CG9, TR1, TR2, TR3, RI1, R14
No existe una nota mínima en participación en el desarrollo de las clases teóricas ni en prácticas, excepto en el proyecto de programación paralela que debe superarse con un aprobado (5 puntos sobre 10).
No se conservarán las notas de cursos anteriores.
Oportunidad de recuperación y convocatoria extraordinaria
Mismos criterios que en la oportunidad ordinaria. La fecha límite de entrega de las prácticas y proyecto de programación paralela será la fecha oficial del examen de segunda oportunidad. El/La alumno/a hará una presentación del proyecto el día del examen.
No presentado
La calificación será "no presentado" cuando el alumno/a no realice ninguna de las pruebas de evaluación continua.
Alumnado repetidor
Los criterios de evaluación para el alumnado repetidor serán los mismos que el alumnado que se matricule por primera vez en la asignatura, excepto si se superó la evaluación continua en la última convocatoria. En este caso, el alumno/a deberá ponerse en contacto con el profesor.
Alumnado con dispensa
Mismos criterios de evaluación excepto la participación en el desarrollo de las clases qué será mediante los foros disponibles en el campus virtual.
El trabajo personal del alumnado en una asignatura de 4,5 créditos ECTS debe ser de unas 70,5 horas dedicadas a consulta de bibliografía, estudio autónomo, desarrollo de las actividades programadas y preparación y presentación de trabajos.
La dedicación en tiempo puede variar a lo largo del cuatrimestre, en especial en la etapa de elaboración y presentación de resultados de prácticas y proyecto.
La materia está diseñada para que el/la alumno/a participe activamente y de manera regular durante su desarrollo.
Requisitos previos recomendados en la memoria del GrEI: Programación I, Programación II, Fundamentos de Computadores, Arquitectura de Computadores, Sistemas Operativos I, Sistemas Operativos II.
También resulta interesante tener cursada la materia de Fundamentos de Sistemas Paralelos.
La entrega de los materiales del curso y las comunicaciones electrónicas con el alumnado se llevará a cabo con las herramientas del campus virtual de la asignatura.
La materia se imparte en castellano. La bibliografía y parte del material están disponibles en inglés.
Pablo Quesada Barriuso
Coordinador/a- Departamento
- Electrónica y Computación
- Área
- Arquitectura y Tecnología de Ordenadores
- Teléfono
- 881813538
- Correo electrónico
- pablo.quesada [at] usc.es
- Categoría
- Profesor/a: Profesor Contratado/a Doctor
Miércoles | |||
---|---|---|---|
15:30-16:30 | Grupo /CLE_01 | Castellano | IA.S1 |
14.01.2025 16:00-20:00 | Grupo /CLE_01 | Aula trabajo |
14.01.2025 16:00-20:00 | Grupo /CLIL_01 | Aula trabajo |
26.05.2025 10:00-14:00 | Grupo /CLE_01 | Aula A2 |
26.05.2025 10:00-14:00 | Grupo /CLIL_01 | Aula A2 |
18.06.2025 10:00-14:00 | Grupo /CLIL_01 | Aula A3 |
18.06.2025 10:00-14:00 | Grupo /CLE_01 | Aula A3 |