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 Periodo Curso Tipo Créditos
Máster Oficial 1º cuatrimestre
Primero Obligatoria 6
Idioma
Castellano
Gallego
Prerrequisitos
Departamento Electrónica e Sistemas
Coordinador/a
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
Descripción general
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 del título
Código Competencias de la titulación
A1 Analizar y mejorar el rendimiento de una arquitectura o un software dado.
A2 Definir, evaluar y seleccionar la arquitectura y el software más adecuado para la resolución de un problema.
A6 Analizar, diseñar e implementar algoritmos y aplicaciones paralelas eficientes.
B2 Integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios.
B3 Comunicar conclusiones (y los conocimientos y razones últimas que las sustentan) a públicos especializados y no especializados de un modo claro y sin ambigüedades.
B4 Aplicar habilidades de aprendizaje que les permitan continuar estudiando de un modo que deberá de ser en gran medida autodirigido o autónomo.
B6 Capacidad de análisis y síntesis.
B9 Usar las nuevas tecnologías.
B12 Trabajar en equipo.
B13 Exponer, defender y discutir propuestas.
C1 Expresarse correctamente, tanto de forma oral como escrita, en las lenguas oficiales de la comunidad autónoma.
C2 Dominar la expresión y la comprensión de forma oral y escrita de un idioma extranjero.
C6 Valorar críticamente el conocimiento, la tecnología y la información disponible para resolver los problemas con los que deben enfrentarse.
C7 Asumir como profesional y ciudadano la importancia del aprendizaje a lo largo de la vida.

Resultados de aprendizaje
Competencias de materia (Resultados de aprendizaje) Competencias de la 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 el 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 autónomo BI4
CM2
CM7

Contenidos
Tema Subtema
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/particionamento 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. Acoplamento 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
Metodologías / pruebas Horas presenciales Horas no presenciales / trabajo autónomo Horas totales
Sesión magistral 22 44 66
Prácticas de laboratorio 27 27 54
Trabajos tutelados 3 21 24
 
Atención personalizada 6 0 6
 
(*)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
Sesión magistral Exposición oral complementada con el uso de medios audiovisuales y la introducción de fases de debate con los estudiantes. Todo eso con la finalidad de transmitir conocimientos y facilitar el aprendizaje. Se realizarán sesiones magistrales sobre gran parte de los contenidos del temario, normalmente cómo 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.
Trabajos 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 la cada alumno. Una vez desarrollado tendrá que entregar un informe sobre lo mismo.

Atención personalizada
Metodologías
Prácticas de laboratorio
Trabajos tutelados
Descripción
La atención personalizada se desarrolla en la realización de las prácticas de laboratorio, así como nos 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 avaliar 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 a asistencia a tutorías como método de ayuda.

Evaluación
Metodologías Descripción Calificació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
Trabajos tutelados Calidad del trabajo y del progreso del alumno durante su realización 60
 
Observaciones evaluación

Todas las actividades de evaluación recogidas en esta guía conforman el proceso de evaluación continua de la asignatura. Ni las clases ni ninguna actividad de evaluación requieren presencialidad del alumno. Esto,unido al hecho de que todos los materiales de la asignatura están disponibles en la plataforma web de educación del título, favorece el trabajo y la evaluación de los alumnos matriculados a tiempo parcial.

La entrega de actividades de evaluación (sean prácticas o trabajos tutelados) copiadas dará lugar a uno suspenso automático.


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

Complementária M.J. Quinn (2003). Parallel Programing in C with MPI and OpenMP. McGraw-Hill


Recomendaciones
Asignaturas que se recomienda haber cursado previamente
Arquitectura e Tecnoloxía de Computadores/614473001
Programación Paralela/614473004

Asignaturas que se recomienda cursar simultáneamente
Programación Paralela/614473004

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

Otros comentarios


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