Datos Identificativos 2013/14
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 El objetivo principal del curso es proporcionar una visión general de los esquemas básicos de optimización de código y paralelización más usados en aplicaciones de todo tipo, con especial énfasis en las científicas y de ingeniería. Se hace una revisión de los núcleos computacionales más comunes en este tipo de aplicaciones, y de sus versiones paralelas para cada tipo de algoritmo. Con las competencias adquiridas en esta materia, el egresado tendrá la capacidad de tomar decisiones profesionales y empresariales que permitan mejorar la calidad, el rendimiento y la competitividad de los productos de software de su 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 secuenciales que tienen un alto impacto en programas paralelos AI1
AI6
BI6
Aplicar los algoritmos de transformación de programas secuenciales en programas paralelos más utilizados AI1
AI6
Extraer paralelismo mediante el análisis de las características de una aplicación secuencial con objeto de desarrollar una versión paralela AI1
AI6
BI6
Adaptar aplicaciones de forma que tengan un buen rendimiento en computadores paralelos con diferentes arquitecturas AI1
AI6
Comparar y evaluar alternativas de diseño e implementación de aplicaciones paralelas para computadores paralelos con diferentes arquitecturas AI1
AI2
AI6
BI2
BI3
BI9
CM6
Trabajar en equipo BI12
BI13
CM1
Llevar a cabo un aprendizaje aut0ónomo BI4
CM2
CM7

Contidos
Temas Subtemas
1. Introducción a. Programa
b. Relación con otras asignaturas
c. Evaluación
d. Consideraciones generales
2. Optimización del procesamiento paralelo a. Métricas de rendimiento de programas paralelos
b. Fases en la paralelización
c. Técnicas de distribución/particionamiento de datos
d. Técnicas de balanceo de la carga computacional
3. Optimización del uso de la jerarquía de memoria a. Técnicas de Programación para la Mejora de la Localidad
b. Técnicas de Programación para la Ocultación de la Latencia de los Accesos
c. Optimizaciones del Uso de la Memoria Específicas de las Aplicaciones Paralelas
4. Otras optimizaciones secuenciales a. Extensiones al lenguaje
b. Condicionales
c. Bucles
d. Tablas de consulta
e. Plantillas
f. Inlining
g. Otros
5. Optimización basada en núcleos computacionales a. Caracterización de núcleos computacionales
b. Técnicas de paralelización de núcleos computacionales
c. Acoplamiento de diversas técnicas de paralelización
d. Otros aspectos del rendimiento de las técnicas de paralelización de núcleos computacionales
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 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.
Traballos tutelados Actividad que permite a los alumnos estudiar en mayor profundidad una aplicación específica directamente relacionada con alguno de los contenidos de la materia. Se le asignará un trabajo tutelado a cada alumno. Una vez desarrollado tendrá que entregar un informe sobre el mismo.

Atención personalizada
Metodoloxías
Prácticas de laboratorio
Traballos tutelados
Descrición
La atención personalizada se desarrolla en la realización de las prácticas de laboratorio, así como en los trabajos tutelados, ya que es imprescindible para dirigir a los alumnos en el desarrollo del trabajo. Además, esta atención sirve para validar y evaluar el trabajo que va realizando cada alumno en distintas fases de su desarrollo hasta llegar a su finalización.

Por otro lado, se recomendará a los alumnos la asistencia a tutorías como método de ayuda.

Avaliación
Metodoloxías Descrición Cualificación
Prácticas de laboratorio Valoración de la aptitud y aprendizaje desarrollados en las actividades acometidas en las sesiones prácticas de la materia 40
Traballos tutelados Calidad del trabajo y del progreso del alumno durante su realización 60
 
Observacións avaliación

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