Vés al contingut

Paral·lelisme i Sistemes Distribuits

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

Altres

Hores setmanals

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

Competències

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.
  • 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.
  • 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
    4h
    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
    14h

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

    Control teoria


    Objectius: 1 2
    Setmana: 6
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

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

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

    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

    Examen final


    Objectius: 1 2 3 4 5
    Setmana: 15 (Fora d'horari lectiu)
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    Control de laboratori


    Objectius: 6
    Setmana: 14
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    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 (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.

    Bibliografia

    Bàsic

    Capacitats prèvies

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