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
Josep Lluís Berral García (
)
Altres
Jordi Torres Viñals (
)
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
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,
Conèixer els components bàsics de hardware i middleware a plataformes d'altes prestacions
Competències relacionades:
CG9,
CT2,
CE05,
CE08,
CE19,
Aprendre l'ús d'acceleradors (e.g. GPUs) i eines per a la seva explotació
Competències relacionades:
CG3,
CT6,
CE08,
CE19,
Aprendre conceptes de virtualització i ús de màquines virtuals
Competències relacionades:
CG3,
CT2,
CB2,
CE05,
CE06,
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,
Conèixer els conceptes bàsics de sistemes distribuïts, interconnexió i comunicació entre sistemes.
Competències relacionades:
CG3,
CT3,
CT6,
CE07,
CE11,
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,
Descobrir els reptes de de la computació d'altes prestacions en intel·ligència artificial
Competències relacionades:
CG1,
CG9,
CT2,
CT3,
Continguts
Introducció als sistemes de Computació d'Altes Prestacions
Introducció als sistemes de computació de gran escala, especialitzats i al núvol.
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.
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.
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.
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.
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.
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.
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.
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
ActivitatActe avaluatiu
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:
Introducció als models de Client-Servidor, sistemes de gestió d'execucions, i llançament d'aplicacions a sistemes clúster i Cloud.
Teoria
2h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h
Supercomputació i Computació d'Altes Prestacions
Supercomputadors i 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:
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:
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:65 Continguts:
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:
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:21 Continguts:
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