Crèdits
6
Tipus
Complementària d'especialitat (Enginyeria de Computadors)
Requisits
- Prerequisit: PAR
Departament
AC
Professorat
Responsable
- Eduard Ayguadé Parra ( eduard@ac.upc.edu )
Hores setmanals
Teoria
1
Problemes
1
Laboratori
2
Aprenentatge dirigit
0
Aprenentatge autònom
6
Competències
Actitud adequada davant el treball
- G8.3 - Estar motivat pel desenvolupament professional, per a afrontar nous reptes i per la millora contínua. Tenir capacitat de treball en situacions de falta d'informació.
Especialitat enginyeria de computadors
- CEC2.1 - Analitzar, avaluar, seleccionar i configurar plataformes hardware per al desenvolupament i l'execució d'aplicacions i serveis informàtics.
- CEC2.2 - Programar considerant l'arquitectura hardware, tant en assemblador com en alt nivell.
Competències tècniques comunes
- CT8.7 - Controlar versions i configuracions del projecte.
Objectius
-
Capacitat d'escriure i entendre programes paral·lels usant la interfície de baix nivell Pthreads.
Competències relacionades: CEC2.2, -
Capacitat d'implementar les funcionalitats bàsiques en una llibreria que doni suport a l'execució paral·lela d'aplicacions en arquitectures de memoria compartida.
Competències relacionades: CT8.7, CEC2.2, G8.3, -
Capacitat d'entendre els components bàsics que formen una arquitectura multiprocessador, aixi com fer-ne un disseny sobre paper que obeeixi a determinats criteris de disseny.
Competències relacionades: CEC2.1, G8.3, -
Capacitat d'escriure aplicacions senzilles usant el model de programació MPI, avaluar-ne el rendiment, i detectar les parts crítiques que limiten l'escalabilitat.
Competències relacionades: CEC2.2, G8.3, -
Capacitat d'avaluar la qualitat d'una solució proposada a un problema específic
Competències relacionades: G8.3, -
Capacitat de complertar o ampliar els coneixements adquirits de forma autònoma i realitzar un treball específic tot i que l'enunciat sigui incomplert, o manqui informació rellevant per la seva implementació
Competències relacionades: G8.3,
Continguts
-
MPI: programació paral·lela per arquitectures de memòria distribuïda
En aquest tema aprendrem a programar aplicacions paral·leles usant MPI, un model de programació basat en pas de missatges per arquitectures clúster de memòria distribuïda. -
Programació paral·lela amb Pthreads
Introducció a les funcionalitats bàsiques que ofereix la llaberia de suport de baix nivell Pthreads -
Implementació d'un model de programació de memòria compartida: threads i sincronització, repartiment de treball i model de tasques
En aquest tema aprendrem com dissenyar i implementar una llibreria que doni suport a l'execució de programes paral·lels en OpenMP, en concret els mecanismes relacionats amb la gestió de threads i sincronització, el repartiment del treball en els OpenMP "worksharing constructs" i el model d'execució basat en tasques -
Components i disseny d'una arquitectura clúster
En aquest tema es presentaran els components principals que formen una arquitectura clúster i farem un disseny en base a un compromís de potencia de càlcul, consum d'energia i cost.
Activitats
Activitat Acte avaluatiu
Teoria
3h
Problemes
3h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h
Metodologia docent
Les classes de teoria introdueixen tots els coneixements, les tècniques, i els conceptes necessaris, usant exemples de codi reals o pseudo-codi. Les classes de teoria es complementen amb les classes de problemes, on es plantejaran i resoldran problemes exercicis pràctics. Al laboratori es posen en pràctica els continguts teòrics, i es fa una avaluació de comportament i rendiment de los solucions proposades.L'assignatura contempla que part dels continguts teórics, o dels enunciats de laboratori, els haurà de desenvolupar l'estudiant de forma autònoma.
El curs está principalment centrat en les arquitectures clúster, utilitzant el llenguatge de programació C, la llibreria Pthreads i els models de programació OpenMP i MPI.
Mètode d'avaluació
La nota de l'assignatura es calcula a partir de 3 notes:- nota de continguts teòrics;
- nota de laboratori;
- nota d'autonomia i motivació.
La nota de continguts teòrics (T) s'obté a partir de les notes d'un control (50%) i de l'examen final (50%). Aquestes proves podran substituir-se per la realització, lliurament i discussió d'un mínim del 70% dels problemes demanats durant les classes de teoria.
La nota de laboratori (L) s'obté a partir de les notes dels lliuraments i el seguiment de les sessions de pràctiques per part del professor.
La nota d'autonomia i motivació (A) avalua la capacitat de l'alumne per enfrontar-se a situacions de manca d'informació i la motivació d'anar més enllà del que es demana o per explorar temes addicionals. S'obté a partir del treball fet per l'alumne en: 1) aquelles pràctiques de laboratori on es requereixi cercar informació addicional i/o realitzar parts optatives/lliures; i 2) en el disseny d'un clúster HPC sobre paper.
La nota final es calcula F = T * 0.4 + L * 0.4 + A * 0.2.
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
Complementari
-
Unit 1: POSIX Threads (Pthreads) programming
- Ayguadé, Eduard,
Departament d'Arquitectura de Computadors,
2021.
-
Unit 2: Build (on paper) your own cluster architecture
- Ayguadé, Eduard,
Departament d'Arquitectura de Computadors,
2021.
-
Unit 3: MPI (Message Passing Interface)
- Ayguadé, Eduard,
Departament d'Arquitectura de Computadors,
2021.
-
Laboratory assignments: Lab 1 - OpenMP parallelisation of Eratosthenes Sieve
- Ayguadé, Eduard,
Departament d'Arquitecture de Computadors,
2023.
-
Laboratory assignments: Lab2 - Implementing a minimal OpenMP runtime
- Ayguadé, Eduard,
Departament d'Arquitectura de Computadors,
2021.
-
Laboratory assignments: Lab 3 - Performance characteritzation of HPC clusters
- Ayguadé, Eduard ; Àlvarez, Lluc,
Departament d'Arquitectura de Computadors,
2023.
-
Laboratory assignments: Lab 4 - Heat equation using MPI
- Ayguadé, Eduard ; Àlvarez, Lluc,
Departament d'Arquitectura de Computadors,
2023.
Web links
- Message Passing Interface (MPI) https://computing.llnl.gov/tutorials/mpi/
- POSIX Threads Programming https://computing.llnl.gov/tutorials/pthreads/
- OpenMP complete specifications and examples https://www.openmp.org/specifications/