Datos Identificativos 2019/20
Asignatura (*) Programación de Arquitecturas Heterogéneas Código 614973103
Titulación
Mestrado Universitario en Computación de Altas Prestacións / High Performance Computing (Mod. Virtual)
Descriptores Ciclo Periodo Curso Tipo Créditos
Máster Oficial 1º cuatrimestre
Primero Obligatoria 6
Idioma
Modalidad docente Presencial
Prerrequisitos
Departamento Departamento profesorado máster
Enxeñaría de Computadores
Coordinador/a
Amor Lopez, Margarita
Correo electrónico
margarita.amor@udc.es
Profesorado
Amor Lopez, Margarita
González Domínguez, Jorge
López Vilariño, David
Correo electrónico
margarita.amor@udc.es
jorge.gonzalezd@udc.es
Web
Descripción general

Competencias del título
Código Competencias del título
A2 CE2 - Analizar y mejorar el rendimiento de una arquitectura o un software dado
A4 CE4 - Profundizar en el conocimiento de herramientas de programación y diferentes lenguajes en el campo de la computación de altas prestaciones
A5 CE5 - Analizar, diseñar e implementar algoritmos y aplicaciones paralelas eficientes
A7 CE7 - Conocer las arquitecturas emergentes en el campo de la supercomputación
B1 CB6 - Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en el desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación
B2 CB7 - Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio
B6 CG1 - Ser capaz de buscar y seleccionar la información útil necesaria para resolver problemas complejos, manejando con soltura las fuentes bibliográficas del campo
B7 CG2 - Elaborar adecuadamente y con cierta originalidad composiciones escritas o argumentos motivados, redactar planes, proyectos de trabajo, artículos científicos y formular hipótesis razonables.
C1 CT1 - Utilizar las herramientas básicas de las tecnologías de la información y las comunicaciones (TIC) necesarias para el ejercicio de su profesión y para el aprendizaje a lo largo de su vida

Resultados de aprendizaje
Resultados de aprendizaje Competencias del título
Analizar y mejorar el rendimiento de una arquitectura o un software dado AP2
BP1
BP2
CP1
Profundizar en el conocimiento de herramientas de programación y diferentes lenguajes en el campo de la computación de altas prestaciones AP4
BP6
CP1
Analizar, diseñar e implementar algoritmos y aplicaciones paralelas eficientes AP5
BP2
Conocer las arquitecturas emergentes en el campo de la supercomputación AP7
BP7

Contenidos
Tema Subtema
Estructura de un sistema heterogéneo con procesadores de propósito general+acelerador. Integración conjunta. -
Sistemas multi-núcleo en procesadores de propósito general y many-core en aceleradores como Xeon-Phi o GPU. -
Arquitectura de sistemas heterogéneos habituales. -
Modelos de programación y compiladores para sistemas heterogéneos. -
Programación de propósito general en sistemas heterogéneos. -
Optimizaciones para sistemas heterogéneos. -
Codiseño hardware-software sobre arquitecturas CPU-FPGA. -

Planificación
Metodologías / pruebas Competéncias Horas presenciales Horas no presenciales / trabajo autónomo Horas totales
Lecturas B6 0 16 16
Prueba objetiva A7 B7 4 0 4
Trabajos tutelados A4 A5 B1 B2 B7 C1 0 82 82
Prácticas de laboratorio A2 A4 B2 2 38 40
 
Atención personalizada 8 0 8
 
(*)Los datos que aparecen en la tabla de planificación són de carácter orientativo, considerando la heterogeneidad de los alumnos

Metodologías
Metodologías Descripción
Lecturas Lectura de material didáctico, visionado de vídeos y consulta de material multimedia. Competencia traballada: B6
Prueba objetiva Examen sobre los contenidos de la materia que combinará preguntas de teoría con la resolución de problemas. Competencias trabajadas: A7, B7
Trabajos tutelados Consulta de bibliografía, estudio autónomo, desarrollo de actividades programas, preparación de presentaciones y trabajos. Competencias trabajadas: A4, A5, B1, B2, B7, C1
Prácticas de laboratorio En el aula de informática, se realizará aprendizaje basado en problemas y estudios de casos prácticos. Se hará una introducción a la programación de sistemas heteroxéneos procesador lógica sobre arquitectura Zynq-7000 con el entorno de desarrollo Vivado de Xilinx. Se programarán las GPUs con CUDA sobre lo cluster del CESGA o del GAC-UDC; y, se compararán con otros métodos de programación como el OpenCL. Competencias trabajadas: A2, A4, B2

Atención personalizada
Metodologías
Prácticas de laboratorio
Descripción
Prácticas de laboratorio: Atender y resolver dudas del alumnado en relación a las prácticas propuestas o realizadas en el laboratorio.

Trabajos tutelados: Atender y resolver dudas del alumnado en relación a los trabajos tutelados propuestos.

Evaluación
Metodologías Competéncias Descripción Calificación
Prácticas de laboratorio A2 A4 B2 En las sesiones de laboratorio se proponen el desarrollo dunas prácticas. Al final dalguhas sesiones se valora el correcto funcionamiento de la práctica, la estructuración del código y la comprensión de los conceptos trabajados mediante una prueba escrita. 50
Prueba objetiva A7 B7 Corresponde a conocimientos impartidos en las sesiones magistrales. 20
Trabajos tutelados A4 A5 B1 B2 B7 C1 El estudiante teñe que resolver un trabajo donde presentará una memoria y se valora el correcto funcionamiento del trabajo en el laboratorio. 30
 
Observaciones evaluación

Los estudiantes con reconocimiento de dedicación a tiempo parcial y dispensa académica de exención de asistencia teniente exención de asistencia seguiría los mismos criterios que la modalidad no presencial.


Fuentes de información
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

Complementária 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


Recomendaciones
Asignaturas que se recomienda haber cursado previamente

Asignaturas que se recomienda cursar simultáneamente
Arquitectura de Altas Prestaciones/614473101
Programación Paralela/614473102

Asignaturas que continúan el temario
Programación Paralela Avanzada/614473107

Otros comentarios
<p>Es recomendable leer el material asignado para cada clase de teoría antes de asistir la ella.<br /><br />La aquellos alumnos que presenten trabajos o realicen pruebas de evaluación de forma no presencial, se les podrá solicitar también la firma dixital de los mismos y/o una declaración jurada sobre la autoría de los mismos.</p>


(*) La Guía Docente es el documento donde se visualiza la propuesta académica de la UDC. Este documento es público y no se puede modificar, salvo cosas excepcionales bajo la revisión del órgano competente de acuerdo a la normativa vigente que establece el proceso de elaboración de guías