Estudia
- Artes y humanidades
- Ciencias
- Ciencias de la salud
- Ciencias sociales y jurídicas
-
Ingeniería y arquitectura
- Doble Grado en Ingeniería Civil e Ingeniería de los Recursos Mineros y Energéticos
- Doble Grado en Ingeniería en Tecnologías y Servicios de Telecomunicación / Grado en Ciencia e Ingeniería de Datos
- Doble Grado en Ingeniería Informática del Software / Grado en Matemáticas
- Doble Grado en Ingeniería Informática en Tecnologías de la Información / Grado en Ciencia e Ingeniería de Datos
- Grado en Ciencia e Ingeniería de Datos
- Grado en Ingeniería Civil
- Grado en Ingeniería de los Recursos Mineros y Energéticos
- Grado en Ingeniería de Organización Industrial
- Grado en Ingeniería de Tecnologías Industriales
- Grado en Ingeniería de Tecnologías Mineras
- Grado en Ingeniería Eléctrica
- Grado en Ingeniería Electrónica Industrial y Automática
- Grado en Ingeniería en Geomática
- Grado en Ingeniería en Tecnologías y Servicios de Telecomunicación
- Grado en Ingeniería Forestal y del Medio Natural
- Grado en Ingeniería Forestal y del Medio Natural (En extinción)
- Grado en Ingeniería Informática del Software
- Grado en Ingeniería Informática en Tecnologías de la Información
- Grado en Ingeniería Mecánica
- Grado en Ingeniería Química
- Grado en Ingeniería Química Industrial
- Grado en Marina
- Grado en Náutica y Transporte Marítimo
- Información, acceso y becas
Programación Concurrente y Paralela
- Prácticas de Aula/Semina (7 Hours)
- Tutorías Grupales (2 Hours)
- Prácticas de Laboratorio (28 Hours)
- Clases Expositivas (21 Hours)
La asignatura Programación Concurrente y Paralela (PCP), asignatura adscrita al Departamento de Informática que se imparte en el primer semestre del tercer curso, forma parte de la materia de Programación, del Módulo de Software de Aplicación, junto con otras seis asignaturas: Fundamentos de Informática, Introducción a la Programación, Metodología de la Programación, Estructuras de Datos, Algoritmia y Tecnologías y Paradigmas de Programación. Dentro de la Programación, PCP cubre los principios básicos en el diseño y el análisis de los programas concurrentes y paralelos (ECR14.1).
La Programación Concurrente y Paralela (PCP) ha sido reconocida como eje prioritario tanto en los distintos programas marco de la Comunidad Europea como en los programas/directrices del Estado Español. Sus aplicaciones son numerosas y pueden encontrarse prácticamente en cualquier campo de las ciencias, la ingeniería y la industria.
Esta asignatura proporciona al alumnado una visión general e introductoria, pero profunda y actualizada, de todos los factores que intervienen en la obtención de soluciones Concurrentes y Paralelas correctas y eficientes. La asignatura comienza revisando los conceptos y problemas básicos inherentes a la concurrencia para, a continuación, introducir la computación paralela y sus modelos de programación.
Es recomendable que el alumnado haya cursado las asignaturas referentes a la materia Programación (especialmente la asignatura Algoritmia), así como disponer de conocimientos de hardware de ordenadores (asignaturas Fundamentos de Computadores y Redes y Arquitectura de Computadores) y sistemas operativos (asignatura Sistemas Operativos). Parte de la bibliografía está en inglés, por lo que es recomendable que el alumnado sea capaz de leer y comprender textos escritos en dicha lengua.
Competencias generales | |
GTR1 | Capacidad para resolver problemas dentro de su área de estudio. |
GTR2 | Capacidad de abstracción: capacidad para crear y utilizar modelos que reflejen situaciones reales. |
GTR3 | Capacidad de actuar autónomamente. |
GTR4 | Capacidad de planificación y organización personal. |
GTR6 | Capacidad de comunicación efectiva (en expresión y comprensión) oral y escrita, con especial énfasis en la redacción de documentación técnica. |
GTR7 | Poseer las habilidades de aprendizaje necesarias para emprender estudios posteriores o mejorar su formación con un cierto grado de autonomía |
GTR8 | Tener motivación por la calidad y la mejora continua y actuar con rigor en el desarrollo profesional. |
Competencias específicas | |
ECR14.1 | Conocimiento y aplicación de los principios fundamentales y técnicas básicas de la programación paralela y concurrente |
Resultados de aprendizaje | |
PR75 – PR78 | Conocer e Implementar el paradigma de programación paralela basado en memoria distribuida y de paso de mensaje, basados en memoria compartida y heterogéneos/ híbridos. |
PR79 | Seleccionar el paradigma de programación paralela adecuado un problema dado |
PR80 | Evaluar la ganancia de un solución paralela frente a la equivalente mono-procesador |
PR81 | Desarrollar una solución paralela que cumpla con una especificación dada |
PR82 – PR83 | Comprender el concepto de hilo de ejecución y conocer sus modelos de programación |
PR84 | Seleccionar el modelo de programación con hilos adecuado a una especificación de problema dada |
PR85 – PR88 | Conocer los mecanismos de sincronización entre hilos. Conocer y prevenir sus problemas. Aplicar los mecanismos de sincronización adecuados a un problema dado. |
PR89 | Desarrollar una solución eficiente y eficaz multi-hilo a una especificación de problema dado |
PR90 | Evaluar la ganancia de una solución multi-hilo frente a la versión equivalente mono-hilo |
Introducción
Presentación y Estado del Arte.
Modelos de Rendimiento y Análisis de Algoritmos Paralelos
Tiempo de ejecución, eficiencia, speed-up, coste, escalabilidad, etc.
Diseño de Algoritmos Paralelos
Descomposición, asignación, balanceo, solapamiento, particionado, etc. Algoritmos relajados, pipeline, maestro-esclavo, granja de procesos y replicados, etc.
Entornos Concurrentes y Paralelos
Concurrencia: conceptos básicos, modelos y mecanismos de sincronización. Paralelismo: modelos de programación. Aceleradoras y soluciones híbrido-heterogéneas.
La asignatura requiere un total 150 horas de trabajo presencial y no presencial del alumnado, de tal forma que:
- Actividades Presenciales. Consisten en la asistencia a clases expositivas, a las prácticas de laboratorio y a las tutorías grupales. En las clases expositivas se alternará la exposición de contenidos teóricos de la asignatura con la realización de ejercicios sobre los mismos. Las prácticas de laboratorio serán individuales al objeto de garantizar la adquisición de las habilidades prácticas básicas por parte del alumnado. Las tutorías grupales se dedicarán a la puesta en común de las dudas y dificultades que se hayan presentado durante el curso.
- Actividades No Presenciales. Consisten en el estudio de la materia teórica y la realización de los ejercicios/trabajos propuestos.
Las actividades formativas y su distribución en horas son:
MODALIDADES | Horas | % | Totales | |
Presencial | Clases expositivas | 19 | 12.66 | 60 |
Práctica de aula / seminarios / talleres | 7 | 4.66 | ||
Prácticas de laboratorio / campo / aula de informática / aula de idiomas | 28 | 18.66 | ||
Prácticas clínicas hospitalarias | ||||
Tutorías grupales | 2 | 1.33 | ||
Prácticas externas | ||||
Sesiones de evaluación | 4 | 2.66 | ||
No presencial | Trabajos en grupo | 15 | 10.00 | 90 |
Trabajo individual | 75 | 50.00 | ||
Total | 150 |
El desglose del trabajo por temas es:
PRESENCIAL | NO PRESENCIAL | |||||||||||
Temas | Horas totales | Clase Expositiva | Prácticas de aula | Prácticas de aula de informática | Prácticas clínicas | Tutorías grupales | Prácticas Externas | Sesiones de Evaluación | Total | Trabajo grupo | Trabajo autónomo | Total |
Tema 1 | 2 | 1 | 1 | 1 | 1 | |||||||
Tema 2 | 34 | 4 | 3 | 4 | 1 | 1 | 13 | 17 | 17 | |||
Tema 3 | 57 | 10 | 3 | 14 | 1 | 2 | 30 | 32 | 32 | |||
Tema 4 | 57 | 4 | 2 | 10 | 1 | 17 | 30 | 10 | 40 | |||
Total | 150 | 19 | 8 | 28 | 2 | 4 | 60 | 30 | 60 | 90 |
Evaluación en convocatoria ordinaria
La evaluación consta de dos partes, teoría y práctica, con los siguientes pesos:
- Teoría: 50%
- Práctica: 50%
Para superar la convocatoria ordinaria la calificación final debe ser superior o igual a 5 (sobre 10).
La evaluación de la parte práctica se corresponde con el modelo de evaluación continua. El alumnado debe realizar los trabajos, individuales o en grupo, que se le encomienden durante el desarrollo del curso.
La evaluación de la parte teórica se realiza en base a la calificación obtenida en dos pruebas escritas, de peso en la nota proporcional a la cantidad de materia que abarquen.
Las actividades evaluables no realizadas contabilizarán en el cómputo de la nota correspondiente como cero. Si el peso total de las actividades no realizadas supone más del 50% de la nota total la calificación final será “no presentado”.
Evaluación en convocatoria extraordinaria
La evaluación constará de una prueba teórica y de otra práctica, con los siguientes porcentajes sobre la nota final:
- Examen extraordinario de teoría: 50%
- Examen extraordinario de prácticas: 50%
Para superar la convocatoria la calificación final debe ser superior o igual a 5 (sobre 10).
Evaluación Diferenciada
Se aplican los mismos criterios que en la evaluación en convocatorias extraordinarias.
Bibliografía Básica
- Almeida F.; Giménez D.; Mantas J.M.; Vidal A.M. Introducción a la programación paralela. Paraninfo.
- Chandra R.; Dagum L.; Kohr D.; Maydan D.; McDonald J.; Menon R. Parallel Programming in OpenMP. Morgan Kaufmann.
- Grama A.; Gupta A.; Karypis G.; Kumar V. Introduction to Parallel Computing. Addison-Wesley.
- Pachecho, P.S. Parallel programming with MPI. Morgan Kaufmann.
- Quinn M.J. Parallel Programming in C with MPI and OpenMP. McGraw Hill.
- Wilkinson B.; Allen Michael. Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. Prentice-Hall.
Bibliografía Complementaria
- Andrews. Foundations of Multithreaded, Parallel, and Distributed Programming. Addison-Wesley.
- Bertsekas D.P.; Tsitsiklis J.N. Parallel and Distributed Computation. Prentice Hall.
- Chapman B.; Jost .; Pas van der R., Kuck D.J. Using OpenMP: Portable Shared Memory Parallel Programming. The MIT Press.
- Dongarra J.; Foster I.; Fox G.; Gropp W.; Kennedy K.; Torczon L.; White A. (Eds.). Sourcebook of Parallel Computing. Morgan Kaufmann Publishers.
- El-Ghazawi T.; Carlson W.; Sterling T.; Yelick K. UPC: Distributed Shared Memory Programming. John Wiley Sons.
- Foster I. Designing and Building Parallel Programs. Addison-Wesley.
- Gropp W. Lusk E.; Skjellum A. Using MPI: Portable Parallel Programming with the Message-Passing Interface. . The MIT Press.
- Kumar V.; Grama A.; Gupta A.; Karypis G. Introduction to Parallel Computing. Design and Analysis of Algorithms. The Benjamin Cumming Publishing Company.
- Lastovetsky, Alexey L.: Parallel Computing on Heterogeneous Networks. Wiley, 2003
- Lester B.P. The art of Parallel Programming. Prentice Hall.
- Nickolls J.; Buck I.; Garland M.; Skadron K. Scalable parallel programming with CUDA. Queue.
- Parhami, B. Introduction to Parallel Processing. Kluwer Academic Publishers.
- Roosta S.H. Parallel Processing and Parallel Algorithms. Springer.
- Sanders J.; Kandrot E. CUDA by Example: An Introduction to General-Purpose GPU Programming. Pearson.
Documentación complementaria
Además de esta guía docente, el equipo docente proporcionará material adicional a través del entorno de enseñanza virtual de la asignatura:
https://www.innova.uniovi.es/innova/campusvirtual/campusvirtual.php