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 estudiantado 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, 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
Se hará una introducción al sistema de computación Finisterrae III, acceso por ssh, envío de trabajos a cola. Puesta en común de como medir los tiempos de ejecución.
Bloque 2: Adquisición de conocimientos básicos en tecnologías de programación paralela
El objetivo es adquirir los conocimientos básicos para la realización de programas paralelos en sistemas de memoria compartida y manycore.
Bloque 3: Realización de programas paralelos básicos
El objetivo es aplicar las tecnologías de programación paralela utilizando OpenMP, OpenCL, CUDA y/o SYCL.
Bloque 4: Proyecto de programación paralela.
El objetivo es paralelizar una aplicación de cierta complejidad aplicando las metodologías técnicas de programación paralela y estudiar el rendimiento.
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 estudiantado 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 estudiantado exponiendo algunos temas teóricos.
Clases prácticas: estas clases estarán dedicadas a desarrollar el programa de prácticas de la materia. 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 estudiantado 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.
Las tutorías podrán ser presenciales (horario acordado con el estudiantado 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 estudiantado 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 el estudiantado durante el curso.
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. La semana previa a la fecha de entrega se hará una prueba de evaluación.
En aplicación del Artículo 1 del Reglamento de asistencia a clase (aprobada en Consejo de Gobierno el 25/11/2024) la asistencia a clase no tendrá ninguna valoración en la nota final.
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 tecnologías de programación paralela (15%).
Competencias trabajadas: CG9, TR1, TR3, RI1, R9, R14
Realización de programas paralelos en tecnologías de programación paralela (25%).
Competencias trabajadas: CG9, TR1, TR3, RI1, R9, R14
Proyecto de programación paralela (40%). La fecha límite de entrega del proyecto de programación paralela será 5 días antes de la fecha oficial del examen de la oportunidad ordinaria. El/La alumno/a hará una presentación y defenderá el proyecto el día del examen.
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á 5 días antes a fecha oficial del examen de segunda oportunidad. El estudiantado hará una presentación y defenderá el proyecto el día del examen.
No presentado
La calificación será "no presentado" cuando el estudiantado no realice ninguna de las pruebas de evaluación continua.
Estudiantado repetidor
Los criterios de evaluación para el estudiantado repetidor serán los mismos que el estudiantado 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.
Estudiantado 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 estudiantado 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 estudantado 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 alumnestudiantadoado 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
Cesar Alfredo Piñeiro Pomar
- Departamento
- Electrónica y Computación
- Área
- Arquitectura y Tecnología de Ordenadores
- Correo electrónico
- cesaralfredo.pineiro [at] usc.es
- Categoría
- Profesor/a: Ayudante Doutor LOSU
Miércoles | |||
---|---|---|---|
15:30-16:30 | Grupo /CLE_01 | Castellano | IA.S1 |
13.01.2026 16:00-20:00 | Grupo /CLIL_01 | Aula A10 |
13.01.2026 16:00-20:00 | Grupo /CLE_01 | Aula A10 |
25.05.2026 10:00-14:00 | Grupo /CLIL_01 | Aula A5 |
25.05.2026 10:00-14:00 | Grupo /CLE_01 | Aula A5 |
17.06.2026 10:00-14:00 | Grupo /CLIL_01 | IA.03 |
17.06.2026 10:00-14:00 | Grupo /CLE_01 | IA.03 |