Logo UAB
2021/2022

Arquitectures Avançades

Codi: 102778 Crèdits: 6
Titulació Tipus Curs Semestre
2502441 Enginyeria Informàtica OB 3 1
2502441 Enginyeria Informàtica OT 4 1
La metodologia docent i l'avaluació proposades a la guia poden experimentar alguna modificació en funció de les restriccions a la presencialitat que imposin les autoritats sanitàries.

Professor/a de contacte

Nom:
Juan Carlos Moure Lopez
Correu electrònic:
JuanCarlos.Moure@uab.cat

Utilització d'idiomes a l'assignatura

Llengua vehicular majoritària:
espanyol (spa)
Grup íntegre en anglès:
No
Grup íntegre en català:
No
Grup íntegre en espanyol:
No

Equip docent

Miquel Àngel Senar Rosell

Prerequisits

És molt, molt recomanable haver cursat i aprovat les assignatures de Fonaments d'Informàtica, Fonaments de Computadors, Estructura de Computadors, Metodologia de la Programació i Arquitectura de Computadors.

Objectius

L'objectiu fonamental de l'assignatura és que els alumnes adquireixin les capacitats d'anàlisi, utilització i avaluació d'arquitectures avançades de computadors, per al desenvolupament d'aplicacions i serveis informàtics.
Els conceptes bàsics que es descriuran a les sessions teòriques són: el processador multi-nucli, el sistema multi-processador de memòria compartida, els acceleradors de còmput, l'avaluació de rendiment i prestacions, i els models i llenguatges de programació d'aquests sistemes paral·lels. Els objectius més específics són els següents:

1.    Entendre les claus per obtenir bon rendiment de computadors multi-nucli i multi-processador, i d'acceleradors de còmput (GPUs)

