Créditos ECTS Créditos ECTS: 4.5
Horas ECTS Criterios/Memorias Traballo do Alumno/a ECTS: 70.5 Horas de Titorías: 2 Clase Expositiva: 10 Clase Interactiva: 30 Total: 112.5
Linguas de uso Castelán, Galego
Tipo: Materia Ordinaria Grao RD 1393/2007 - 822/2021
Departamentos: Electrónica e Computación
Áreas: Arquitectura e Tecnoloxía de Computadores
Centro Escola Técnica Superior de Enxeñaría
Convocatoria: Segundo semestre
Docencia: Con docencia
Matrícula: Matriculable
O obxectivo principal desta materia é preparar ao alumnado para as necesidades de deseño e creación de código eficiente capaz de explotar ao máximo as capacidades do hardware dispoñible en sistemas multinúcleo e multiprocesador, así como en sistemas manycore (GPU), dispoñibles na actualidade e nun futuro próximo. Partindo da descrición das arquitecturas multinúcleo, analizaremos diferentes técnicas para o deseño de algoritmos paralelos e centrarémonos en mecanismos de programación de sistemas de memoria compartida e GPU.
Tema 1: Sistemas multicore e manycore
Tema 2: Caracterización do rendemento
Tema 3: Introdución á programación paralela
Tema 4: Técnicas de adaptación de aplicacións a sistemas multinúcleo e multiprocesador
Tema 5: Técnicas de optimización do rendemento
As prácticas pódense desenvolver nos computadores persoais, pero deben executarse nos nodos do Centro de Supercomputación de Galicia.
Bloque 1: Seminario introdución ao CESGA
Bloque 2: Adquisición de coñecementos básicos en OpenMP e CUDA
Bloque 3: Realización de programas paralelos en OpenMP e CUDA
Bloque 4: Proxecto de programación paralela
Tanto a bibliografía básica como complementaria está dispoñible na biblioteca da Escola Técnica Superior de Enxeñerí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.
O alumnado adquirirá en distintos niveis de profundización, as seguintes competencias básicas, transversais e específicas:
CG4. Capacidade para definir, avaliar e seleccionar plataformas hardware e software para o desenvolvemento e execución de sistemas, servizos e aplicacións informáticas, de acordo cos coñecementos adquiridos segundo o establecido no apartado 4 de dicho acordo.
CG9 - Capacidade para resolver problemas con iniciativa, toma de decisións, autonomía e creatividade. Capacidade para saber comunicar e transmitir os coñecementos, habilidades e destrezas da profesión de Enxeñeiro Técnico en Informática.
TR1 - Instrumentais: Capacidade de análise e síntese. Capacidade de organización e planificación. Comunicación oral e escrita en galego, castelán e inglés. Capacidade de xestión da información. Resolución de problemas. Toma de decisións.
TR2 - Persoais: Traballo en equipo. Traballo nun equipo multidisciplinar e multilingüe. Habilidades nas relacións interpersoais. Razoamento crítico. Compromiso ético.
TR3 - Sistémicas: Aprendizaxe autónoma. Adaptación a novas situacións. Creatividade. Iniciativa e espírito emprendedor. Motivación pola calidade. Sensibilidade cara a temas ambientais.
RI1 - Capacidade para deseñar, desenvolver, seleccionar e avaliar aplicacións e sistemas informáticos, asegurando a súa fiabilidade, seguridade e calidade, conforme a principios éticos e á lexislación e normativa vixente.
RI6 - Coñecemento e aplicación dos procedementos algorítmicos básicos das tecnoloxías informáticas para deseñar solucións a problemas, analizando a idoneidade e complexidade dos algoritmos propostos.
RI7 - Coñecemento, deseño e utilización de forma eficiente dos tipos e estruturas de datos máis adecuados á resolución de un problema.
RI8 - Capacidade para analizar, deseñar, construír e manter aplicacións de forma robusta, segura e eficiente, elixindo o paradigma e as linguaxes de programación máis adecuados.
RI14 - Coñecemento e aplicación dos principios fundamentais e técnicas básicas da programación paralela, #concorrente, distribuída e de tempo real.
TI2 - Capacidade para seleccionar, deseñar, despregar, integrar, avaliar, construír, xestionar, explotar e manter as tecnoloxías de hardware, software e redes, dentro dos parámetros de custo e calidade adecuados.
TI5 - Capacidade para seleccionar, despregar, integrar e xestionar sistemas de información que satisfagan as necesidades da organización, con criterios de custo e calidade identificados.
Esta materia ten un enfoque práctico onde a aprendizaxe é a través de exercicios e un proxecto de programación.
Clases maxistrais: nestas clases o profesor expoñerá de modo resumido os contidos teóricos que serven de base para as clases prácticas de programación buscando un ambiente participativo por parte do alumnado mediante a exposición dalgúns temas de teoría.
Clases prácticas: estas clases estarán dedicadas a desenvolver o programa de prácticas da materia. Basicamente consistirán na realización de programas paralelos de complexidade crecente ata completar un proxecto completo de programación paralela que se poderá realizar en grupo. O alumnado será o elemento activo nestas clases, e o profesor guiará a aprendizaxe ante as cuestións e dúbidas expostas. Os enunciados das prácticas, así como o material de axuda estarán dispoñibles no campus virtual da USC.
Clases de discusión: Nestas clases expoñeranse os proxectos realizados, discutindo a súa implementación a diferentes niveis e, o grao de escalamiento da aplicación.
As titorías poderán ser presenciais (horario acordado co alumnado ou fixado polo centro), a través de correo electrónico ou a través do campus virtual.
Esta materia aplica un sistema de avaliación continua baseado na participación do alumnado, desenvolvemento de prácticas e proxecto de programación paralela a desenvolver durante o curso. As titorías, discusións en clase e a interacción nas clases prácticas permitirán ao profesor coñecer o grao de asimilación da materia que van obtendo os/as alumnos/ as durante o curso.
A asistencia ás prácticas é obrigatoria. Cada unha das prácticas propostas terá unha data de finalización específica. Logo desta data, a práctica considerarase como non realizada. As prácticas avaliaranse durante as sesións previas e posteriores á data de entrega.
Para os casos de realización fraudulenta de exercicios ou probas será de aplicación o recollido na Normativa de avaliación do rendemento académico dos estudantes e de revisión de cualificacións.
Oportunidade ordinaria
Participación no desenvolvemento das clases teóricas (20%).
Competencias trabajadas: CG4, CG9, TR1, TR3, RI9, TI1, TI5
Adquisición de coñecementos básicos en OpenMP e CUDA (15%).
Competencias trabajadas: CG9, TR1, TR3, RI1, R9, R14
Realización de programas paralelos en OpenMP e CUDA (25%).
Competencias trabajadas: CG9, TR1, TR3, RI1, R9, R14
Proxecto de programación paralela (40%).
Competencias trabajadas: CG4, CG9, TR1, TR2, TR3, RI1, R14
Non existe unha nota mínima en participación nin en prácticas, excepto no proxecto de programación paralela que debe superarse cun aprobado (5 puntos sobre 10).
Non se conservarán as notas de cursos anteriores.
Oportunidade de recuperación e convocatoria extraordinaria
Mesmos criterios que na oportunidade ordinaria. A data límite de entrega das prácticas e proxecto de programación paralela será a data oficial do exame de segunda oportunidade. O alumno/a fará unha presentación do proxecto o día do exame.
Non presentado
A cualificación será "non presentado" cando o alumno/a non realice ningunha das probas de avaliación continua.
Alumnado repetidor
Os criterios de avaliación para o alumnado repetidor serán os mesmos que o alumnado que se matricule por primeira vez na materia, agás se se superou a avaliación continua na última convocatoria. Neste caso, o alumno/para deberá poñerse en contacto co profesor.
Alumnado con dispensa
Mesmos criterios de avaliación excepto a participación no desenvolvemento das clases que será mediante os foros dispoñibles no campus virtual.
O traballo persoal do alumnado nunha materia de 4,5 créditos ECTS debe ser dunhas 70,5 horas dedicadas a consulta de bibliografía, estudo autónomo, desenvolvemento das actividades programadas e preparación e presentación de traballos.
A dedicación en tempo pode variar ao longo do cuadrimestre, en especial na etapa de elaboración e presentación de resultados de prácticas e proxecto.
A materia está deseñada para que o alumno/a participe activamente e de maneira regular durante o seu desenvolvemento.
Requisitos previos recomendados na memoria do GrEI: Programación I, Programación II, Fundamentos de Computadores, Arquitectura de Computadores, Sistemas Operativos I, Sistemas Operativos II.
Tamén resulta interesante ter cursada a materia do Fundamentos de Sistemas Paralelos.
A entrega dos materiais do curso e as comunicacións electrónicas co alumnado levará a cabo coas ferramentas do campus virtual da materia.
A materia impártese en castelán. A bibliografía e parte do material están dispoñibles en inglés.
Pablo Quesada Barriuso
Coordinador/a- Departamento
- Electrónica e Computación
- Área
- Arquitectura e Tecnoloxía de Computadores
- Teléfono
- 881813538
- Correo electrónico
- pablo.quesada [at] usc.es
- Categoría
- Profesor/a: Profesor Contratado/a Doutor
Mércores | |||
---|---|---|---|
15:30-16:30 | Grupo /CLE_01 | Castelán | IA.S1 |
14.01.2025 16:00-20:00 | Grupo /CLE_01 | Aula Traballo |
14.01.2025 16:00-20:00 | Grupo /CLIL_01 | Aula Traballo |
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 |