Datos Identificativos 2020/21
Asignatura (*) Programación de Arquitecturas Heteroxéneas Código 614473103
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 1º cuadrimestre
Primeiro Obrigatoria 6
Idioma
Castelán
Modalidade docente Híbrida
Prerrequisitos
Departamento Departamento profesorado máster
Enxeñaría de Computadores
Coordinación
Amor Lopez, Margarita
Correo electrónico
margarita.amor@udc.es
Profesorado
Amor Lopez, Margarita
González Domínguez, Jorge
Correo electrónico
margarita.amor@udc.es
jorge.gonzalezd@udc.es
Web
Descrición xeral Os e as estudantes adquirirán a formación básica para analizar as arquitecturas heteroxéneas con aceleradores tales como unha GPU, como
alternativa aos sistemas multi-núcleo en procesadores de propósito xeral, e quedarán capacitados/as para contrastar as súas prestacións e
rendemento. Adicionalmente, desenvolverán software eficiente para estas novas plataformas a través das linguaxes que xurdiron nos últimos anos
para aplicacións de propósito xeral. Así, iniciarase aos e as estudantes a algunhas das aproximacións máis estendidas para a programación de
sistemas heteroxéneos. Para finalizar, familiarizaremos aos e as estudante coas técnicas de optimización orientadas ás xeracións máis avanzadas dos
sistemas heteroxéneos.
Plan de continxencia 1. Modificacións nos contidos

Non se realizarán cambios

2. Metodoloxías
*Metodoloxías docentes que se manteñen

? Sesión magistral (por Teams)
? Proba Obxectiva (por AulaCesga)
? Prácticas de laboratorio (Defensa por Teams, computa na avaliación)
? Traballos tutelados (con Atención personalizada) (computa na avaliación)
? Atención personalizada (por Teams e email)

*Metodoloxías docentes que se modifican
Non se modifican as metodoloxías senón que serán realizadas a través das plataformas das que se dispoñen na UDC.
2. Mecanismos de atención personalizada ao alumnado

? Correo electrónico: Diariamente. Para facer consultas, solicitar encontros virtuales para
resolver dúbidas e facer seguimiento dos traballos tutelados e as prácticas.
? Moodle e AulaCesga: Semanalmente. Disponse de anuncios onde se avisará da planificación das asignaturas, as clasificacións ou eventos relacionados coa materia.
? Teams: Unha sesión magistral para os contidos teóricos na franxa horaria que ten asignada a materia. Unha sesión semanal para as prácticas de laboratorio, seminarios e traballos tutelados. Dúas sesións á semana para as tutorías.

4. Modificacións na avaliación

*Observacións de avaliación:
Non hai modificación da avaliación. O 20% xa correspondía á proba final, 30% a traballos tutelados e 50% ás prácticas. A proba final realizarase polo AulaCesga.

5. Modificacións dá bibliografía ou webgrafía

Non se realizarán cambios. Xa se dispón de todos os materiais de traballo no Moodle.

Competencias do título
Código Competencias do título
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
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
B7 CG2 - Elaborar adecuadamente e con certa orixinalidade composicións escritas ou argumentos motivados, redactar plans, proxectos de traballo, artigos científicos e formular hipótesis razoables.
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
Analizar e mellorar o rendemento dunha arquitectura ou un software dado AP2
BP1
BP2
CP1
Profundar no coñecemento de ferramentas de programación e diferentes linguaxes no campo da computación de altas prestacións AP4
BP6
CP1
Analizar, deseñar e implementar algoritmos e aplicacións paralelas eficientes AP5
BP2
Coñecer as tecnoloxías e ferramentas dispoñíbeis para a computación en sistemas distribuídos sobre unha rede AP7
BP7

Contidos
Temas Subtemas
Estrutura dun sistema heteroxéneo con procesadores de propósito xeral+acelerador. Integración conxunta. -
Sistemas multi-núcleo en procesadores de propósito xeral e many-core en aceleradores como Xeon-Phi ou GPU. -
Arquitectura de sistemas heteroxéneos habituais. -
Modelos de programación e compiladores para sistemas heteroxéneos. -
Programación de propósito xeral en sistemas heteroxéneos. -
Optimizacións para sistemas heteroxéneos. -
Codiseño hardware-software sobre arquitecturas CPU-FPGA. -

