Computació d'Altes Prestacions

Esteu aquí

Crèdits
6
Tipus
Obligatòria
Requisits
Aquesta assignatura no té requisits, però té capacitats prèvies
Departament
AC
Mail
,
L'objectiu d'aquesta assignatura és conèixer el funcionament i aplicacions de sistemes de computació d'alt rendiment, per tal de desplegar aplicacions d'intel·ligència artificial que requereixen gran quantitat de recursos, optimització de processos i aplicació d'acceleradors, i aprofitament i orquestració de recursos al núvol. En aquest curs es veuran conceptes de virtualització i containerització, així com sistemes de fitxers distribuïts i sistemes de computació distribuïda. També es veurà escalabilitat en algoritmes d'aprenentatge automàtic i intel·ligència artificial, usant tecnologies de l'estat de l'art, tant per middleware com per acceleradors. Es treballarà amb llenguatges C, Python i Scala.

Professorat

Responsable

  • Jordi Torres Viñals ( )
  • Josep Lluís Berral García ( )

Hores setmanals

Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0
Aprenentatge autònom
6

Competències

Competències Transversals

Transversals

  • CT2 - Sostenibilitat i Compromís Social. Conèixer i comprendre la complexitat dels fenòmens econòmics i socials típics de la societat del benestar; tenir capacitat per relacionar el benestar amb la globalització i la sostenibilitat; obtenir habilitats per utilitzar de forma equilibrada i compatible la tècnica, la tecnologia, l'economia i la sostenibilitat.
  • CT3 - Comunicació eficaç oral i escrita. Comunicar-se de forma oral i escrita amb altres persones sobre els resultats de l'aprenentatge, de l'elaboració del pensament i de la presa de decisions; participar en debats sobre temes de la pròpia especialitat.
  • CT6 [Avaluable] - Aprenentatge autònom. Detectar deficiències en el propi coneixement i superar-les mitjançant la reflexió crítica i l'elecció de la millor actuació per ampliar aquest coneixement.

Bàsiques

  • CB2 - Que els estudiants sàpiguen aplicar els seus coneixements al seu treball o vocació d'una manera professional i posseeixin les competències que solen demostrar-se mitjançant l'elaboració i defensa d'arguments i la resolució de problemes dins la seva àrea d'estudi.

Competències Tècniques

Específiques

  • CE05 - Analitzar i avaluar l'estructura i arquitectura dels computadors, així com els components bàsics que conformen.
  • CE06 - Identificar les característiques, funcionalitats i estructura dels Sistemes Operatius i dissenyar i implementar aplicacions basades en els seus serveis.
  • CE07 - Interpretar les característiques, funcionalitats i estructura dels Sistemes Distribuïts, les Xarxes de Computadors i Internet i dissenyar i implementar aplicacions basades en elles.
  • CE08 - Detectar les característiques, funcionalitats i components dels gestors de dades, que permeten el seu adequat ús en fluixos d'informació, i el disseny, anàlisi i implementació d'aplicacions basades en elles.
  • CE11 - Identificar i aplicar els principis fonamentals i tècniques bàsiques de la programació paral·lela, concurrent, distribuïda i de temps real.
  • CE19 - Utilitzar els sistemes de computació actuals, inclosos sistemes d'alt rendiment, per al procés de grans volums de dades des del coneixement de la seva estructura, funcionament i particularitats.

Competències Tècniques Generals

Genèriques

  • CG1 - Concebir, redactar, organitzar, planificar i desenvolupar projectes en l'àmbit de la intel·ligència artificial.
  • CG3 - Definir, avaluar i seleccionar plataformes maquinari i programari per al desenvolupament i l'execució de sistemes, serveis i aplicacions informàtiques en l'àmbit de la intel·ligència artificial.
  • CG9 - Afrontar nous reptes amb una visió àmplia de les possibilitats de la carrera professional en l'àmbit de la Intel·ligència Artificial. Desenvolupar l'activitat aplicant criteris de qualitat i millora contínua, i actuar amb rigor en el desenvolupament professional. Adaptar-se als canvis organitzatius o tecnològics. Treballar en situacions de carència d'informació i/o amb restriccions temporals i/o de recursos.

