Introducción a la Programación Paralela y Distribuida (Curso 2023/2024)
Curso 2. Asignatura Segundo cuatrimestre. Obligatoria. 6 Créditos
Profesores
David de la Antonia López - Coordinador
| |
Luis Gómez-Lubén Zamorano
| |
Objetivos
La presente asignatura presenta los aspectos más importantes del desarrollo de aplicaciones basadas en el paradigma de la programación concurrente.
El desarrollo de esta asignatura persigue la consecución de los siguientes objetivos:
• Realizar aplicaciones concurrentes y multihebra.
• Conocer las principales técnicas de desarrollo de aplicaciones concurrentes.
• Conocer y manejar los principales elementos de comunicación y sincronización.
• Diseñar algoritmos que hagan un uso eficiente de recursos compartidos.Requisitos previos
Resulta fundamental haber cursado (previamente) las asignaturas Fundamentos de Programación y Computadores y Estructura de Datos y Algoritmos I y II u otras asignaturas de competencias y resultados de aprendizaje similares.Competencias
COMPETENCIAS BÁSICAS Y GENERALES:
CB2 - Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
CB3 - Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.
CB4 - Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado.
CB5 - Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.
CG2 - Capacidad de trabajar de forma autónoma y organizada en el desarrollo de soluciones sujetas a requisitos temporales o económicos estrictos.
CG3 - Capacidad para el desarrollo de proyectos vinculados a la ingeniería de forma individual, equipos interdisciplinares o en contextos multiculturales.
COMPETENCIAS TRANSVERSALES:
CT1 - Capacidad para aplicar con flexibilidad y creatividad los conocimientos adquiridos, así como ser capaz de adaptarlos a contextos y situaciones nuevas.
CT2 - Capacidad de redactar y confeccionar informes, escritos y otros documentos en el ámbito de la Ingeniería Matemática comunicándolos de manera clara y efectiva tanto por escrito como oralmente.
CT3 - Capacidad de generar nuevas ideas e incorporarlas en el trabajo diario.
COMPETENCIAS ESPECÍFICAS:
CE5 - Identificar las diferentes fases del proceso de modelización matemática, diferenciando la formulación, análisis, resolución e interpretación de resultados.
CE6 - Planificar la resolución de un problema de acuerdo a las herramientas disponibles, y a las restricciones de tiempo y recursos.
CE7 - Utilizar aplicaciones informáticas de análisis estadístico, cálculo numérico y simbólico, visualización gráfica, optimización u otras para resolver problemas.
CE8- Conocer y utilizar los programas que resuelvan problemas matemáticos y con aplicación en ingeniería, utilizando para cada caso el entorno computacional adecuado.
CE9- Planificar y desarrollar proyectos en el ámbito de la Ingeniería Matemática.Resultados de aprendizaje
- Ha adquirido los conocimientos elementales y la terminología adecuada que rodea al mundo de la programación paralela/concurrente/distribuida.
- Entiende la importancia del correcto diseño y el estudio teórico en la resolución de problemas mediante programas.
- Utiliza los módulos existentes en Python para diseñar e implementar soluciones a problemas concurrentes, paralelos y distribuidos.
- Comprende el uso potencial de la programación paralela en multitud de ámbitos reales: simulación, la computación científica, gráficos y visión por ordenador, entornos colaborativos, web, bigdata, ...Descripción de los contenidos
- Hebras.
- Condiciones de carrera.
- Exclusión mutua.
- Mecanismos de alto nivel.
- Mecanismos de bajo nivel.
- Modelado de sistemas concurrentes.
- Programación de recursos compartidos mediante objetos protegidos.
- Otras técnicas.Actividades formativas
AF1: Presentación de los conceptos relacionados con las asignaturas que componen cada materia y la resolución de casos que permitan al estudiante conocer cómo abordarlos, así como otras sesiones de tipo presencial en grupo como clases de discusión, puesta en común, etc.
AF2: Actividades prácticas de dificultad creciente que permitan al estudiante ir adquiriendo la capacidad de alcanzar autonomía en la resolución de problemas.
AF3: Estudio personal, elaboración de informes, realización de prácticas, etc. como trabajo independiente del estudiante o grupo de estudiantes.
AF4: Pruebas de evaluación.Cronograma
Pulse sobre este enlace para obtener el cronograma detallado en excel
messages.programa_asignatura.Sesión: Número de orden dentro de la asignatura. Actividad formativa: MG Clase Magistral, SM Seminario, LB Laboratorios, TL Taller, PC Práctica Clínica, EV Evaluación.
Sesión |
Actividad |
Descripción |
Evaluación |
MG | 1 | Capitulo 1: Procesos e hilos | |
MG | 2 | Capitulo 1: Procesos e hilos | |
LB | 3 | Practica 1: Programacion multihilo | |
LB | 4 | Practica 1: Programacion multihilo | |
MG | 5 | Capitulo 1: Procesos e hilos. | |
MG | 6 | Capitulo 1: Procesos e hilos. | |
NOPR | 7 | Practica 1: Programacion multihilo | |
EV | 8 | Practica 1: Programacion multihilo | 4% |
MG | 9 | Capitulo 2: Condiciones de carrera y Exclusion mutua. | |
MG | 10 | Capitulo 2: Condiciones de carrera y Exclusion mutua. | |
LB | 11 | Practica 2: Condiciones de carrera | |
LB | 12 | Practica 2: Condiciones de carrera | |
MG | 13 | Capitulo 2: Condiciones de carrera y Exclusion mutua. | |
MG | 14 | Capitulo 2: Condiciones de carrera y Exclusion mutua. | |
LB | 15 | Practica 2: Condiciones de carrera | |
EV | 16 | Practica 2: Condiciones de carrera | 4% |
EV | 17 | Prueba de seguimiento | 7.5% |
EV | 18 | Prueba de seguimiento | 7.5% |
MG | 19 | Capitulo 3: Concurrencia con memoria compartida. Semaforos | |
MG | 20 | Capitulo 3: Concurrencia con memoria compartida. Semaforos | |
LB | 21 | Practica 3: Semaforos | |
LB | 22 | Practica 3: Semaforos | |
MG | 23 | Capitulo 3: Concurrencia con memoria compartida. Semaforos | |
MG | 24 | Capitulo 3: Concurrencia con memoria compartida. Semaforos | |
LB | 25 | Practica 3: Semaforos | |
EV | 26 | Practica 3: Semaforos | 4% |
MG | 27 | Capitulo 4: Concurrencia con memoria compartida. Monitores. | |
MG | 28 | Capitulo 4: Concurrencia con memoria compartida. Monitores. | |
LB | 29 | Practica 4: Uso de monitores en Java | |
LB | 30 | Practica 4: Uso de monitores en Java | |
MG | 31 | Capitulo 4: Concurrencia con memoria compartida. Monitores. | |
MG | 32 | Capitulo 4: Concurrencia con memoria compartida. Monitores. | |
LB | 33 | Practica 4: Uso de monitores en Java | |
EV | 34 | Practica 4: Uso de monitores en Java | 4% |
EV | 35 | Prueba de seguimiento | 7.5% |
EV | 36 | Prueba de seguimiento | 7.5% |
MG | 37 | Capitulo 5: Concurrencia con memoria distribuida. Paso de mensajes | |
MG | 38 | Capitulo 5: Concurrencia con memoria distribuida. Paso de mensajes | |
LB | 39 | Practica 5: Paso de mensajes | |
LB | 40 | Practica 5: Paso de mensajes | |
MG | 41 | Capitulo 5: Concurrencia con memoria distribuida. Paso de mensajes | |
MG | 42 | Capitulo 5: Concurrencia con memoria distribuida. Paso de mensajes | |
LB | 43 | Practica 5: Paso de mensajes | |
LB | 44 | Practica 5: Paso de mensajes | |
MG | 45 | Capitulo 5: Concurrencia con memoria distribuida. Interbloqueo | |
MG | 46 | Capitulo 5: Concurrencia con memoria distribuida. Interbloqueo | |
LB | 47 | Practica 5: Paso de mensajes | |
EV | 48 | Practica 5: Paso de mensajes | 4% |
EV | 49 | Prueba de seguimiento | 12.5% |
EV | 50 | Prueba de seguimiento | 12.5% |
MG | 51 | Capitulo 6: Problemas clasicos de la programación concurrente | |
MG | 52 | Capitulo 6: Problemas clasicos de la programación concurrente | |
LB | 53 | Practica 6: Servidores concurrentes multihilo | |
LB | 54 | Practica 6: Servidores concurrentes multihilo | |
MG | 55 | Capitulo 6: Problemas clasicos de la programación concurrente | |
MG | 56 | Capitulo 6: Problemas clasicos de la programación concurrente | |
LB | 57 | Practica 6: Servidores concurrentes multihilo | |
EV | 58 | Practica 6: Servidores concurrentes multihilo | 4% |
EV | 59 | Prueba de seguimiento | 10.5% |
EV | 60 | Prueba de seguimiento | 10.5% |
Sistema y criterios de evaluación
El proceso de evaluación se realizará teniendo en cuenta las distintas competencias.
Para ello se utilizarán las siguientes actividades evaluadoras que permitirán obtener el
grado de asimilación de cada una de las competencias enumeradas:
• Evaluación de los informes de distintos casos prácticos propuestos para su resolución aplicando los conocimientos adquiridos en las distintas materias.
• Entrega de las prácticas y los informes del desarrollo de las mismas, así como su desempeño en el laboratorio durante la realización de las prácticas.
• Pruebas que vayan siguiendo el proceso formativo y vayan recogiendo las competencias que va adquiriendo el estudiante.
• Exámenes escritos que recojan el conjunto de actividades formativas realizadas en el aula.
Examen Ordinario
Los alumnos que tengan aprobados los exámenes previos sólo se presentarán al examen de la última parte de la asignatura.
Los alumnos que no hayan aprobado alguna de las partes tendrán que presentarse al examen final de la convocatoria ordinaria
Examen Extraordinario
En la convocatoria extraordinaria los alumnos deberán examinarse de todo el temario de la asignaturaBibliografía
Básica:
1.- Giancarlo Zaccone
Python Parallel Programming Cookbook: Packt Pub Ltd
ISBN: 1785289586