Datos Identificativos 2019/20
Asignatura (*) Concurrencia y Paralelismo Código 614G01018
Titulación
Grao en Enxeñaría Informática
Descriptores Ciclo Periodo Curso Tipo Créditos
Grado 2º cuatrimestre
Segundo Obligatoria 6
Idioma
Castellano
Gallego
Inglés
Modalidad docente Presencial
Prerrequisitos
Departamento Ciencias da Computación e Tecnoloxías da Información
Computación
Enxeñaría de Computadores
Coordinador/a
Paris Fernandez, Javier
Correo electrónico
javier.paris@udc.es
Profesorado
Barreira Rodriguez, Noelia
Darriba López, Diego
De Moura Ramos, Jose Joaquim
Fraguela Rodriguez, Basilio Bernardo
González Domínguez, Jorge
Martín Rodilla, Patricia
Paris Fernandez, Javier
Quintela Carreira, Juan Jose
Rey Expósito, Roberto
Sanchez Penas, Juan Jose
Touriño Dominguez, Juan
Correo electrónico
noelia.barreira@udc.es
diego.darriba@udc.es
joaquim.demoura@udc.es
basilio.fraguela@udc.es
jorge.gonzalezd@udc.es
patricia.martin.rodilla@udc.es
javier.paris@udc.es
juan.quintela.carreira@udc.es
roberto.rey.exposito@udc.es
juan.jose.sanchez.penas@udc.es
juan.tourino@udc.es
Web http://moodle.udc.es
Descripción general

Competencias del título
Código Competencias del título
A12 Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.
A20 Conocimiento y aplicación de los principios fundamentales y técnicas básicas de la programación paralela, concurrente, distribuida y de tiempo real.
B3 Capacidad de análisis y síntesis
C4 Desarrollarse para el ejercicio de una ciudadanía abierta, culta, crítica, comprometida, democrática y solidaria, capaz de analizar la realidad, diagnosticar problemas, formular e implantar soluciones basadas en el conocimiento y orientadas al bien común.
C6 Valorar críticamente el conocimiento, la tecnología y la información disponible para resolver los problemas con los que deben enfrentarse.
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
Resultados de aprendizaje Competencias del título
Coñecemento e aplicación dos procedementos algorítmicos básicos das tecnoloxías informáticas para deseñar solucións a problemas, analizando a idoneidade e a complexidade dos algoritmos propostos dende o punto de vista da concorrencia e o paralelismo. A12
B3
C4
Coñecemento e aplicación dos principios fundamentais e técnicas básicas da programación paralela, concorrente, distribuída e de tempo real. A20
C6
C8

Contenidos
Tema Subtema
T1. Principios de programación concurrente 1.1 Conceptos.
1.1.1 Arquitecturas hardware
1.1.2 Sistemas operativos
1,1.3 Procesos e Threads
1.2 Programación Multiproceso (fork/join)
1.3 Programación Multithread
1.4 Sección crítica.
1.5 Exclusión mutua
1.6 Instruccións atómicas
1.7 Sincronización mediante condicións
1.8 Semáforos
1.8.1 Mutex
1.8.2 Semáforos
1.9 Interbloqueo. Prevención, evitación, recuperación.
1.10 Inanición.
1.11 Comunicación e sincronización
1.12 Escalabilidade
T2. Algoritmos concorrentes 2.1 Productores/consumidores.
2.2 Lectores/escritores
2.3 Filósofos ceando
2.4 Compartición nula
T3. Principios de programación paralela 3.1 Conceptos
3.1.1 Niveis de paralelismo
3.1.2 Dependencias de datos
3.2 Modelo de paso de mensaxes
3.2.1 Conceptos básicos
3.2.2 Comunicación punto a punto
3.2.3 Operacións colectivas
3.3 Análise de algoritmos paralelos
3.3.1 Medidas de prestacións de algoritmos paralelos
3.4 Metodoloxía da programación paralela
3.4.1Descomposición en tarefas
3.4.2 Asignación de tarefas
3.4.3 Técnicas de optimización
3.5 Esquemas algorítmicos paralelos
3.5.1 Single Process Multiple Data
3.5.2 Paradigma Master/slave
T4. Deseño de algoritmos e aplicacións paralelas 4.1 Bibliotecas de paso de mensaxes
4.2 Casos de estudo
4.3 Evaluación de rendemento
4.4 Aplicación de técnicas de optimización

Planificación
Metodologías / pruebas Competéncias Horas presenciales Horas no presenciales / trabajo autónomo Horas totales
Sesión magistral A12 A20 C4 C6 C8 25 40 65
Prueba mixta A12 A20 B3 C4 C6 3 0 3
Prácticas de laboratorio A12 A20 B3 C8 16 24 40
Solución de problemas B3 C6 10 20 30
Seminario A12 A20 B3 C4 C6 C8 5 6 11
 