Objectius

  1. Entendre l'ús de la computació d'altes prestacions i middlewares per a la intel·ligència artificial
    Competències relacionades: CG1, CG9, CT3, CT6, CE19,
  2. Conèixer els components bàsics de hardware i middleware a plataformes d'altes prestacions
    Competències relacionades: CG9, CT2, CE05, CE08, CE19,
  3. Aprendre l'ús d'acceleradors (e.g. GPUs) i eines per a la seva explotació
    Competències relacionades: CG3, CT6, CE08, CE19,
  4. Aprendre conceptes de virtualització i ús de màquines virtuals
    Competències relacionades: CG3, CT2, CB2, CE05, CE06,
  5. Familiaritzar-se amb les eines bàsiques per a l'explotació de sistemes distribuïts, amb models de programació orientats a la distribució
    Competències relacionades: CG3, CT6, CE07, CE08, CE11,
  6. Conèixer els conceptes bàsics de sistemes distribuïts, interconnexió i comunicació entre sistemes.
    Competències relacionades: CG3, CT3, CT6, CE07, CE11,
  7. Aprendre sobre sistemes de fitxers: usos bàsics dels sistemes de fitxers, sistemes en discos redundants, volums lògics i tolerància a fallades.
    Competències relacionades: CG3, CT6, CB2, CE06, CE07, CE08,
  8. Descobrir els reptes de de la computació d'altes prestacions en intel·ligència artificial
    Competències relacionades: CG1, CG9, CT2, CT3,

Continguts

  1. Introducció als sistemes de Computació d'Altes Prestacions
    Introducció als sistemes de computació de gran escala, especialitzats i al núvol.
  2. Acceleradors i dispositius d'altes prestacions
    Incorporació d'acceleradors (e.g. GPUs) i eines per a la seva explotació. Operacions amb matrius accelerades mitjançant dispositius especialitzats.
  3. Middleware i plataformes d'altes prestacions per a la intel·ligència artificial
    Components bàsics de hardware i middleware a plataformes d'altes prestacions. Ús d'eines de l'estat de l'art i la industria (e.g. TensorFlow, Pytorch, etc.) combinat amb dispositius especialitzats.
  4. Paral·lelisme aplicat a la intel·ligència artificial
    Paral·lelisme en computació d'altes prestacions i la interacció amb els middlewares més estesos en aplicacions de la intel·ligència artificial, aprenentatge profund i transformers, i tècniques associades.
  5. Introducció a models distribuïts de programació per a Big Data
    Introducció a models de programació Map-Reduce sobre sistemes de dades distribuïts i llenguatge Scala.
  6. Conceptes de virtualització i containerització
    Introducció a l'ús de màquines virtuals i containerització, per a l'execució isolada i personalitzada d'entorns, així com migració de càrrega i gestió de recursos a sistemes compartits.
  7. Sistemes de fitxers locals i distribuïts, redundancia i disponibilitat
    Usos bàsics de sistemes de fitxers, així com als sistemes d'emmagatzemament distribuït de dades, volums lògics, redundància, tolerància a fallades i alta disponibilitat.
  8. Computació a sistemes distribuïts
    Conceptes bàsics de sistemes distribuïts (e.g. Hadoop i Spark), interconnexió i comunicacions, paradigmes de sistemes distribuïts i protocols, i tolerància a fallades. Eines bàsiques per a l'explotació de concurrència en sistemes distribuïts, i els seus models de programació orientats a la intel·ligència artidficial i el procés massiu de dades.
  9. Reptes de la computació d'altes prestacions per a la intel·ligència artificial
    Reptes de present i futur de la computació d'altes prestacions aplicada a la intel·ligència artificial. Eines i entorns actuals a la industria, el núvol, l'acadèmia i la societat.

Activitats

Activitat Acte avaluatiu


Introducció als sistemes de Computació d'Altes Prestacions

Introducció als sistemes de Computació d'Altes Prestacions, eines i entorns. Familiarització amb les instal·lacions HPC, hand-on en ús de sistemes HPC i llenguatge C.
Objectius: 2
Continguts:
Teoria
2h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
9h

Acceleradors, supercomputadors i dispositius d'altes prestacions

Acceleradors i dispositius d'altes prestacions. GPUs i dispositius acceleradors. Multiplicació de matrius usant GPUs. Introducció a Python en un supercomputador.
Objectius: 3
Continguts:
Teoria
2h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
9h