2.    Identificar les oportunitats de paral·lelització a un algorisme o aplicació, a diferents nivells (instruccions, iteracions d'un bucle, crides a funcions...), i expressar-ho formalment

3.    Dissenyar les estructures de dades d'una aplicació i els algorismes que hi accedeixen per tal d'afavorir el bon rendiment de la jerarquia de memòria

4.    Analitzar, dissenyar i implantar algorismes paral·lels amb patrons de còmput abstractes (reducció, transformació...) sota paradigmes de programació basats en variables compartides i sincronització, i amb llenguatges paral·lels actuals, com OpenMP i OpenACC.

5.    Verificar la funcionalitat i avaluar el rendiment d'aplicacions paral·leles, identificant els colls d'ampolla respecte al rendiment

6.    A partir de l'anàlisi de rendiment, seleccionar el computador adequat a una aplicació i/o realitzar optimitzacions del codi que millorin encara més el seu rendiment

Competències

    Enginyeria Informàtica
  • Adquirir hàbits de treball personal.
  • Capacitat d'analitzar i avaluar arquitectures de computadores, incloent plataformes paral·leles i distribuïdes, així com desenvolupar i optimitzar software per a les mateixes.
  • Capacitat per a analitzar, avaluar, seleccionar i configurar plataformes hardware per al desenvolupament i execució d'aplicacions i serveis informàtics.
  • Comunicació.
  • Concebre i desenvolupar sistemes o arquitectures informàtiques centralitzades o distribuïdes integrant hardware, software i xarxes.
  • Tenir una actitud personal adequada.

Resultats d'aprenentatge

  1. Analitzar els models, paradigmes i llenguatges de programació paral·lela disponibles per a determinar el que millor s'adequa a les necessitats de l'aplicació.
  2. Analitzar les característiques de les aplicacions que requereixin d'altes prestacions.
  3. Avaluar i predir el rendiment de diferents plataformes de còmput d'altes prestacions per a l'execució d'aplicacions.
  4. Avaluar la funcionalitat i el rendiment de les aplicacions paral·leles/distribuïts desenvolupades.
  5. Avaluar les prestacions de les arquitectures d'altes prestacions, així com la funcionalitat de les aplicacions.
  6. Comunicar eficientment, oralment o per escrit, coneixements, resultats i habilitats, tant en entorns professionals com davant de públics no experts.
  7. Configurar plataformes hardware i entorns de programació per al desenvolupament i execució d'aplicacions d'altes prestacions.
  8. Desenvolupar aplicacions paral·leles basades en els paradigmes existents.
  9. Determinar les plataformes més adequades per a cada tipus d'aplicació.
  10. Mantenir una actitud proactiva i dinàmica respecte al desenvolupament de la pròpia carrera professional, el creixement personal i la formació continuada. Tenir esperit de superació.
  11. Prevenir i solucionar problemes.
  12. Proposar solucions informàtiques basades en sistemes de còmput d'altes prestacions que integrin tant l'arquitectura dels components hardware del sistema, així com la interconnexió dels mateixos, i el disseny del software necessari.

Continguts

1. Paral·lelisme d'Instruccions

  • Reordenació dinàmica de l'execució de les instruccions
  • Dependències de dades entre instruccions en un bucle

2. Paral·lelisme de Dades

  • Anàlisi del paral·lelisme de dades d'un algorisme
  • Paral·lelisme SIMD (vectorització) i MIMD (multi-thread)
  • Arquitectures Vectorials i instruccions SIMD
  • GPUs i acceleradors de còmput

3. Arquitectura de computadors paral·lels

  • Estructura i arquitectura dels processadors multi-fil i multi-nucli, i dels nodes multi-processador
  • Jerarquia de memòria (NUMA) i suport per a la coherència de dades en cache
  • Suport H/W per a la sincronització i per a la comunicació entre threads

4. Algorismes Paral·lels

  • Model de paral·lelisme amb variables compartides i sincronització. Patrons de còmput paral·lel
  • Paral·lelisme de dades (SIMD): operacions de reducció i de transformació sobre estructures de dades multi-dimensionals
  • Paral·lelisme de tasques (MIMD): master/worker, divide & conquer, pipeline
  • Programació no determinista i sincronització sense locks
  • Directives OpenMP i OpenACC

5. Avaluació del Rendiment d'Aplicacions Paral·leles

  • Anàlisi de complexitat, paral·lelisme i localitat
  • Mesura del temps d'execució, IPC, ample de banda i intensitat aritmètica
  • Treball total i camí crític de l'execució paral·lela
  • Speedup i eficiència de l'execució paral·lela
  • Sobrecàrrega (overhead) de la sincronització i les comunicacions

Metodologia

Classes de Teoria: s'exposaran els coneixements propis de l'assignatura. Es descriuran els conceptes bàsics i s'il·lustraran amb exemples pràctics. Es ressaltaran els problemes d'aprenentatge més importants i es mostrarà com completar i aprofundir en els continguts. Es discutiran casos pràctics i el professor detectarà els problemes de comprensió i raonament més comuns i els resoldrà per a tots els estudiants.

Classes de Problemes en Laboratori: es faran activitats cooperatives de resolució de problemes i de casos pràctics senzills, que serviran de suport a la teoria. Després d’un treball individual previ, els i les alumnes faran una posada en comú en grup i resoldran els seus dubtes. El professor detectarà els problemes de comprensió i raonament més comuns i els resoldrà per grups o per a totes les i els estudiants. Es promou la capacitat d'anàlisi i síntesi, el raonament crític i la capacitat de resolució de problemes. Durant la sessió els i les alumnes hauran d'informar al professor sobre els seus avenços i els problemes que es puguin trobar, i lliuraran un document final amb els resultats i reflexions sobre les seves activitats.

Cas pràctic d'enginyeria de Rendiment: durant tot el curs, l'alumnat haurà de dissenyar, planificar, realitzar, presentar i defensar de forma oral un treball pràctic, indicant els objectius, el desenvolupament, els resultats obtinguts amb gràfiques entenedores, les incidències més notables i, finalment, les conclusions més rellevants. S'espera una actitud proactiva i dinàmica, la cerca autònoma dels coneixements que siguin necessaris, i ambició amb els objectius del treball.

Competències Transversals:

  • T02.04 - Prevenir i solucionar problemes. Es treballa en les classes de problemes al laboratori i s'avalua amb els problemes que s'han de resoldre en grup.
  • T04.01 - Comunicar eficientment, oralment o per escrit, coneixements, resultats i habilitats, tant en entorns professionals com davant de públics no experts. Es treballa en les tutories i s'avalua en els lliuraments de treballs i en l'exposició del treball pràctic, i suposa un 15% de la nota final
  • T06.01 - Mantenir una actitud proactiva i dinàmica respecte al desenvolupament de la pròpia carrera professional, el creixement personal i la formació continuada. Tenir esperit de superació. S'incentiva i s'avalua en les sessions de pràctiques i en la preparació del treball d'Enginyeria de Rendiment, on el professor interactua amb les alumnes i els alumnes i observa i ajuda a corregir les seves actituds; suposa un 25% de la nota d'aquestes activitats.

Nota: es reservaran 15 minuts d'una classe, dins del calendari establert pel centre/titulació, per a la complementació per part de l'alumnat de les enquestes d'avaluació de l'actuació del professorat i d'avaluació de l'assignatura/mòdul.

Activitats formatives

Títol Hores ECTS Resultats d'aprenentatge
Tipus: Dirigides      
Problemes al Laboratori 24 0,96 1, 2, 3, 4, 5, 7, 8, 9, 10, 11
Teoria 24 0,96 1, 2, 5, 7, 9, 12
Tutories Aula 6 0,24 1, 5, 7, 12
Tipus: Supervisades      
Preparació del treball a realitzar al laboratori 15 0,6 3, 4, 8, 10
Preparació i Exposició del Treball Pràctic 5 0,2 6
Tipus: Autònomes      
Estudi autònom 24 0,96 1, 5, 7, 9, 12
Preparació de sessions pràctiques 30 1,2 1, 2, 8
Resolució de problemes 20 0,8 2, 4, 5, 9, 11

Avaluació

Les dates d'avaluació continuada i lliurament de treballs es publicaran a la plataforma Moodle de la UAB (Campus Virtual) i poden estar subjectes a canvis de programació per motius d'adaptació a possibles incidències. Sempre s'informarà a la plataforma Moodle sobre aquests canvis, ja que s'entén que és la plataforma habitual d'intercanvi d'informació entre professor i estudiants.

Activitats d'avaluació
Activitat A: resolució de problemes pràctics al laboratori; es realitza en grup; suposa un 20% de la nota final; cal treure una nota mínima de 4 punts sobre 10; i no es pot recuperar.
Activitat B: lliurament d'un informe sobre les activitats A; es realitza individualment; suposa un 15% de la nota final; no cal treure una nota mínima; i no es pot recuperar.
Activitat C: proposta i resolució d'un cas pràctic d'Enginyeria de Rendiment; es realitza en grup; suposa un 30% de la nota final; cal treure una nota mínima de 5 punts sobre 10; i es pot recuperar.
Activitat D: defensa oral de l'activitat C; es realitza individualment; suposa un 5% de la nota final; no cal treure una nota mínima; i es pot recuperar.
Activitat E: lliurament d'un informe de l'activitat C; es realitza en grup; suposa un 5% de la nota final; no cal treure una nota mínima; i no es pot recuperar.
Activitat F: assistència i participació activa a classe; es realitza individualment; suposa un 5% de la nota final; no cal treure nota mínima; i no es pot recuperar.
Activitat G: examen escrit de teoria i problemes; es realitza individualment i sense apunts; suposa un 20% de la nota final; cal treure una nota mínima de 5 punts sobre 10; i es pot recuperar.

A part de les activitats d'avaluació descrites anteriorment, al llarg del curs es podran proposar altres activitats de caire voluntari que podran contribuir a la nota final de l'assignatura.

Programa d'activitats d'avaluació
Les activitats A, B, C i F es realitzen durant tot el curs. Les activitats D i E es realitzen a final de curs. L'activitat G es realitza en les dates especificades per la coordinació.

Procés de recuperació
L'estudiant es pot presentar a la recuperació sempre que s'hagi presentat a les activitats B, D i G. D'acord amb la coordinació del Grau i la direcció de l'Escola d'Enginyeria només es podran recuperar les activitats C, D i G, que representen el 55% de la nota final.

Procediment de revisió
Totes les activitats d'avaluació es podran revisar a un lloc, data i hora que es publicarà amb anterioritat. Es podran fer reclamacions sobre la nota de l'activitat, que seran avaluades pel professorat responsable de l'assignatura. Si l'estudiant no es presenta a aquesta revisió, no es revisarà posteriorment aquesta activitat.

Qualificacions
S’atorgarà una qualificació de matrícula d'honor (MH) als estudiants que assoleixin una nota de qualificació final igual o superior a 9,00, fins a un total del 5% dels estudiants matriculats, prioritzant la part de la nota que correspon a avaluacions individuals (activitats B, D, F i G).
Si l'alumne no assoleix la nota mínima en alguna de les activitats d'avaluació, la qualificació numèrica final serà el mínim entre 4,5 punts i la suma ponderada de les notes de totes les activitats.
Un estudiant es considerarà no avaluable (NA) si no s'ha presentat a cap de les activitats B, D i G.

Irregularitats per part dels estudiants, còpia i plagi
Sense perjudici d'altres mesures disciplinàries que s'estimin oportunes, esqualificaran amb un zero les irregularitats comeses per un estudiant que puguin conduir a una variació de la qualificació d'un acte d'avaluació. Per tant, la còpia, el plagi, l'engany, deixar copiar, etc. en qualsevol de les activitats d'avaluació implicarà suspendre-la amb un zero. Les activitats d'avaluació qualificades d'aquesta forma i per aquest procediment no seran recuperables. Si és necessari superar qualsevol d'aquestes activitats d'avaluació per aprovar l'assignatura, aquesta assignatura quedarà suspesa directament, sense oportunitat de recuperar-la en el mateix curs. En cas de no superar l'assignatura degut a que l'estudiant ha comès irregularitats en un acte d'avaluació, la nota numèrica de l'expedient serà el valor menor entre 3.0 i la mitjana ponderada de les notes (i per tant no serà possible l'aprovat per compensació).

