Datos Identificativos 2012/13
Asignatura (*) Computación Científica en Arquitecturas Emerxentes Código 614473003
Titulación
Mestrado Universitario en Computación de Altas Prestacións
Descriptores Ciclo Período Curso Tipo Créditos
Mestrado Oficial 2º cuadrimestre
Primeiro Optativa 3
Idioma
Castelán
Prerrequisitos
Departamento Electrónica e Sistemas
Coordinación
Amor Lopez, Margarita
Correo electrónico
margarita.amor@udc.es
Profesorado
Amor Lopez, Margarita
Correo electrónico
margarita.amor@udc.es
Web
Descrición xeral En este curso se propone una introducción a las diversas arquitecturas emergentes que
están surgiendo como respuesta a una demanda de computación intensiva a la que no
responde las arquitecturas convencionales (procesadores mononúcleo y procesadores
multinúcleos homogéneos). En la primera parte de la asignatura se justifica el creciente
interés en la explotación de arquitecturas emergentes como plataformas alternativas
para la computación científica. En concreto nos centraremos en dos de las arquitecturas
con mayor impacto para computación de propósito general, las GPUs (Graphics
Processing Unit) y las FPGAs (Field-Programmable Gate Array). En la segunda parte
del temario, se estudiará la arquitectura de las GPUs. Además, se presentarán los
principales lenguajes de programación de las GPUs enfocados a propósito general.
También se presentarán los problemas de la programación de esta arquitectura y las
técnicas de optimización para solucionarlos. En la última parte del temario se abordará
el estudio de las FPGAs, tanto su estructura como su programación.

Competencias do título
Código Competencias da titulación
A2 Definir, avaliar e seleccionar a arquitectura e o software máis axeitado para a resolución dun problema.
A4 Profundizar no coñecemento das ferramentas de programación e particularmente en entornos Unix e linguaxes C e Fortran.
A5 Coñecer as arquitecturas emerxentes no campo da supercomputación.
A6 Analizar, deseñar e implementar algoritmos e aplicacións paralelas eficientes.
A12 Coñecer as tendencias en supercomputación así como a súa utilización práctica nos sectores industrial, académico e público.
B1 Aplicar os coñecementos adquiridos e a súa capacidade de resolución de problemas en contornos novos ou pouco coñecidos dentro de contextos máis amplos (ou multidisciplinares) relacionados coa súa área de estudo.
B3 Comunicar conclusións (e os coñecementos e razóns últimas que as sustentan) a públicos especializados e non especializados dun modo claro e sen ambigüidades.
B5 Coñecer e experimentar o método científico de investigación.
B6 Capacidade de análise e síntese.
B8 Motivación pola calidade e mellora contínua.
B9 Usar as novas tecnoloxías.
B10 Buscar e seleccionar a información útil necesaria para resolver problemas complexos, manexando con soltura as fontes bibliográficas do campo.
B13 Expor, defender e discutir propostas.
C1 Expresarse correctamente, tanto de forma oral coma escrita, nas linguas oficiais da comunidade autónoma.
C2 Dominar a expresión e a comprensión de forma oral e escrita dun idioma estranxeiro.
C3 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.
C4 Desenvolverse para o exercicio dunha cidadanía aberta, culta, crítica, comprometida, democrática e solidaria, capaz de analizar a realidade, diagnosticar problemas, formular e implantar solucións baseadas no coñecemento e orientadas ao ben común.
C6 Valorar criticamente o coñecemento, a tecnoloxía e a información dispoñible para resolver os problemas cos que deben enfrontarse.
C7 Asumir como profesional e cidadán a importancia da aprendizaxe ao longo da vida.

Resultados de aprendizaxe
Competencias de materia (Resultados de aprendizaxe) Competencias da titulación
Definir, evaluar y seleccionar la arquitectura y el software más adecuado para la ejecución de un problema científico AI2
AI5
AI6
BI5
BI6
BI9
BI10
CM3
CM7
Evaluar la eficiencia de diferentes implementaciones AI2
AI6
BI6
CM6
Conocimiento de las tecnologías, que capaciten para el aprendizaje y desarrollo de nuevas propuestas, así como la capacidad para enfrentarse a otras arquitecturas emergentes AI4
AI12
BI1
BI5
CM4
Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos BI3
BI8
BI13
CM1
CM2

