Datos Identificativos 2019/20
Asignatura (*) Programación Paralela Avanzada Código 614473107
Titulación
Mestrado Universitario en Computación de Altas Prestacións / High Performance Computing (Mod. Presencial)
Descriptores Ciclo Período Curso Tipo Créditos
Mestrado Oficial 2º cuadrimestre
Primeiro Optativa 6
Idioma
Castelán
Galego
Inglés
Modalidade docente Presencial
Prerrequisitos
Departamento Departamento profesorado máster
Enxeñaría de Computadores
Coordinación
Fraguela Rodriguez, Basilio Bernardo
Correo electrónico
basilio.fraguela@udc.es
Profesorado
Cabaleiro Domínguez, José Carlos
Darriba López, Diego
Fraguela Rodriguez, Basilio Bernardo
Correo electrónico
diego.darriba@udc.es
basilio.fraguela@udc.es
Web http://aula.cesga.es
Descrición xeral Nesta materia incrementaranse os coñecementos de programación paralela adquiridos polos alumnos no cuadrimestre anterior nas materias "Programación paralela" e "Programación de arquitecturas heteroxéneas". O obxectivo será que os alumnos aprendan a optimizar códigos paralelos para grandes arquitecturas paralelas ou supercomputadores actuais, usando como base para as súas probas os recursos proporcionados polo Centro de Supercomputación de Galicia (CESGA) e o Grupo de Arquitectura de Computadores (GAC) da Universidade dá Coruña (UDC).

Centrarase naqueles aspectos das aplicacións paralelas que adoitan penalizar o rendemento, como son as comunicacións, o abalo de carga, o acceso a memoria ou o manexo de entrada/saída. Tamén se abordará a computación multiplataforma que permita aproveitar o paralelismo a nivel de tarefas entre varios aceleradores hardware, así como a computación híbrida onde una mesma aplicación faga uso de varias paradigmas de programación paralela co fin de obter un bo rendemento en clústers de sistemas multinúcleo e/ou aceleradores hardware.
Plan de continxencia

Competencias do título
Código Competencias do título
A1 CE1 - Definir, avaliar e seleccionar a arquitectura e o software máis axeitado para a resolución dun problema
A2 CE2 - Analizar e mellorar o rendimento dunha arquitectura ou un software dado
A4 CE4 - Afondar no coñecemento de ferramentas de programación e diferentes linguaxes no campo da computación de altas prestacións
A5 CE5 - Analizar, deseñar e implementar algoritmos e aplicacións paralelas eficientes
A7 CE7 - Coñecer as arquitecturas emerxentes no campo da supercomputación
B1 CB6 - Posuir e comprender coñecementos que aporten unha base ou oportunidade de ser orixinais no desenrolo e/ou aplicación de ideas, a miudo nun contexto de investigación
B2 CB7 - Que os estudantes saiban aplicar os coñecementos adquiridos e súa capacidade de resolución de problemas en contornas novas ou pouco coñecidas dentro de contextos máis amplos (ou multidisciplinares) relacionados coa súa área de estudo
B5 CB10 - Que os estudantes posúan as habilidades de aprendizaxe que lles permitan continuar estudando dun modo que deberá ser en grande medida autodirixido ou autónomo.
B6 CG1 - Ser capaz de buscar e seleccionar a información útil necesaria para resolver problemas complexos, manexando con soltura as fontes bibliográficas do campo
B9 CG4 - Ser capaz de planificar e realizar tarefas de investigación, desenrolo e innovación en ámbitos relacionados coa computación de altas prestacións
C1 CT1 -Utilizar as ferramentas básicas das tecnoloxías da información e as comunicacións (TIC) necesarias para o exercicio da súa profesión e para a aprendizaxe ao longo da súa vida.

Resultados de aprendizaxe
Resultados de aprendizaxe Competencias do título
Coñecer optimizacións avanzadas aplicables a programas paralelos AP1
AP2
AP5
BP1
BP2
BP5
BP6
BP9
Controlar a afinidade e o balanceo de carga AP5
BP1
BP2
BP5
BP6
BP9
CP1
Optimizar comunicacións en sistemas de memoria distribuida AP2
AP4
AP5
BP1
BP2
BP5
BP6
BP9
CP1
Realizar entrada/salida paralela AP4
AP5
BP1
BP2
BP5
BP6
BP9
CP1
Programar sistemas con varios aceleradores hardware AP4
AP5
AP7
BP1
BP2
BP5
BP6
BP9
CP1
Programar sistemas con memoria compartida/distribuida AP4
AP5
AP7
BP1
BP2
BP5
BP6
BP9
CP1

