Datos Identificativos 2014/15
Asignatura (*) Técnicas de Optimización e Paralelización Código 614473005
Titulación
Mestrado Universitario en Computación de Altas Prestacións
Descriptores Ciclo Período Curso Tipo Créditos
Mestrado Oficial 1º cuadrimestre
Primeiro Obrigatoria 6
Idioma
Castelán
Galego
Prerrequisitos
Departamento Electrónica e Sistemas
Coordinación
Fraguela Rodriguez, Basilio Bernardo
Correo electrónico
basilio.fraguela@udc.es
Profesorado
Arenaz Silva, Manuel Carlos
Fraguela Rodriguez, Basilio Bernardo
Correo electrónico
manuel.arenaz@udc.es
basilio.fraguela@udc.es
Web
Descrición xeral
O obxectivo principal do curso é proporcionar unha visión xeral dos esquemas básicos de optimización de código e paralelización máis usados en aplicacións de todo tipo, con especial énfasis nas científicas e de ingeniería. Faise unha revisión dos núcleos computacionales máis comúns neste tipo de aplicacións, e das súas versións paralelas para cada tipo de algoritmo. Coas competencias adquiridas nesta materia, o egresado terá a capacidade de tomar decisións profesionais e empresariais que permitan mellorar a calidade, o rendemento e a competitividad dos produtos de software da súa organización.

Competencias do título
Código Competencias da titulación
A1 Analizar e mellorar o rendemento dunha arquitectura ou un software dado.
A2 Definir, avaliar e seleccionar a arquitectura e o software máis axeitado para a resolución dun problema.
A6 Analizar, deseñar e implementar algoritmos e aplicacións paralelas eficientes.
B2 Integrar coñecementos e enfrontarse á complexidade de formular xuízos a partir dunha información que, sendo incompleta ou limitada, inclúa reflexións sobre as responsabilidades sociais e éticas vinculadas á aplicación dos seus coñecementos e xuízos.
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.
B4 Aplicar habilidades de aprendizaxe que lles permitan continuar estudando dun modo que deberá de ser en gran medida autodirigido ou autónomo.
B6 Capacidade de análise e síntese.
B9 Usar as novas tecnoloxías.
B12 Traballar en equipo.
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.
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
Aplicar técnicas de optimización para códigos secuenciais que teñen un alto impacto en programas paralelos AI1
AI6
BI6
Aplicar os algoritmos de transformación de programas secuenciais en programas paralelos máis utilizados AI1
AI6
Extraer paralelismo mediante a análise das características dunha aplicación secuencial co obxecto de desenvolver unha versión paralela AI1
AI6
BI6
Adaptar aplicacións de xeito que teñan un bo rendemento en computadores paralelos con diferentes arquitecturas AI1
AI6
Comparar e avaliar alternativas de deseño e implementación de aplicacións paralelas para computadores paralelos con diferentes arquitecturas AI1
AI2
AI6
BI2
BI3
BI9
CM6
Traballar en equipo BI12
BI13
CM1
Levar a cabo unha aprendizaxe autónoma BI4
CM2
CM7

Contidos
Temas Subtemas
1. Introducción a. Programa
b. Relación con outras asignaturas
c. Avaliación
d. Consideracións xerais
2. Optimización do procesamento paralelo a. Métricas de rendemento de programas paralelos
b. Fases na paralelización
c. Técnicas de distribución/particionamento de datos
d. Técnicas de balanceo da carga computacional
3. Optimización do uso da xerarquía de memoria a. Técnicas de programación para a mellora da localidade
b. Técnicas de programación para a ocultación da latencia dos accesos
c. Optimizacións do uso da memoria específicas das aplicacións paralelas
4. Outras optimizacións secuenciais a. Extensións á linguaxe
b. Condicionais
c. Bucles
d. Táboas de consulta
e. Plantillas
f. Inlining
g. Outros
5. Optimización baseada en núcleos computacionais a. Caracterización de núcleos computacionais
b. Técnicas de paralelización de núcleos computacionais
c. Acoplamento de diversas técnicas de paralelización
d. Outros aspectos do rendemento das técnicas de paralelización de núcleos computacionais
e. Paralelización automática

Planificación
Metodoloxías / probas Horas presenciais Horas non presenciais / traballo autónomo Horas totais
Sesión maxistral 22 44 66
Prácticas de laboratorio 27 27 54
Traballos tutelados 3 21 24
 
Atención personalizada 6 0 6
 
*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 co uso de medios audiovisuales e a introdución de fases de debate cos estudantes. Todo iso coa finalidade de transmitir coñecementos e facilitar a aprendizaxe. Realizaranse sesións magistrales sobre gran parte dos contidos do temario, normalmente como punto de partida para o resto de actividades previstas para cada punto.
Prácticas de laboratorio Actividade que permite aos estudantes aprender e afianzar os coñecementos xa adquiridos mediante a realización de sesións prácticas en ordenadores.
Traballos tutelados Actividade que permite aos alumnos estudar en maior profundidade unha aplicación específica directamente relacionada con algún dos contidos da materia. Asignaráselle un traballo tutelado a cada alumno. Unha vez desenvolvido terá que entregar un informe sobre o mesmo.

Atención personalizada
Metodoloxías
Prácticas de laboratorio
Traballos tutelados
Descrición
A atención personalizada desenvólvese na realización das prácticas de laboratorio, así como nos traballos tutelados, xa que é imprescindible para dirixir aos alumnos no desenvolvemento do traballo. Ademais, esta atención serve para validar e avaliar o traballo que vai realizando cada alumno en distintas fases do seu desenvolvemento ata chegar ao seu finalización.

Doutra banda, recomendarase aos alumnos a asistencia a tutorías como método de axuda.

Avaliación
Metodoloxías Descrición Cualificación
Prácticas de laboratorio Valoración da aptitude e aprendizaxe desenvolvidos nas actividades acometidas nas sesións prácticas da materia 40
Traballos tutelados Calidade do traballo e do progreso do alumno durante a súa realización 60
 
Observacións avaliación

Todas as actividades de avaliación recolleitas nesta guía conforman o proceso de avaliación continua da asignatura. Nin as clases nin ningunha actividade de avaliación requiren presencialidad do alumno. 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.

A entrega de actividades de avaliación (sexan prácticas ou traballos tutelados) copiadas dará lugar a un suspenso automático.



Fontes de información
Bibliografía básica M. Wolfe (1995). High-Performance Compilers for Parallel Computing. Addison Wesley
Randy Allen, Ken Kennedy (2001). Optimizing Compilers for Modern Architectures: A Dependence-based Approach . Morgan Kaufmann
Richard Gerber, Aart J. C. Bik , Kevin Smith , Xinmin Tian (2005). The software optimization cookbook. High performance recipes for IA-32 platforms. Intel Press 2nd edition

Bibliografía complementaria M.J. Quinn (2003). Parallel Programing in C with MPI and OpenMP. McGraw-Hill


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
Programación Paralela/614473004

Materias que continúan o temario
Taller de Proxectos/614473013
Traballo Fin de Mestrado/614473014
Depuración de Programas e Análise do Rendemento/614473008

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