Pla docent de l'assignatura

 

 

Català English Tanca imatge de maquetació

 

Imprimeix

 

Dades generals

 

Nom de l'assignatura: Programació Paral·lela

Codi de l'assignatura: 365827

Curs acadèmic: 2021-2022

Coordinació: Jerónimo Hernández González

Departament: Departament de Matemàtiques i Informàtica

crèdits: 6

Programa únic: S

 

 

Hores estimades de dedicació

Hores totals 150

 

Activitats presencials i/o no presencials

60

 

-  Teoricopràctica

Presencial

 

30

 

-  Pràctiques de laboratori

Presencial

 

30

Treball tutelat/dirigit

65

Aprenentatge autònom

25

 

 

Recomanacions

 

Es recomana tenir coneixements de programació amb fils.

 

 

Competències que es desenvolupen

 

   -

9aG-GENERAL. Capacitat per resoldre problemes amb iniciativa, prendre decisions, ser autònom i creatiu.

   -

7T-TRANSV. Capacitat de treballar en equip.

   -

8G-GENERAL. Coneixement de les matèries bàsiques i tecnologies, que capacitin per a l'aprenentatge i desenvolupament de tecnologies i mètodes nous, com també de les que proporcionin una gran versatilitat per adaptar-se a situacions noves.

   -

9T-TRANSV. Capacitat de dissenyar i dur a terme testos i experiments, i analitzar-ne i interpretar-ne els resultats.

   -

9bG-GENERAL. Capacitat per comunicar i transmetre els coneixements, habilitats i destreses de la professió d'enginyer tècnic en informàtica.

   -

8T-TRANSV. Capacitat creativa i emprenedora.

   -

4G-GENERAL. Capacitat per definir, avaluar i seleccionar plataformes de maquinari i programari per desenvolupar i executar sistemes, serveis i aplicacions informàtiques d'acord amb els coneixements adquirits durant els estudis del grau.

   -

2G-GENERAL. Capacitat per dirigir les activitats objecte dels projectes de l'àmbit de la informàtica d'acord amb els coneixements adquirits en el grau.

   -

1ESP - TECNOLOGIA ESPECÍFICA: COMPUTACIÓ. Capacitat per tenir un coneixement profund dels principis fonamentals i models de la computació, i saber-los aplicar per interpretar, seleccionar, valorar, modelar i crear nous conceptes, teories, usos i desenvolupaments tecnològics relacionats amb la informàtica.

   -

7ESP - TECNOLOGIA ESPECÍFICA: COMPUTACIÓ. Capacitat per conèixer i desenvolupar tècniques d'aprenentatge computacional, i dissenyar i implementar aplicacions i sistemes que les utilitzin, incloses les dedicades a l'extracció automàtica d'informació i coneixement a partir de grans volums de dades.

   -

14FC - FORMACIÓ COMUNA. Coneixement i aplicació dels principis fonamentals i tècniques bàsiques de la programació paral·lela, concurrent, distribuïda i de temps real.

   -

En la mesura que sigui possible, s¿incorporara¿ la perspectiva de ge¿nere en el desenvolupament de l¿assignatura.

 

 

Objectius d'aprenentatge

 

Referits a coneixements

— Conèixer els conceptes teòrics bàsics del paral·lelisme computacional i la seva relació amb la indústria.

— Saber fer servir les directives d’OpenMP per paral·lelitzar un codi escrit en llenguatge C.

— Saber implementar codi en llenguatge CUDA, conèixer les eines disponibles i entendre els casos d’ús.

— Conèixer les tecnologies de processament de dades massives Hadoop/Spark i saber implementar codi per a les seves APIs.

— Ser capaç de cercar, entendre i seleccionar les diferents tecnologies que apareixen, relacionades amb la concurrència i la gestió de dades i/o càlculs massius i concurrents.

 

Referits a habilitats, destreses

— Saber identificar les parts d’un programa que poden ser paral·lelitzades.

— Ser capaç de triar la llibreria adequada per implementar un algorisme paral·lel.

 

 

Blocs temàtics

 

1. Introducció al paral·lelisme

1.1. Què és el paral·lelisme?

1.2. Dependències de dades

1.3. Tipus i nivells de paral·lelisme

2. Paral·lelisme en sistemes de memòria compartida: OpenMP

2.1. Paral·lelisme de dades

2.2. Paral·lelisme de tasques

3. Paral·lelisme amb GPUs: CUDA

3.1. Descripció general del hardware (GPU), software (llenguatge), i usos

3.2. CUDA: model de programació, jerarquia de memòries i model d’execució

3.3. CUDA: asincronisme entre la CPU i la GPU, streams i events

3.4. CUDA: multithreading i CUDA

3.5. CUDA: patrons

4. Paral·lelisme en sistemes de processament de dades massives

4.1. Descripció general del hardware (clúster), software (llenguatge), i usos

4.2. Hadoop: com funciona i com es programa

4.3. Spark: com funciona i com es programa

 

 

Metodologia i activitats formatives

 

Per culpa de l’emergència sanitària causada per la COVID-19, la docència podrà ser completament presencial, o semipresencial.

 

* En el cas de classes completament presencials:

Hi haurà dos tipus de sessions, teoricopràctiques i de laboratori. 