Contidos
Temas Subtemas
PARTE I.
1.Introducción
1. La crisis del hardware
2. Arquitecturas emergentes:
2.1 Multinúcleos heterogéneos.
2.2 FPGAs
2.3 GPU (Graphics Processing Unit)
PARTE II.

2. Arquitectura de la GPU
1. Introducción. Generaciones de la GPU
2. Estructura de la GPU
3. Arquitectura Tesla de Nvidia
4. Arquitectura Streaming de AMD
3. Programación de la GPU para propósito general 1. Introducción.
2. Modelo de programación
3. Lenguajes de programación para propósito general:
2.1 CUDA de Nvidia
2.2 OpenCL

4. Técnicas de optimización 1. Utilización de instrucciones intrínsecas
2. Optimización del uso de la memoria de la GPU
3. Minimización de la transferencia CPU-GPU
4. Planificación de tareas
PARTE III.

5.- FPGAs

1.- Dispositivos configurables
2.- Estructura de las FPGASs
3.- Metodología de diseño y prototipado.

Planificación
Metodoloxías / probas Horas presenciais Horas non presenciais / traballo autónomo Horas totais
Sesión maxistral 8 8 16
Prácticas de laboratorio 14 14 28
Proba obxectiva 1 1 2
Presentación oral 1 24 25
 
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
Sesión maxistral Exposición oral complementada con el uso de medios audiovisuales y la introducción de fases de debate con los estudiantes. Todo ello con la finalidad de transmitir conocimientos y facilitar el aprendizaje.
Se realizarán sesiones magistrales sobre gran parte de los contenidos del temario, normalmente como punto de partida para el resto de actividades previstas para cada punto.
Prácticas de laboratorio Actividad que permite a los estudiantes aprender y afianzar los conocimientos ya adquiridos mediante la realización de sesiones prácticas en ordenadores.

Las prácticas se harán utilizando tarjetas gráficas utilizando lenguajes de programación de última generación. Los alumnos trabajarán individualmente en su realización.
Proba obxectiva Actividad realizada para la evaluación del conocimiento y las capacidades adquiridas por los alumnos con esta materia.

Consiste en una prueba escrita con preguntas para la evaluación individual objetiva de cada alumno.
Presentación oral Exposición verbal, acompañada de material audiovisual y de ejemplos prácticos si es necesario, llevada a cabo por parte de un alumno o grupo de alumnos sobre el trabajo realizado y las conclusiones obtenidas con el mismo. Además de favorecer la adquisición de cualidades relacionadas con la expresión oral de ideas, esta actividad permite entablar un debate con los alumnos.

Atención personalizada
Metodoloxías
Prácticas de laboratorio
Presentación oral
Descrición
La atención personalizada en la realización de los trabajos tutelados y las prácticas de laboratorio es imprescindible para dirigir a cada grupo de alumnos en el desarrollo del trabajo que les ha sido asignado. Además, esta atención servirá para validar y evaluar el trabajo que va siendo realizado por los alumnos en sus distintas fases de desarrollo hasta llegar a su finalización.

Avaliación
Metodoloxías Descrición Cualificación
Sesión maxistral Es obligatoria la asistencia 10
Prácticas de laboratorio Es obligatoria la asistencia y la realización de las prácticas de laboratorio estipuladas en los boletines 30
Proba obxectiva Exame escrito 40
Presentación oral Presentación oral de un trabajo propuesto por el profesor para profundizar en algún aspecto de la asignatura 20
 
Observacións avaliación

Fontes de información
Bibliografía básica A. Munshi, B.R. Gaster, T. G. Mattson, J. Fung and D. Ginsburg (2012). OpenCL Programming Guide. Addison-Wesley
D. B. Kirk and W.-M. Hwu (2010). Programming Massively Parallel Processors: A Hands-on Approach. Morgan Kaufmann
P. J. Ashenden (2002). The Designer's guide to VHDL. Morgan Kaufmann

Bibliografía complementaria W.-M. Hwu (2011). GPU Computing Gems. Morgan Kaufmann
T. Akenine-Möller and E. Haines (2008). Real-Time Rendering. A. K. Peters
D. C. Black, J. Donovan, B. Bunton and A. Keist (2004). SystemC: From the Ground Up. Springer


Recomendacións
Materias que se recomenda ter cursado previamente
Arquitectura e Tecnoloxía de Computadores/614473001
Programación Paralela/614473004

Materias que se recomenda cursar simultaneamente
Técnicas de Optimización e Paralelización/614473005

Materias que continúan o temario

Observacións


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