Datos Identificativos 2013/14
Asignatura (*) Programación Paralela Código 614473004
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
Prerrequisitos
Departamento Electrónica e Sistemas
Coordinador/a
Martin Santamaria, Maria Jose
Correo electrónico
maria.martin.santamaria@udc.es
Profesorado
Martin Santamaria, Maria Jose
Touriño Dominguez, Juan
Correo electrónico
maria.martin.santamaria@udc.es
juan.tourino@udc.es
Web http://http://gac.udc.es/master/
Descripción general Los objetivos globales de esta materia son: formar al alumno en los
diversos paradigmas de programación de computadores paralelos, incidir en técnicas
software para el diseño e implementación de algoritmos y aplicaciones paralelas
eficientes, y aplicar estas técnicas de forma práctica para la programación de
computadores paralelos con diferentes arquitecturas, utilizando recursos de
supercomputación disponibles en la Comunidad Autónoma de Galicia.
Una vez finalizada la materia, el alumno dispondrá de los conocimientos teóricos y
prácticos necesarios para abordar con rigor el diseño de algoritmos paralelos sobre
arquitecturas multiprocesador.

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.
A5 Conocer las arquitecturas emergentes en el campo de la supercomputación.
A6 Analizar, diseñar e implementar algoritmos y aplicaciones paralelas eficientes.
A12 Conocer las tendencias en supercomputación así como su utilización práctica en los sectores industrial, académico y público.
A13 Integrarse en la operativa diaria de un centro relacionado con la supercomputación.
B1 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.
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.
B10 Buscar y seleccionar la información útil necesaria para resolver problemas complejos, manejando con soltura las fuentes bibliográficas del campo.
B11 Mantener y extender planteamientos teóricos fundados para permitir la introducción y explotación de tecnologías nuevas y avanzadas.
B12 Trabajar en equipo.
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.
C3 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.
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.
C8 Valorar la importancia que tiene la investigación, la innovación y el desarrollo tecnológico en el avance socioeconómico y cultural de la sociedad.

Resultados de aprendizaje
Competencias de materia (Resultados de aprendizaje) Competencias de la titulación
AI1
AI2
AI5
AI6
AI12
AI13
BI1
BI4
BI6
BI9
BI10
BI11
BI12
CM1
CM2
CM3
CM6
CM7
CM8

Contenidos
Tema Subtema
Tema 1. Paradigmas de programación paralela
-Paradigma de memoria distribuida
-Paradigma de memoria compartida
-Paradigma data-parallel
-Paradigma PGAS
-Nuevos lenguajes de programación paralela (X10, chapel, Fortress)
Tema 2. Programación mediante directivas de memoria compartida: OpenMP -Introducción a la programación con OpenMP
-Directivas para la construcción de paralelismo
-Directivas de sincronización
-Biblioteca de rutinas OpenMP
-Variables de entorno
Tema 3. Programación mediante el paradigma de paso de mensajes: MPI -Características generales de MPI
-Comunicaciones punto a punto
-Comunicaciones colectivas
-Tipos de datos derivados
-Topologías virtuales y comunicadores
-Nuevas funcionalidades de MPI-2
-Programación híbrida: MPI + OpenMP

Planificación
Metodologías / pruebas Horas presenciales Horas no presenciales / trabajo autónomo Horas totales
Prácticas de laboratorio 20 42 62
Sesión magistral 24 60 84
 
Atención personalizada 4 0 4
 
(*)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
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 supercomputadores.
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 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.

Atención personalizada
Metodologías
Sesión magistral
Prácticas de laboratorio
Descripción
La atención personalizada en la realización de las prácticas de laboratorio se antoja imprescindible para dirigir los alumnos en el desarrollo del trabajo. Además, esta atención servirá para validar y evaluar el trabajo que va siendo realizado por los alumnos 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.

Evaluación
Metodologías Descripción Calificación
Prácticas de laboratorio Esta asignatura se evaluará en la primera oportunidad a través de la realización de prácticas de laboratorio y trabajos dirigidos utilizando los lenguajes de programación paralelos visto en teoría y sobre sistemas de supercomputación del Centro de Supercomputación de Galicia 100
 
Observaciones evaluación

En la segunda oportunidad la evaluación consistirá de una
prueba escrita sobre los contenidos teóricos y prácticos tratados durante el
curso.


Fuentes de información
Básica P. Pacheco (2011). An Introduction to Parallel Programming. Morgan Kaufmann
F. Almeida, D. Giménez, J.M. Manta, A.M. Vidal (2008). Introducción a la programación paralela. Paraninfo
W.P. Petersen, P. Arbenz (2004). Introduction to Paralell Computing. Oxford University Press
R. Chandra, L. Dagum, D. Kohr (2001). Parallel Programming in OpenMP . Morgan Kaufmann Publishers
P.S. Pacheco (1997). Parallel Programming with MPI. Morgan Kaufmann Publishers
W. Gropp (1999). Using MPI-2. The MIT Press
B. Chapman, G. Jost, R. Van der Pas (2008). Using OpenMP. The MIT Press

Complementária


Recomendaciones
Asignaturas que se recomienda haber cursado previamente

Asignaturas que se recomienda cursar simultáneamente

Asignaturas que continúan el temario

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