— A les sessions teoricopràctiques (2 h/setmana) s’introdueixen els conceptes teòrics i es proposen petits problemes relacionats. Es planteja una metodologia participativa tant en l’explicació de conceptes com en la resolució de problemes. Hi haurà sessions en què la feina feta serà objecte d’avaluació.

— A les sessions de laboratori (2 h/setmana) es duran a terme un seguit de pràctiques que permetran aplicar els conceptes adquirits a teoria. 

 

* En el cas de classes semipresencials:

L’alumnat seguirà les classes una setmana de manera presencial i una setmana en línia via "streaming".

— Les sessions teoricopràctiques només experimentaran canvis rellevants si s’han d’adaptar les classes a les persones en remot i per facilitar-los la participació.

— Les sessions de laboratori es reorganitzaran per adaptar-se als dos ritmes. Els grups de pràctiques hauran d’estar formats per persones del mateix torn de presencialitat.

 

*  Si la capacitat de l’aula ho permet, els alumnes que vulguin poden seguir tota l’activitat de forma presencial.

* Es promourà un aprenentatge centrat en l’alumnat, inclusiu i no discriminatori en totes les seves dimensions (de gènere, ètnic, orientació sexual, etc.).

 

 

Avaluació acreditativa dels aprenentatges

 

Aquesta assignatura s’avaluarà des de dos punts de vista: el teoricopràctic (teoria) i el pràctic (laboratoris).

Teoria (TE): al llarg del semestre, l’estudiant ha de fer diverses proves escrites sobre coneixements. La nota d’aquesta part (TE) és la mitjana ponderada d’aquestes proves. Es requereix obtenir una nota mínima de 3,5/10 a cadascuna de les proves, per separat.

Laboratoris (LA): al llarg del curs, l’estudiant ha de lliurar diverses pràctiques en les dates assenyalades pel professorat. S’hi inclou una presentació oral d’un tema relacionat amb el paral·lelisme, triat lliurement per l’estudiant. La nota d’aquesta part (LA) serà la mitjana ponderada d’aquestes pràctiques. Es requereix obtenir una nota mínima de 3,5/10 a cadascuna de les pràctiques, per separat.

La nota final s’obté d’aplicar la fórmula següent: NF = 40 % * TE + 60 % * LA, amb la condició necessària que: LA >= 4,0 i TE >= 4,0. 

L’assignatura es considera aprovada si NF >= 5,0. Si NF < 5,0, TE < 4,0 o LA < 4,0, l’estudiant ha de presentar-se a la reavaluació, que consisteix en: una prova de coneixements teoricopràctics (si TE < 4,0), o una pràctica addicional definida pel professorat (si LA < 4,0).

Depenent de la situació d’emergència sanitària, les activitats avaluables poden passar a fer-se de manera virtual.

 

Avaluació única

Per fer l’avaluació única, l’estudiant ha de presentar en els terminis establerts les pràctiques (LP) requerides en l’avaluació continuada, i ha de fer una prova de coneixements teoricopràctics (EX).

La nota final s’obté d’aplicar la fórmula següent: NF = 40 % * TE + 60 % * LA, amb la condició necessària que: LA >= 4,0 i TE >= 4,0. 

L’assignatura es considera aprovada si NF >= 5,0. L’estudiant podrà acollir-se a la reavaluació en els mateixos termes que qui hagi triat l’avaluació continuada sempre que s’hagi presentat a la prova de coneixements teoricopràctics (i TE > 1).

Depenent de la situació d’emergència sanitària, les activitats avaluables poden passar a fer-se de manera virtual.

Qualsevol intent de frau comporta l’aplicació de la normativa acadèmica general de la Universitat de Barcelona i l’inici d’un procés disciplinari.

 

 

Fonts d'informació bàsica

Consulteu la disponibilitat a CERCABIB

Llibre

David B. Kirk, Wen-mei W. Hwu. Programming Massively Parallel Processors: A Hands-on Approach. Morgan Kaufmann

https://cercabib.ub.edu/discovery/search?vid=34CSUC_UB:VU1&search_scope=MyInst_and_CI&query=any,contains,b2115654*  Enllaç

Chapman, Barbara. Using OpenMP : portable shared memory parallel programming. Cambridge, Mass. : MIT Press, 2008.

https://cercabib.ub.edu/discovery/search?vid=34CSUC_UB:VU1&search_scope=MyInst_and_CI&query=any,contains,b2115731*  Enllaç

B. Chambers and M. Zaharia. Spark : the definitive guide : big data processing made simple. O’Rreilly 2018.

https://cercabib.ub.edu/discovery/search?vid=34CSUC_UB:VU1&search_scope=MyInst_and_CI&query=any,contains,b2237479*  Enllaç

Benedict, Gaster [et al.]. Heterogeneous computing with OpenCL. Waltham, MA : Morgan Kaufmann, 2013

https://cercabib.ub.edu/discovery/search?vid=34CSUC_UB:VU1&search_scope=MyInst_and_CI&query=any,contains,b2116542*  Enllaç

White, T. Hadoop : the definitive guide. Sebastopol, Calif. : O’Reilly, 2012.

https://cercabib.ub.edu/discovery/search?vid=34CSUC_UB:VU1&search_scope=MyInst_and_CI&query=any,contains,b2092302*  Enllaç