Atención personalizada 1 0 1
 
(*)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 co uso de medios audiovisuais e a introdución de algunhas preguntas dirixidas aos estudantes, coa finalidade de transmitir coñecementos e facilitar a aprendizaxe.
Prueba mixta Exame da materia que combinará preguntas sobre a teoría con problemas a resolver.
Prácticas de laboratorio Metodoloxía que permite que os estudantes aprendan efectivamente a través da realización de actividades de carácter práctico, tales como desenvolvemento de exercicios de programación.
Solución de problemas Resolución de problemáticas concretas xurdidas nas prácticas de laboratorio a teor dos coñecementos que se traballaron, os cales poden plantexar múltiples solucións.
Seminario Presentación en grupo dun tema para o seu estudo intensivo, buscándose a discusión, e a participación dos asistentes ao seminario.

Atención personalizada
Metodologías
Prácticas de laboratorio
Seminario
Solución de problemas
Descripción
Nas práticas de laboratorio, seminarios e na resolución de problemas os estudantes poderán presentar cuestións, dúbidas, etc. O profesor/a, atendendo a estas solicitudes, repasará conceptos, resolverá novos problemas ou utilizará calquera actividade que considere axeitada para resolver as cuestións plantexadas.

Evaluación
Metodologías Competéncias Descripción Calificación
Prácticas de laboratorio A12 A20 B3 C8 Realización de varios exercicios prácticos de concorrencia (bloque de prácticas de concorrencia) e unha serie de exercicios prácticos de paralelismo (bloque de prácticas de paralelismo). Cada bloque de prácticas representa a metade da nota máxima de prácticas de laboratorio.

Inda que a realización das prácticas pode ser por parellas a súa avaliación é individual.

É condición necesaria (pero non suficiente) para aprobar a asignatura obter como mínimo o 50% da puntuación máxima de cada un dos dous bloques de prácticas de laboratorio.

En caso de NON SUPERAR calquera bloque de prácticas non será posible superar a materia en xuño. En caso de que o alumno se presente ao exame de maio a súa calificación en actas será SUSPENSO. Se non se presenta a súa calificación será NON PRESENTADO.
30
Prueba mixta A12 A20 B3 C4 C6 Proba sobre os contidos presentados na docencia expositiva e desenvolvidos nas sesións de laboratorio e nas titorías grupais. Estará dividida en dous bloques: concorrencia (temas 1 e 2) e paralelismo (temas 3 e 4), sendo cada bloque a metade da nota máxima da proba mixta.

É condición necesaria (pero non suficiente) para aprobar obter como mínimo o 40% da puntuación máxima da proba mixta.
70
 
Observaciones evaluación

É condición necesaria (pero non suficiente) para aprobar obter unha
cualificación global, aplicando as ponderacións da proba obxectiva e das
prácticas de laboratorio, igual ou superior ao 50%. En caso de obter
unha cualificación global igual ou superior ao 50% pero non cumplir con
algunha das condicións necesarias a cualificación final será un Suspenso (4.5).

O mecanismo de recuperación que se habilita é exclusivamente a repetición da proba mixta (70% da cualificación global da asignatura), requeríndose de novo obter como mínimo o 40% da puntuación máxima da proba
mixta.

A cualificación de prácticas de laboratorio (30% da cualificación global da asignatura) obtida na convocatoria ordinaria consérvase para a recuperación. Non é posible recuperar/mellorar para xullo a nota de prácticas de laboratorio xa que é unha nota obtida en avaliación continua. A evaluación das prácticas de laboratorio farase obligatoriamente no grupo asignado a cada alumno.

Non se fará ningunha consideración especial cara aos alumnos con matrícula a tempo parcial.


Fuentes de información
Básica Doug Lea (2000). Concurrent programming in Java design, principles and patterns . Reading, Massachusetts: Addison Wesley
Francisco Almeida [et al.] (2008). Introducción a la Programación Paralela. Madrid: Paraninfo Cengage Learning
Peter S. Pacheco (1997). Parallel Programming with MPI. San Francisco, California : Morgan Kauffman
Joe Armstrong (2007). Programming Erlang: Software for a Concurrent World. United States: Pragmatic Programmers

Complementária Wilkinson, B. y Allen, M.. (1999). Parallel Programming. Techniques and Applications Using Networked Workstations and Parallel Computers. . Upper Saddle River, New Jersey : Prentice Hall,


Recomendaciones
Asignaturas que se recomienda haber cursado previamente
Programación II/614G01006
Algoritmos/614G01011
Estructura de Computadores/614G01012
Paradigmas de Programación/614G01014
Diseño Software/614G01015

Asignaturas que se recomienda cursar simultáneamente
Sistemas Operativos/614G01016
Redes/614G01017
Proceso Software/614G01019

Asignaturas que continúan el temario
Internet y Sistemas Distribuidos/614G01023

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