Middleware i plataformes d'altes prestacions per a la intel·ligència artificial

Middleware i plataformes d'altes prestacions per a la intel·ligència artificial. TensorFlow/Pytorch, Deep Learning i HPC
Objectius: 1
Continguts:
Teoria
2h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Paral·lelisme aplicat a la intel·ligència artificial

Paral·lelisme aplicat a la intel·ligència artificial. Escalabilitat, tècniques avançades de deep learning, transformers i futur de Deep Learning
Objectius: 2 1
Continguts:
Teoria
4h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h

Introducció a models distribuïts de programació per a Big Data

Introducció a models de programació Map-Reduce sobre sistemes de dades distribuïts i llenguatge Scala.
Objectius: 6
Continguts:
Teoria
2h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Conceptes de virtualització i containerització

Introducció a l'ús de màquines virtuals i containerització, per a l'execució isolada i personalitzada d'entorns, així com migració de càrrega i gestió de recursos a sistemes compartits.
Objectius: 4
Continguts:
Teoria
4h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h

Sistemes de fitxers locals i distribuïts, redundancia i disponibilitat

Usos bàsics de sistemes de fitxers, així com als sistemes d'emmagatzemament distribuït de dades, volums lògics, redundància, tolerància a fallades i alta disponibilitat.
Objectius: 7
Continguts:
Teoria
2h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Computació a sistemes distribuïts

Conceptes bàsics de sistemes distribuïts (e.g. Hadoop i Spark), interconnexió i comunicacions, paradigmes de sistemes distribuïts i protocols, i tolerància a fallades. Eines bàsiques per a l'explotació de concurrència en sistemes distribuïts, i els seus models de programació orientats a la intel·ligència artificial i el procés massiu de dades.
Objectius: 6 5
Continguts:
Teoria
4h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h

Eines i entorns actuals a la industria, el núvol, l'acadèmia i la societat.

Eines i entorns actuals a la industria, el núvol, l'acadèmia i la societat.
Objectius: 8
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Reptes de present i futur de la computació d'altes prestacions aplicada a la intel·ligència artificial. Seminaris HPC

Seminaris d'experts en la matèria. Presentació de treballs.
Objectius: 5 1 8
Continguts:
Teoria
6h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h

Metodologia docent

El curs es basa en sessions de teoria i de laboratori presencials. Les sessions teòriques combinen classes magistrals i seminaris d'experts en l'àmbit, seguint el programa exposat en aquest pla d'estudis i basades en l'ús de material propi. Durant les sessions es promou el diàleg i la discussió per tal d'anticipar i consolidar els resultats d'aprenentatge de l'assignatura.

Les sessions de laboratori tracten els aspectes relacionats amb les diferents tecnologies presentades, i segueixen els mateixos temes del plan d'estudis. Són sessions pràctiques en forma de Hands-On, utilitzant diferents recursos computacionals al Departament d'Arquitectura de Computadors i al Barcelona Supercomputing Center.

Mètode d'avaluació

L'avaluació es fonamentarà bàsicament en la realització de treballs de forma continua durant les diferents sessions del curs. L'assistència i la participació seran obligatòries, i per tant també s'avaluaran passant llista i requerint la participació a les sessions interactives. Finalment, hi haurà un treball de recerca al llarg de l'assignatura, que els estudiants hauran de presentar davant els seus companys.

La distribució dels pesos de cada activitat és la corresponent:
- AS: assistència a classe, teoria i laboratoris (10%), que servirà per avaluar la competència transversal CT3.
- PR: participació a classe (10%)
- EX: exercicis de laboratori (65%), com a mitja aritmètica de les pràctiques de laboratori.
- RE: presentació de treball de recerca (15%), que servirà per avaluar les competències transversals CT2, CT3 i CT6.

La Nota Final (NF) de l'assignatura s'obté a partir de
NF = 0.10 x AS + 0.10 x PR + 0.65 x EX + 0.10 x RE

Bibliografia

Bàsica:

Complementaria:

  • BSC documentation about Marenostrum 4 and CTE-Power - Barcelona Supercomputing Center, , .

Capacitats prèvies

Haver cursat les assignatures de Fonaments de Computadors, així com Paral·lelisme i Sistemes Distribuïts.