Paral·lelisme i Sistemes Distribuits

Esteu aquí

Crèdits
6
Tipus
Obligatòria
Requisits
Aquesta assignatura no té requisits, però té capacitats prèvies
Departament
AC
Web
-
Mail
-
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

  1. 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
  2. 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ó
  3. 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
  4. 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
  5. 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,
  6. 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,
  7. 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,
  8. Entendre la relació de l'assignatura amb el camp de la IA
    Competències relacionades: CG2, CG5, CG9,

Continguts

  1. 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.
  2. 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ó.
  3. 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.
  4. 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.
  5. 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

Activitat Acte avaluatiu


Models d'execució, mètriques i eines per l'analisi de rendiment

-
Objectius: 1 7
Continguts:
Teoria
2h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Arquitectura del processador escalar i optimització d'aplicacions

-
Objectius: 2 7
Continguts:
Teoria
6h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h

Arquitectura multiprocessador de memòria compartida i programació OpenMP

-
Objectius: 3 7 8 6
Continguts:
Teoria
8h
Problemes
0h
Laboratori
8h
Aprenentatge dirigit
0h
Aprenentatge autònom
16h

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

Control teoria


Objectius: 1 2
Setmana: 6
Tipus: examen de teoria
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h

Arquitectura multiprocessador de memória distribuïda i programació MPI

-
Objectius: 4 7 8 6
Continguts:
Teoria
4h
Problemes
0h
Laboratori
6h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h

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

Arquitectura d'acceleradors per aplicacions d'intel·ligència artificial

-
Objectius: 7 8 5 6
Continguts:
Teoria
4h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Supercomputació i IA

-
Objectius: 8
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
2h
Aprenentatge autònom
2h

Examen final


Objectius: 1 2 3 4 5
Setmana: 16
Tipus: examen final
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
20h

Control de laboratori


Objectius: 6
Setmana: 14
Tipus: examen de laboratori
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h

Metodologia docent

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 (35%)
Addicionalment, s'avaluaran de forma continua:
- SL: informes de seguiment del laboratori (10%) 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.35 x FL + 0.10 x SL + MAX(0.55 x FT; 0.20 x PT + 0.35 x FT))

Bibliografia

Bàsica:

Capacitats prèvies

Les adquirides en l'assignatura de Fonaments de Computadors (FC) que conceptualment precedeix a aquesta assignatura.