Aquesta assignatura proporciona coneixements bàsics sobre: 1) els diferents nivells de paral·lelisme que ens podem trobar en les arquitectures actuals (a nivell d'instruccions o ILP, a nivell de dades o DLP i a nivell de flux d'execució o TLP); 2) com la jerarquia de memòria s'organitza per donar-los suport; i 3) els mecanismes que permeten explotar-los des del punt de vista de la programació d'aplicacions. Aquests coneixements permetran entendre les oportunitats que ofereixen aquestes arquitectures per afrontar les necessitats de càlcul de la major part d'aplicacions d'intel·ligència artificial.
Professorat
Responsable
Eduard Ayguadé Parra (
)
Altres
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
CT3 [Avaluable] - 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.
Competències Tècniques
Específiques
CE05 - Analitzar i avaluar l'estructura i arquitectura dels computadors, així com els components bàsics que conformen.
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.
CE11 - Identificar i aplicar els principis fonamentals i tècniques bàsiques de la programació paral·lela, concurrent, distribuïda i de temps real.
Competències Tècniques Generals
Genèriques
CG2 - Utilitzar els coneixements fonamentals i metodologies de treball sòlides adquirits durant els estudis per adaptar-se als nous escenaris tecnològics de el futur.
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.
CG5 - Treballar en equips i projectes multidisciplinaris relacionats amb la intel·ligència artificial i la robòtica, interactuant fluidament amb enginyers/es i professionals d'altres disciplines.
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
Conèixer els models bàsics d'execució i les mètriques de rendiment
Competències relacionades:
CE05,
Subcompetences:
Eines per la caracterització de rendiment
Conèixer l'arquitectura dels processadors escalars i les tècniques per explotar el ILP (paral·lelisme a nivell d'instrucció) i el DLP (paral·lelisme a nivell de dades)
Competències relacionades:
CG3,
CE05,
Subcompetences:
Optimització de l'execucio escalar: vectorització
Conèixer les arquitectures de memòria compartida, suport hardware a la coherència de memòria i sincronització
Competències relacionades:
CG3,
CE05,
Subcompetences:
Programació paral·lela de memòria compartida: OpenMP
Conèixer les arquitectures de memòria disttribuïda I el suport hardware per l'intercanvi de dades
Competències relacionades:
CG3,
CE05,
CE07,
Subcompetences:
Programació paral·lela amb pas de missatges: MPI
Conèixer les arquitectures basades en acceleradors i l'accés a la jerarquia de memòria del processador escalar
Competències relacionades:
CG3,
CE05,
Conèixer i aplicar les tècniques bàsiques de la programació paral·lela, per a sistemes multiprocessador de memòria compartida i distribuïda
Competències relacionades:
CT6,
CE11,
Capacitats per discutir i contrastar la resolució de problemes i exercicis pràctics, tant en treball de grup com de forma autònoma
Competències relacionades:
CT3,
CT6,
Entendre la relació de l'assignatura amb el camp de la IA
Competències relacionades:
CG2,
CG5,
CG9,
Continguts
Models d'execució i mètriques de rendiment
Presentació dels models d'execució sèrie, multiprogramat, concurrent i paral·lel, juntament amb les mètriques bàsiques que caracteritzen el seu rendiment.
Arquitectura del processador escalar i optimització de codi
En aquest tema es presenta l'arquitectura bàsica del processador escalar i les tècniques per incrementar el paral·lelisme a nivell d'instruccions (ILP: disseny segmentat i superescalar) i a nivell de dades (DLP: unitats vectorials). Optimització de l'accés a la jerarquia de memòria i vectorització.
Arquitectura i programació de multiprocessadors de memòria compartida
En aquest tema es presenten les arquitectures multiprocessador de memòria compartida UMA (uniform memory access time) i NUMA (non-uniform memory access time), incloent els mecanismes de coherència basats en bus i directori i el suport a la sincronització mitjançant instruccions atòmiques. També es presenta l'arquitectura d'un node dins de l'arquitectura cluster i els components que el formen (processadors amb multiples nuclis d'execució, memoria i busos). Paral·lelització d'aplicacions usant el model de tasques en OpenMP.
Arquitectura i programació de multiprocessadors de memória distribuïda
En aquest tema es presenten les arquitectures multiprocessador de memòria distribuïda basades en pas de missatges mitjançant una xarxa d'interconnexió escalable. Paral·lelització d'aplicacions amb el model de programació MPI.
Acceleració per aplicacions d'intel·ligència artificial
En aquest tema es presenten les arquitectures orientades a l'acceleració dels nuclis de computació més característics en aplicacions d'intel·ligència artificial: GPU (Graphics Processing Units), TPU (Tensor Processing Units), ... i la seva integració en els nodes de memòria compartida de l'arquitectura clúster. Cas d'ús: acceleradors per d'entorns de Deep Learning.
Activitats
ActivitatActe avaluatiu
Models d'execució, mètriques i eines per l'analisi de rendiment
El curs es basa en sessions de teoria i de laboratori presencials. Les sessions teòriques combinen classes magistrals i realització d'exercicis, seguint el programa exposat en aquest pla d'estudis i basades en l'ús de material propi (transparències, enunciats de problemes, ...). 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 la programació i segueixen els mateixos temes del plan d'estudis. Són sessions pràctiques utilitzant una arquitectura clúster disponible al Departament d'Arquitectura de Computadors.
Mètode d'avaluació
Hi han dues proves avaluatives de la part de teoria i una de la part de laboratori:
- PT: examen parcial de teoria (20%)
- FT: examen final de teoria (35%)
- FL: examen final de laboratori (30%)
Addicionalment, s'avaluaran de forma continua:
- SL: informes de seguiment del laboratori (15%) que també servirà per avaluar les competències transversals CT3 I CT6.
La Nota Final (NF) de l'assignatura s'obté a partir de
NF = (0.30 x FL + 0.15 x SL) + MAX(0.55 x FT; (0.20 x PT + 0.35 x FT))
En cas de NF < 5.0 pero superior a 3.5 havent fet les dues parts del examen final, existirà l'opció de reavaluació mitjançant un examen que recollirà tota l'assignatura (teoria i pràctiques). La nota de reavaluació reemplaçarà la nota NF, el valor de la qual no podrà ser major de 7.