Planificación
Metodoloxías / probas Competencias Horas presenciais Horas non presenciais / traballo autónomo Horas totais
Prácticas de laboratorio A2 A4 B2 19 19 38
Traballos tutelados A4 A5 B1 B2 B7 C1 4 80 84
Proba obxectiva A7 B7 1 0 1
Sesión maxistral B6 23 0 23
 
Atención personalizada 4 0 4
 
*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 Na aula de informática, realizarase aprendizaxe baseada en problemas e estudos de casos prácticos. Farase unha introdución á programación de sistemas heteroxéneos procesador+lóxica sobre arquitectura Zynq-7000 coa contorna de desenvolvemento Vivado de Xilinx. Programaranse as GPUs con CUDA sobre o cluster do CESGA ou do GAC-UDC; e, compararanse con outros métodos de programación como o OpenCL. Competencias trabajadas: A2, A4, B2
Traballos tutelados consulta de bibliografía, estudo autónomo, desenvolvemento de actividades programas, preparación de presentacións e traballos. Competencias traballadas: A4, A5, B1, B2, B7, C1
Proba obxectiva Exame sobre os contidos da materia que combinará preguntas de teoría coa resolución de problemas. Competencias traballadas: A7, B7
Sesión maxistral Ao estudante indicaráselle con anterioridade o material necesario que debe ler para seguir correctamente a explicación do profesor. En clase o profesor aclarará os aspectos máis relevantes do tema, de forma interactiva co estudante. Competencias traballadas: B6

Atención personalizada
Metodoloxías
Prácticas de laboratorio
Traballos tutelados
Descrición
Prácticas de laboratorio: Atender e resolver dúbidas do alumnado en relación ás prácticas propostas ou realizadas no laboratorio.

Traballos tutelados: Atender e resolver dúbidas do alumnado en relación aos traballos tutelados propostos.

Avaliación
Metodoloxías Competencias Descrición Cualificación
Prácticas de laboratorio A2 A4 B2 Nas sesións de laboratorio proponse o desenvolvemento dunas prácticas. Ao final dalguhas sesións valórase o correcto funcionamento da práctica, a estructuración do código e a comprensión dos conceptos traballados mediante unha proba escrita. 50
Traballos tutelados A4 A5 B1 B2 B7 C1 O estudante teñe que resolver un trabalho onde presentará unha memoria e valórase o correcto funcionamento do trabalho no laboratorio. 30
Proba obxectiva A7 B7 Corresponde a coñecementos impartidos nas sesións maxistrales. 20
 
Observacións avaliación

Os estudantes con recoñecemento de dedicación a tempo parcial e dispensa académica de exención de asistencia tenente exención de asistencia seguiría os mesmos criterios que a modalidade non presencial.


Fontes de información
Bibliografía básica Pong P. Chu (2011). Embedded SoPC Design with Nios II Processor and VHDL Examples. Wiley-IEEE Press
David Kirk and Wen-mei Hwu (2016). Programming Massively Parallel Processors. Morgran Kauffmann

Bibliografía complementaria Jason Sanders (2010). CUDA by Example: An Introduction to General-Purpose GPU Programming. Addison Wesley
B. R. Gaster, L. Howes, D. R. Kaeli, P. Mistry, D. Schaa (2013). Heterogeneous Computing with OpenCL. Morgan Kaufmann
L. H. Crokett, R. Elliot and M. Ederwitz (2014). The Zynq Book: Embedded Processing with the ARM Cortex-A9 on the Xilinx Zynq-7000. All Programmable SoC. Strathclyde Academic Media


Recomendacións
Materias que se recomenda ter cursado previamente

Materias que se recomenda cursar simultaneamente
Arquitectura de Altas Prestacións/614473101
Programación Paralela/614473102

Materias que continúan o temario
Programación Paralela Avanzada/614473107

Observacións

É recomendable ler o material asignado para cada clase de teoría antes de asistir a ela.

A aqueles alumnos que presenten traballos ou realicen probas de avaliación de forma non presencial, poderáselles solicitar tamén a firma dixital dos mesmos e/ou unha declaración xurada sobre a autoría dos mesmos.



(*)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