Professorat
Responsable
- Daniel Jimenez Gonzalez ( djimenez@ac.upc.edu )
Altres
- Eduard Ayguadé Parra ( eduard@ac.upc.edu )
- Gladys Miriam Utrera Iglesias ( gutrera@ac.upc.edu )
- Jesus Jose Labarta Mancho ( jesus.labarta@ac.upc.edu )
- Josep Ramon Herrero Zaragoza ( josepr@ac.upc.edu )
- Mario Cesar Acosta Cobos ( mario.cesar.acosta@upc.edu )
- Pablo Vizcaino Serrano ( pablo.vizcaino@upc.edu )
- Pau Ferrer Cid ( pau.ferrer.cid@upc.edu )
- Rosa Maria Badia Sala ( rosab@ac.upc.edu )
Hores setmanals
Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0.4
Aprenentatge autònom
5.6
Competències
Competències tècniques comunes
- CT1.1B - Demostrar coneixement i comprensió dels conceptes fonamentals de la programació i de l'estructura bàsica d'un computador. CEFB5. Coneixement de l'estructura, funcionament i interconnexió dels sistemes informàtics, i dels fonaments de la seva programació.
- CT5.1 - Triar, combinar i explotar diferents paradigmes de programació, en el moment de construir software, tenint en compte criteris com la facilitat de desenvolupament, l'eficiència, la portabilitat i la mantenibilitat.
- CT5.3 - Dissenyar, escriure, provar, depurar, documentar i mantenir codi en un llenguatge d'alt nivell per a resoldre problemes de programació aplicant esquemes algorísmics i utilitzant estructures de dades.
- CT5.6 - Demostrar coneixement i capacitat d'aplicació dels principis fonamentals i de les tècniques bàsiques de la programació paral·lela, concurrent, distribuïda i en temps real.
- CT6.2 - Demostrar coneixement, comprensió i capacitat d'avaluar l'estructura i l'arquitectura dels computadors, i els components bàsics que els componen.
- CT7.2 - Avaluar sistemes hardware/software en funció d'un criteri de qualitat determinat.
- CT8.1 - Identificar tecnologies actuals i emergents i avaluar si són aplicables, i en quina mesura, per a satisfer les necessitats dels usuaris.
Tercera llengua
- G3.2 - Estudiar amb materials escrits en anglès. Redactar un informe o un treball de tipus tècnic en anglès. Participar en una reunió tècnica en anglès.
Objectius
-
Capacitat de formular models senzills de rendiment donada una estratègia de paral.lelització per una aplicació, que permetin estimar la influència dels principals aspectes arquitectònics: numero d'elements de proces, cost d'accés a les dades, cost de la interacció entre elements de procés, entre d'altres.
Competències relacionades: CT7.2, -
Capacitat de mesurar, emprant eines de instrumentació, visualització i anàlisi, el rendiment assolit amb l'execució paral.lela d'una aplicació i detectar els factors que limiten aquest rendiment: granularitat de tasques, distribució equitativa de càrrega de treball, interacció entre tasques, entre d'altres.
Competències relacionades: CT7.2, -
Capacitat de compilar i executar un programa paral.lel, utilitzant les eines bàsiques a nivell de línia de comandes per mesurar el temps d'execució.
Competències relacionades: CT7.2, CT5.3, -
Capacitat d'aplicar optimitzacions senzilles en fragments de codi paral.lel per tal de millorar el seu rendiment en arquitectures paral.leles, atacant els factors que limiten el seu rendiment.
Competències relacionades: CT7.2, CT6.2, -
Capacitat d'escollir l'estratègia de descomposió mes apropiada per expressar el paral.lelisme en una aplicació (tasques, dades).
Competències relacionades: CT5.1, -
Capacitat d'aplicar les tècniques bàsiques que permeten sincronitzar l'execució paral.lela, evitant les condicions de carrera i abraçada mortal, i afavorint el solapament entre càlcul i interacció, entre d'altres.
Competències relacionades: CT5.1, -
Capacitat d'implementar en OpenMP la versió paral.lela d'una aplicació seqüencial.
Competències relacionades: CT5.3, CT5.6, -
Capacitat d'identificar els diferents tipus de paral.lelisme que es poden explotar en una arquitectura de computador (ILP, DLP i TLP dins d'un processador, multiprocessador i multicomputador) i descriure els seus principis bàsics de funcionament.
Competències relacionades: CT8.1, CT6.2, CT1.1B, -
Capacitat d'entendre els mecanismes bàsics que permeten la compartició coherent de dades en una arquitectura paral·lela de memoria compartida, amb accés uniforme i no uniforme a memòria.
Competències relacionades: CT8.1, CT6.2, CT1.1B, -
Capacitat de seguir l'assignatura emprant els materials proporcionats en anglès (transparències, enunciats de pràctiques, problemes, ...) aixì com realitzar els actes d'avaluació (controls i exàmen final) amb l'enunciat escrit en anglès.
Competències relacionades: G3.2, -
En cas d'optar per la competència transversal Tercera Llengua, capacitat d'elaborar els entregables de les pràctiques de laboratori (parcial o totalment) en anglès.
Competències relacionades: G3.2,
Continguts
-
Introducció i motivació
Necessitat del paral.lelisme, paral.lelisme vs. concurrència, possibles problemes en l'us concurrència: deadlock, lifelock, starvation, fairness, data races -
Anàlisi d'aplicacions paral.leles
Mètriques bàsiques: paral·lelisme, temps d'execució, speedup i escalabilitat. Análisi de l'impacte dels overheads associats a la creació de tasques i la seva sincronització i la compartició de dades. Eines per la predicció i l'anàlisi de paral.lelisme i visualització de comportament: Paraver i Tareador -
Programació amb memòria compartida: OpenMP
Regions paral.leles, threads i tasques. Mecanismes de sincronització entre tasques i threads. Distribució de feina estàtica/dinàmica, granularitat. -
Introducció a les arquitectures paral.leles
Paral.lelisme dins d'un processador (ILP, DLP i TLP) i entre els processadors que formen els multiprocessadors de memòria compartida SMP i ccNUMA (coherència de cache, consistència de memòria, sincronització). -
Principis de programació paralela: descomposició en tasques
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ó de regions paral·leles i tasques; mecanismes per garantir task ordering i data sharing. -
Principis de programació paralela: descomposició de dades
Descomposició de dades (descomposició geomètrica vs. estructures recursives) per arquitectures amb memoria compartida. Localitat en l'accés a les dades en arquitectures paral·leles de memòria compartida. Generació de codi en funció de la descomposició de dades. Breu introducció a les arquitectures de memòria distribuïda i la seva programació (cas concret: MPI).
Activitats
Activitat Acte avaluatiu
Assimilació del conceptes fonamentals i eines per modelar i analitzar el comportament d'aplicacions paral.leles
Participar activament en les sessions de teoria/problemes. Estudiar els continguts del temes 1 i 2 i realitzar els exercicis proposats. Resolució de les pràctiques proposades en les sessions de laboratori i extracció de conclusions dels resultats obtinguts.Objectius: 1 3 2 10
Continguts:
Teoria
6h
Problemes
0h
Laboratori
6h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h
Ús d'OpenMP per l'expressio de paral.lelisme en memòria compartida
Participar activament en les sessions de laboratori. Fer els treballs/lectures prèvies proposades, resoldre els exercicis durant les sessions de laboratori, analitzar resultats, extreure conclusions dels experiments i elaboració dels lliuraments corresponents.Objectius: 4 7 10 11
Continguts:
Teoria
1h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h
Assimilació dels aspectes fonamentals en les arquitectures paral.leles
Participar activament en les sessions de teoria/problemes. Estudiar els continguts del tema 5 i realitzar els exercicis proposats.Objectius: 8 10
Continguts:
Teoria
6h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h
Assimilació dels principis de descomposicio en tasques
Participar activament en les sessions de teoria/problemes. Estudiar els continguts del tema 4 i realitzar els exercicis proposats. Aplicar els nous coneixements per la resolució de les pràctiques de laboratori associades.Objectius: 5 6 10
Continguts:
Teoria
6h
Problemes
0h
Laboratori
10h
Aprenentatge dirigit
0h
Aprenentatge autònom
20h
Sessió extra de dubtes per l'examen parcial
L'estudiant podrà fer la petició dels problemes que vulgui repassar per avançat, però també podrà realitzar peticions durant la sessió.Objectius: 8 9 1 3 2 4 10
Continguts:
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
2h
Aprenentatge autònom
0h
Sessió formativa: repàs de les solucions dels problemes de l'examen parcial i retroacció general dels errors trobats.
Amb aquesta sessió formativa l'estudiantat podrà acabar d'assimilar conceptes de la primera meitat del quadrimestre.- Aprenentatge dirigit: Realització d'una sessió de repàs amb les solucions de les preguntes del control parcial. Aquesta sessió extra de resolució de problemes ha d'ajudar a donar una retroacció general del control parcial a tots els alumnes que vulguin venir a la sessió.
Continguts:
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
2h
Aprenentatge autònom
0h
Assimilació dels principis de descomposió de dades
Participar activament en les sessions de teoria/problemes. Estudiar els continguts del tema 6 i realitzar els exercicis proposats. Aplicar els nous coneixements per la resolució de les pràctiques de laboratori associades.Objectius: 5 6 10
Continguts:
Teoria
6h
Problemes
0h
Laboratori
10h
Aprenentatge dirigit
0h
Aprenentatge autònom
14h
Sessió extra de dubtes per l'examen final
L'estudiant podrà fer la petició dels problemes que vulgui repassar per avançat, però també podrà realitzar peticions durant la sessió.Objectius: 8 9 1 3 2 4 5 6 7 10
Continguts:
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
2h
Aprenentatge autònom
0h
Examen final (Teoria i Laboratori)
La part de laboratori estarà diferenciada de la part de teoria i serà una prova escrita sobre paper, relacionada amb el que l'estudiantat ha treballat durant el curs.Objectius: 8 9 1 3 2 4 5 6 7 10
Setmana: 15 (Fora d'horari lectiu)
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
Metodologia docent
Les classes de teoria introdueixen tots els coneixements, les tècniques, els conceptes necessaris que es posen en pràctica en les hores dedicades a problemes i de laboratori, així com amb treball personal utilitzant una col·lecció de problemes. Les dues hores de classes de teoria/problemes es fan setmanalment. Les dues hores de classes de laboratori també es fan setmanalment, i es valorarà la participació activa i rendiment durant les sessions de laboratori (treball en la pràctica, avançant en la mesura de lo possible per tal d'assolir els objectius de cada sessió). El curs utilitza el llenguatge de programació C i el model de programació paral·lela OpenMP.Mètode d'avaluació
La nota de l'assignatura (NF) es calcula a partir dels components següents (tots avaluats sobre 10):- P: nota de l'examen parcial (inclou temes 1 a 3)
- FP1: nota de l'examen final de la part de teoria (temes 1 a 3)
- FP2: nota de l'examen final de la part de teoria (temes 4 i 5)
- FL: nota de l'examen final de la part de laboratori. L'examen final de laboratori serà un examen escrit (sobre paper) que es realitzarà el mateix dia que l'examen final.
Addicionalment, s'avaluaran de forma continua:
- SL: informes de seguiment del laboratori que també servirà per avaluar la competència transversal de la tercera llengua. IMPORTANT: La realització i presentació de tots els informes de seguiment del laboratori és condició necessària per superar l'assignatura. Només es considera informe elaborat i presentat aquell informe amb un mínim de contingut. Informes buits o amb només les preguntes, per exemple, no es consideren realitzats ni presentats.
- AA: nota de les activitats online via Atenea realitzades dins del període establert
aplicant la ponderació indicada a continuació:
NL, nota laboratori:
Si (FL>4)
NL = MAX(SL,FL)
si no
NL = 0.35*SL+0.65*FL
N, nota de l'assignatura sense tenir en compte els qüestionaris Atenea:
Si P<5,0
N = 0,65*(0.5*FP1 + 0.5*FP2) + 0.35*NL
si no
N = 0,65*(0.5*max(P,FP1)+0,5*FP2) + 0.35*NL
NF: nota final de l'assignatura incorporant el factor Atenea de seguiment, si escau.
Si N>=5,0 i FP2>=5,0 llavors NF = MIN(10, N * (1 + AA/100)); si no NF=N.
La competència en llengua estrangera s'avaluarà a partir dels informes lliurats per als treballs de laboratori. Aquests informes han d'estar escrits en anglès i requeriran la lectura de la descripció de l'assignació del laboratori (també en anglès) i les especificacions d'OpenMP. Tant l'estructura del document escrit com la capacitat de transmetre els resultats i les conclusions del treball s'utilitzaran per avaluar la competència. La qualificació de la competència serà A (excel·lent), B (bo), C (satisfactori), D (suspens) o NA (No avaluat).
Bibliografia
Bàsic
-
Introduction to parallel computing
- Grama, A.; Karypis, G.; Kumar, V.; Gupta, A,
Pearson Education,
2003.
ISBN: 0201648652
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003524559706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
OpenMP application programming interface: version 5.0
- ,
OpenMP,
2018.
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991000991069706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementari
-
Parallelism - Unit 1: Why Parallel Computing
- Ayguade, E.; Ramon Herrero, J.R.; Jimenez, D.; Utrera, G,
Departament d'Arquitectura de Computadors,
2022.
-
Parallelism - Unit 2: Understanding Parallelism
- Ayguade, E.; Ramon Herrero, J.R.; Jimenez, D.; Utrera, G,
Departament d'Arquitectura de Computadors,
2022.
-
Parallelism - Unit 3: Introduction to parallel architectures
- Ayguade, E.; Ramon Herrero, J.R.; Jimenez, D.; Utrera, G,
Departament d'Arquitectura de Computadors,
2022.
-
Parallelism - Unit 4: Mastering your task decomposition strategies: going some steps further
- Ayguade, E.; Ramon Herrero, J.R.; Jimenez, D.; Utrera, G,
Departament d'Arquitectura de Computadors,
2022.
-
Parallelism - Unit 5: Data-aware task decomposition strategies
- Ayguade, E.; Ramon Herrero, J.R.; Jimenez, D.; Utrera, G,
Departament d'Arquitectura de Computadors,
2022.
-
Parallelism: Collection of Exercises
- Ayguade, E.; Ramon Herrero, J.R.; Jimenez, D.; Utrera, G,
Departament d'Arquitectura de Computadors,
2022.
-
Parallelism: Selection of Exams (with Solutions)
- Ayguade, E.; Ramon Herrero, J.R.; Jimenez, D.; Utrera, G,
Departament d'Arquitectura de Computadors,
2022.
-
Parallelism Laboratory Assignments
- Ayguadé, E... [et al.],
Departament d'Arquitectura de Computadors,
2022.
-
Computer architecture: a quantitative approach
- Hennessy, J.L.; Patterson, D.A,
Elsevier, Morgan Kaufmann,
2019.
ISBN: 9780128119051
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004117509706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Parallel computer architecture: a hardware/software approach
- Culler, D.E.; Singh, J.P.; Gupta, A,
Morgan Kaufmann Publishers,
1999.
ISBN: 9781558603431
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001862689706711&context=L&vid=34CSUC_UPC:VU1&lang=ca