Paralelismo - Universitat Politècnica de Catalunya

Anuncio
Última modificación: 13-09-2016
270020 - PAR - Paralelismo
Unidad responsable:
270 - FIB - Facultad de Informática de Barcelona
Unidad que imparte:
701 - AC - Departamento de Arquitectura de Computadores
Curso:
2016
Titulación:
GRADO EN INGENIERÍA INFORMÁTICA (Plan 2010). (Unidad docente Obligatoria)
GRADO EN INGENIERÍA FÍSICA (Plan 2011). (Unidad docente Optativa)
Créditos ECTS:
6
Idiomas docencia:
Catalán, Castellano
Profesorado
Responsable:
- Eduard Ayguadé Parra (eduard@ac.upc.edu)
Otros:
-
Daniel Jimenez Gonzalez (djimenez@ac.upc.edu)
Gladys Miriam Utrera Iglesias (gutrera@ac.upc.edu)
Jordi Tubella Murgadas (jordit@ac.upc.edu)
Julian David Morillo Pozo (jmorillo@ac.upc.edu)
Lluc Álvarez Martí (lluca@ac.upc.edu)
Rosa Maria Badia Sala (rosab@ac.upc.edu)
Capacidades previas
Las capacidades previas son las definidas por los pre-requisitos de la asignatura.
Requisitos
- Pre-requisito AC
- Pre-requisito EDA
- Pre-requisito SO
Competencias de la titulación a las cuales contribuye la asignatura
Específicas:
CT1.1B. Interpretar, seleccionar y valorar conceptos, teorías, usos y desarrollos tecnológicos relacionados con la
informática y su aplicación a partir de los fundamentos matemáticos, estadísticos y físicos necesarios. CEFB2.
Capacidad para comprender y dominar los fundamentos físicos y tecnológicos de la informática: electromagnetismo,
ondas, teoría de circuitos, electrónica y fotónica y su aplicación para la resolución de problemas propios de la
ingeniería.
CT5.1. Escoger, combinar y explotar diferentes paradigmas de programación, en el momento de construir software,
atendiendo a criterios como la facilidad de desarrollo, la eficiencia, la portabilidad y la mantenibilidad.
CT5.3. Diseñar, escribir, probar, depurar, documentar y mantener código en un lenguaje de alto nivel para resolver
problemas de programación aplicando esquemas algorítmicos y usando estructuras de datos.
CT5.6. Demostrar conocimiento y capacidad de aplicación de los principios fundamentales y de las técnicas básicas de
la programación paralela, concurrente, distribuida y de tiempo real.
CT6.2. Demostrar conocimiento, comprensión y capacidad de evaluar la estructura y la arquitectura de los
computadores, así como los componentes básicos que los conforman.
CT7.2. Evaluar sistemas hardware/software en función de un criterio de calidad determinado.
CT8.1. Identificar tecnologías actuales y emergentes y evaluar si son aplicables, y en qué medida, para satisfacer las
necesidades de los usuarios.
Genéricas:
G3. TERCERA LENGUA: Conocer el idioma inglés con un nivel adecuado de forma oral y por escrito, y con
1/9
Universitat Politècnica de Catalunya
Última modificación: 13-09-2016
270020 - PAR - Paralelismo
consonancia con las necesidades que tendrán los graduados y graduadas en ingeniería informática. Capacidad de
trabajar en un grupo multidisciplinar y en un entorno multilingüe, y de comunicar, tanto por escrito como de forma
oral, conocimientos, procedimientos, resultados e ideas relacionadas con la profesión de ingeniero técnico en
informática.
Metodologías docentes
Las clases de teoría introducen todos los conocimientos, las técnicas, los conceptos necesarios que se ponen en práctica
en las horas dedicadas a problemas y de laboratorio, así como con trabajo personal utilizando una colección de
problemas.
Las dos horas de clases de teoría/problemas se hacen semanalmente. Las dos horas de clase de laboratorio también se
hacen semanalmente.
El curso utiliza el lenguaje de programación C y principalmente el modelo de programación paralela OpenMP.
Objetivos de aprendizaje de la asignatura
1.El alumno debe ser capaz de formular sencillos modelos de rendimiento dada una estrategia de paralelización para una
aplicación, que permitan estimar la influencia de los principales aspectos arquitectónicos: numero de elementos de
proceso, coste de acceso a los datos, coste de la interacción entre elementos de proceso, entre otros.
2.El alumno debe ser capaz de medir, empleando herramientas de instrumentación, visualización y análisis, el
rendimiento alcanzado con la ejecución paralela de una aplicación y detectar los factores que limitan dicho rendimiento:
granularidad de tareas, distribución equitativa de carga de trabajo, interacción entre tareas, entre otros.
3.El alumno debe ser capaz de compilar y ejecutar un programa paralelo, utilizando las herramientas básicas a nivel de
línea de comandos para medir el tiempo de ejecucion.
4.El alumno debe ser capaz de aplicar optimizaciones sencillas en fragmentos de código paralelo para mejorar su
rendimiento en arquitecturas paralelas, atacando los factores que limitan su rendimiento
5.El alumno debe ser capaz de escoger la estrategia de descomposión más apropriada para expresar el paralelismo en
una aplicación (tareas, datos).
6.El alumno debe ser capaz de aplicar las técnicas básicas que permiten sincronizar la ejecución paralela, evitando las
condiciones de carrera y abrazo mortal, y favoreciendo el solapamiento entre cálculo e interacción, entre otros.
7.El alumno debe ser capaz de implementar en OpenMP la versión paralela de una aplicación secuencial
8.El alumno debe ser capaz de identificar los diferentes tipos de paralelismo que se pueden explotar en una arquitectura
de computador (ILP, DLP y TLP dentro de un procesador, multiprocesador y multicomputador) y describir sus principios
básicos de funcionamiento.
9.El alumno debe ser capaz de clasificar los diferentes modelos de programación paralela y los rasgos característicos de
los diferentes paradigmas (memoria compartida vs. distribuida, esquemas de paralelización, ...).
10.El alumno debe ser capaz de seguir la asignatura utilizando los materiales proporcionados en ingles, así como realizar
los actos de evaluación (controles y examen final) con el enunciado escrito en ingles.
11.En caso de optar por la competencia transversal Tercera Lengua, el estudiante deberá ser capaz de elaborar los
entregables de las práctica (parcial o totalmente) en inglés.
2/9
Universitat Politècnica de Catalunya
Última modificación: 13-09-2016
270020 - PAR - Paralelismo
Horas totales de dedicación del estudiantado
Dedicación total: 150h
Grupo grande/Teoría:
30h
20.00%
Grupo mediano/Prácticas:
0h
0.00%
Grupo pequeño/Laboratorio:
30h
20.00%
Actividades dirigidas:
6h
4.00%
Aprendizaje autónomo:
84h
56.00%
3/9
Universitat Politècnica de Catalunya
Última modificación: 13-09-2016
270020 - PAR - Paralelismo
Contenidos
Introducción y motivación
Competencias de la titulación a las que contribuye el contenido:
Descripción:
Necessitat del paral.lelisme, paral.lelisme vs. concurrència, possibles problemes en l'us concurrència: deadlock,
lifelock, starvation, fairness, data races
Análisis de aplicaciones paralelas
Competencias de la titulación a las que contribuye el contenido:
Descripción:
Llei d'Amdahl, speedup i escalabilitat, overheads i cost de les comunicacions, granularitat. Eines per la predicció i
l'anàlisi de paral.lelisme i visualització de comportament: Paraver i Tareador
Introducción a las arquitecturas paralelas
Competencias de la titulación a las que contribuye el contenido:
Descripción:
Paral.lelisme dins d'un processador (ILP, DLP i TLP), multiprocessadors de memòria compartida SMP i ccNUMA
(coherència de cache, consistència de memòria, sincronització) i multiprocessadors de memòria distribuïda (xarxa
d'interconnexió, cost de la comunicació).
Principios de programación paralela: descomposición en tareas
Competencias de la titulación a las que contribuye el contenido:
Descripción:
Task decomposition vs. data decomposition. Descomposcio en tasques, granularitat i anàlisi de dependències.
Identificació de patrons de paral.lelisme: iterative vs. divide and conquer task decompositions. Mecanismes per
implementar la descomposició en tasques: creació i sincronització (barrier synchronization, point-to-point
synchronization, dataflow tasks) de tasques i exclusió en l'accés a dades compartides (mutual exclusion, locks).
Principios de programación paralela: descomposición de datos
Competencias de la titulación a las que contribuye el contenido:
Descripción:
Descomposició de dades (descomposició geomètrica vs. estructures recursives) per arquitectures amb memoria
compartida. Generació de codi en funció de la descomposició de dades. Mecanismes de d'assignació de memòria i
comunicació (point-to-point vs. collective, synchronous vs. asyncronous) per arquitectures amb memòria
distribuïda. Cas concret: MPI.
4/9
Universitat Politècnica de Catalunya
Última modificación: 13-09-2016
270020 - PAR - Paralelismo
Programación con memoria compartida: OpenMP
Competencias de la titulación a las que contribuye el contenido:
Descripción:
Regions paral.leles, threads i tasques. Task/thread barriers. Exclusió mútua i locks. Distribuïdors de feina: bucles.
Revisión de problemas de controles
Competencias de la titulación a las que contribuye el contenido:
Descripción:
En aquestes sessions es resoldran dubtes que els estudiants puguin tenir en els problemes dels controls
5/9
Universitat Politècnica de Catalunya
Última modificación: 13-09-2016
270020 - PAR - Paralelismo
Planificación de actividades
Asimilación de los temas introductorios
Dedicación: 16h
Grupo grande/Teoría: 6h
Grupo mediano/Prácticas: 0h
Grupo pequeño/Laboratorio: 4h
Actividades dirigidas: 0h
Aprendizaje autónomo: 6h
Descripción:
Participar activamente en las sesiones de teoría/problemas. Estudiar los contenidos de los temas 1 y 3 y realizar
los ejercicios propuestos.
Objetivos específicos:
8, 9, 10
Asimilación de los conceptos y herramientas Dedicación: 18h
Grupo grande/Teoría: 6h
para modelar y analizar el comportamiento
Grupo mediano/Prácticas: 0h
de aplicaciones paralelas
Grupo pequeño/Laboratorio: 4h
Actividades dirigidas: 0h
Aprendizaje autónomo: 8h
Descripción:
Participar activamente en las sesiones de teoría / problemas. Estudiar los contenidos del tema 2 y realizar los
ejercicios propuestos. Resolución de los ejercicios propuestos en las sesiones de laboratorio y extracción de
conclusiones.
Objetivos específicos:
1, 2, 3, 10
Dedicación: 10h
Actividades dirigidas: 2h
Aprendizaje autónomo: 8h
Control temas 1, 2 y 3
Objetivos específicos:
1, 8, 9
Dedicación: 40h
Grupo grande/Teoría: 0h
Grupo mediano/Prácticas: 0h
Grupo pequeño/Laboratorio: 20h
Actividades dirigidas: 0h
Aprendizaje autónomo: 20h
Uso de OpenMP para la expresión de
paralelismo en memoria compartida
Descripción:
Participar activamente en las sesiones de teoría/problemas. Estudiar los contenidos del tema 6 y preparar la
realización de los ejercicios propuestos para las sesiones de laboratorio. Resolución de los ejercicios propuestos
en las sesiones de laboratorio y extracción de conclusiones.
6/9
Universitat Politècnica de Catalunya
Última modificación: 13-09-2016
270020 - PAR - Paralelismo
Objetivos específicos:
4, 7, 10, 11
Dedicación: 18h
Grupo grande/Teoría: 8h
Grupo mediano/Prácticas: 0h
Grupo pequeño/Laboratorio: 0h
Actividades dirigidas: 0h
Aprendizaje autónomo: 10h
Asimilación de los principios de
descomposición en tareas
Descripción:
Participar activamente en las sesiones de teoría/problemas. Estudiar los contenidos del tema 4 y realizar los
ejercicios propuestos. Aplicar los nuevos conocimientos para la resolución de los ejercicios de laboratorio del tema
6.
Objetivos específicos:
5, 6, 10
Dedicación: 14h
Grupo grande/Teoría: 6h
Grupo mediano/Prácticas: 0h
Grupo pequeño/Laboratorio: 0h
Actividades dirigidas: 0h
Aprendizaje autónomo: 8h
Asimilación de los principios de
descomposición de datos
Descripción:
Participar activamente en las sesiones de teoría/problemas. Estudiar los contenidos del tema 5 y realizar los
ejercicios propuestos. Usar OpenMP para expresar descomposiciones de datos para arquitecturas con memoria
compartida.
Objetivos específicos:
5, 6, 10
Dedicación: 7h
Grupo grande/Teoría: 0h
Grupo mediano/Prácticas: 0h
Grupo pequeño/Laboratorio: 0h
Actividades dirigidas: 3h
Aprendizaje autónomo: 4h
Revisión de problemas de controles
Descripción:
Participar activamente en las sesiones de problemas.
Objetivos específicos:
9, 10
7/9
Universitat Politècnica de Catalunya
Última modificación: 13-09-2016
270020 - PAR - Paralelismo
Dedicación: 10h
Actividades dirigidas: 2h
Aprendizaje autónomo: 8h
Control temas 4-6
Objetivos específicos:
4, 5, 6, 7, 10
Dedicación: 15h
Actividades dirigidas: 3h
Aprendizaje autónomo: 12h
Examen final
Objetivos específicos:
4, 5, 6, 7, 8, 9, 10
8/9
Universitat Politècnica de Catalunya
Última modificación: 13-09-2016
270020 - PAR - Paralelismo
Sistema de calificación
La nota de la asignatura se calcula a partir de 2 notas:
- Nota de contenidos teóricos (peso 70%)
- Nota de laboratorio (peso 30%)
La nota de laboratorio (Lab) se obtiene principalmente a partir de las notas de los entregables, modulada por el
rendimiento durante las sesiones de prácticas y una posible entrevista a final de curso por parte del profesor de
laboratorio.
Durante el curso se realizan 2 controles C1 i C2 con pesos 30% y 70%, respectivamente. La nota de evaluación continua
(AC) se calcula como la media aritmética ponderada de los 2 controles.
AC = 0.3*C1 + 0.7*C2
Si AC>=5 entonces la nota final (NF) del alumno será:
NF = 0.3*Lab + 0.7*AC
El alumno que no supere la evaluación continua (AC<5) tendrá que hacer el examen final (EF). También deberá hacer el
examen final aquel alumno que no obtenga una calificación NF>=5. En ámbos casos, la nota final será:
NF = 0.3*Lab + 0.7*max(EF, 0.25*AC + 0.75*EF)
Si algún alumno que haya aprobado la asignatura por evaluación continua (AC>=5) quiere hacer el examen final, tendrá
que avisar al coordinador de la asignatura por e-mail al menos con una semana de antelación a la fecha del examen. En
este caso, la nota final se calculará utilizando la misma expresión que en el caso anterior.
La competencia transversal de tercera lengua se evaluará a partir de los informes asociados a las prácticas de laboratorio.
Estos informes deberán escribirse en inglés y podrán requerir la lectura de algún documento prévio (también en inglés)
sobre el contenido de la práctica. Se evaluará tanto la estructura del documento escrito como la capacidad de transmitir
los resultados y las conclusiones de la práctica (siguiendo un documento de rúbricas disponible). La nota de la
competencia podrá ser A, B, C, D o NA donde:
- A indica que la competencia se ha superado con un nivel de excelencia
- B indica que la competencia se ha superado con el nivel deseado
- C indica que la competencia se ha superado con un nivel suficiente
- D indica que la competencia no se ha superado
- NA indica que la competencia no se ha evaluado
Bibliografía
Básica:
Mattson, T.G.; Sanders, B.A.; Massingill, B.L. Patterns for parallel programming. Addison Wesley, 2005. ISBN
9780321228116.
OpenMP application program interface: version 4.0 [en línea]. OpenMP, 2013Disponible a: <http://www.openmp.org/mpdocuments/OpenMP4.0.0.pdf>.
Grama, A.; Karypis, G.; Kumar, V.; Gupta, A. Introduction to parallel computing. 2nd ed. Addison-Wesley, 2003. ISBN
0201648652.
9/9
Universitat Politècnica de Catalunya
Descargar