Avaluació dels estudiants repetidors
No hi ha cap tracte especial pels estudiants repetidors.

Activitats d'avaluació

Títol Pes Hores ECTS Resultats d'aprenentatge
Assistència i participació activa a classe 5% 0 0 6, 10
Defensa oral del treball d'Enginyeria de Rendiment 5% 0,1 0 6
Examen escrit individual de teoria i problemes 20% 1,9 0,08 1, 2, 4, 6, 9, 11, 12
Lliurament d'un informe de la resolució de problemes pràctics al laboratori 15% 0 0 6
Lliurament d'un informe del cas pràctic d'Enginyeria de Rendiment 5% 0 0 6
Proposta i resolució d'un cas pràctic d'Enginyeria de Rendiment 30% 0 0 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12
Resolució de problemes pràctics al laboratori 20% 0 0 2, 3, 4, 5, 7, 8, 9, 10, 11, 12

Bibliografia

Computer Architecture: A Quantitative Approach.  6th Edition (https://cataleg.uab.cat/iii/encore/record/C__Rb2034006)
John Hennessy, David Patterson, Morgan Kaufmann (Elsevier) 2018 (Cap. 4 i 5)

Structured Parallel Programming: Patterns for efficient computation
M. McCool, J. Reinders, A. Robison, Elsevier, 2012

Parallel Programming for Multicore and Cluster Systems
T. Rauber, G. Rünger, Springer (Elsevier), 2010

Programming Massively Parallel Processors: A Hands-on Approach
D. Kirk, & W.M. Hwu, Morgan Kaufmann (Elsevier), 2010

Programari

Cap especial.