Contidos
Temas Subtemas
1- Técnicas avanzadas de optimización de códigos paralelos. -
2- Control de afinidade e balanceo de carga. -
3- Optimización de comunicacións en sistemas de memoria distribuida.
-
4- Entrada/salida paralela. -
5- Programación híbrida para sistemas con varios aceleradores hardware.
-
6- Programación híbrida para sistemas de memoria compartida/distribuida. -

Planificación
Metodoloxías / probas Competencias Horas presenciais Horas non presenciais / traballo autónomo Horas totais
Prácticas de laboratorio A2 A5 C1 21 63 84
Traballos tutelados A1 A2 A4 A5 A7 B1 B2 B5 B6 B9 C1 0 45 45
Proba mixta A2 A5 B2 2 0 2
Sesión maxistral A1 A4 A7 B1 18 0 18
 
Atención personalizada 1 0 1
 
*Os datos que aparecen na táboa de planificación son de carácter orientativo, considerando a heteroxeneidade do alumnado

Metodoloxías
Metodoloxías Descrición
Prácticas de laboratorio Nestas clases se realizan tarefas dirixidas que permitan ao alumno familiarizarse desde un punto de vista práctico cos contidos expostos nas clases teóricas.
Traballos tutelados Realización de traballos, nos que o alumno ten que empregar os coñecementos adquiridos para resolver distintos problemas de forma autónoma.
Proba mixta Realización dunha proba de avaliación da materia.
Sesión maxistral Clases teóricas, nas que se expón o contido de cada tema. O alumno disporá de todo o material necesario antes da clase e o profesor promoverá unha actitude activa, realizando preguntas que permitan aclarar aspectos concretos e deixando cuestións abertas para a reflexión do alumno.

Atención personalizada
Metodoloxías
Traballos tutelados
Prácticas de laboratorio
Descrición
Tanto nas práticas de laboratorio así como durante o desenvolvemento dos traballos tutelados, os estudantes poderán presentar cuestións, dúbidas, etc. O profesor/a, atendendo a estas solicitudes, repasará conceptos, resolverá novos problemas ou utilizará calquera actividade que considere axeitada para resolver as cuestións plantexadas.

Avaliación
Metodoloxías Competencias Descrición Cualificación
Traballos tutelados A1 A2 A4 A5 A7 B1 B2 B5 B6 B9 C1 Calidade do traballo e do progreso do alumno durante a súa realización 70
Proba mixta A2 A5 B2 Corrección e calidade das solucións propostas polos estudiantes ás cuestións plantexadas na proba 30
 
Observacións avaliación

Nas actividades de avaliación a distancia se lles poderá requirir aos alumnos a aplicación de mecanismos que garantan a súa identidade así como o autoría de os elementos avaliables presentados.



Todas as actividades de avaliación recolleitas nesta guía conforman o proceso de avaliación continua da asignatura. Nin as clases nin a meirande parte das actividade de avaliación requiren presencialidade do alumno, sendo a excepción a proba mixta, dun máximo de 2 horas. Isto, unido ao feito de que todos os materiais da asignatura están dispoñibles na plataforma web de educación do título, favorece o traballo e a avaliación dos alumnos matriculados a tempo parcial e con dispensa académica de exención de docencia.


Fontes de información
Bibliografía básica

- Using Advanced MPI: Modern Features of the Message-Passing Interface. 2014. W. Gropp, T. Hoefler, R. Thakur, E. Lusk. MIT Press
- Using OpenMP: The Next Step: Affinity, Accelerators, Tasking, and SIMD (Scientific and Engineering Computation). 2017. R. van der Pas, E. Stotzer, C. Terboven . MIT Press
- OpenCL Programming Guide. 2011. A. Munshi, B. Gaster, T. G. Mattson, J. Fung, D. Ginsburg. Addison-Wesley/Pearson Education

Bibliografía complementaria

- Multi-core programming. 2006. S. Akhter e J. Roberts. Intel Press.
- Professional CUDA C Programming. 2014. J. Cheng, M. Grossman, T. McKercher. Wross.


Recomendacións
Materias que se recomenda ter cursado previamente
Programación Paralela/614473102
Programación de Arquitecturas Heteroxéneas/614473103

Materias que se recomenda cursar simultaneamente

Materias que continúan o temario
Traballo Fin de Máster/614473111

Observacións

Debido á forte interrelación entre a parte teórica e a parte práctica, e á progresividade na presentación de conceptos moi relacionados entre si na parte teórica, é recomendable dedicar un tempo de estudo ou repaso diario.


Nesta materia faráse un uso intensivo de ferramentas de comunicacioun en liña: videoconferencia, correo electrónico, chat, etc.



(*)A Guía docente é o documento onde se visualiza a proposta académica da UDC. Este documento é público e non se pode modificar, salvo casos excepcionais baixo a revisión do órgano competente dacordo coa normativa vixente que establece o proceso de elaboración de guías