
Arquitectures Avançades
Codi: 102778Crèdits: 6
| Titulació | Tipus | Curs |
|---|---|---|
| Enginyeria Informàtica | OB | 3 |
| Enginyeria Informàtica | OP | 4 |
Professor/a de contacte
- Nom :
- Juan Carlos Moure Lopez
- Correu electrònic :
- juancarlos.moure@uab.cat
Equip docent
- Quim Aguado Puig
Idiomes dels grups
Podeu consultar aquesta informació al final del document.
Prerequisits
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:
- Entendre les claus per obtenir bon rendiment de computadors multi-nucli i multi-processador, i d'acceleradors de còmput (GPUs)
- 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
- 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
- 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.
- Verificar la funcionalitat i avaluar el rendiment d'aplicacions paral·leles, identificant els colls d'ampolla respecte al rendiment
- 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
Resultats d'aprenentatge
- Comunicar eficientment, oralment o per escrit, coneixements, resultats i habilitats, tant en entorns professionals com davant de públics no experts.
- 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.
- Avaluar les prestacions de les arquitectures d'altes prestacions, així com la funcionalitat de les aplicacions.
- 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ó.
- Desenvolupar aplicacions paral·leles basades en els paradigmes existents.
- Avaluar la funcionalitat i el rendiment de les aplicacions paral·leles/distribuïts desenvolupades.
- Analitzar les característiques de les aplicacions que requereixin d'altes prestacions.
- Determinar les plataformes més adequades per a cada tipus d'aplicació.
- Avaluar i predir el rendiment de diferents plataformes de còmput d'altes prestacions per a l'execució d'aplicacions.
- Configurar plataformes hardware i entorns de programació per al desenvolupament i execució d'aplicacions d'altes prestacions.
- Prevenir i solucionar problemes.
- 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ó.
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
Activitats formatives i Metodologia
| Títol | Hores | ECTS | Resultats d'aprenentatge |
|---|---|---|---|
| Estudi autònom | 24 | 0,96 | 2, 3, 4, 8, 10 |
| Teoria | 24 | 0,96 | 2, 3, 4, 7, 8, 10 |
| Preparació de sessions pràctiques | 30 | 1,2 | 4, 5, 7 |
| Tutories Aula | 2 | 0,08 | 2, 3, 4, 10 |
| Resolució de problemes | 20 | 0,8 | 3, 6, 7, 8, 11 |
| Preparació i Exposició del Treball Pràctic | 4 | 0,16 | 1 |
| Preparació del treball a realitzar al laboratori | 15 | 0,6 | 5, 6, 9, 12 |
| Problemes al Laboratori | 24 | 0,96 | 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 |
- 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.
Avaluació
Activitats d'avaluació continuada
| Títol | Pes | Hores | ECTS | Resultats d'aprenentatge |
|---|---|---|---|---|
| Informe escrit i Defensa oral del treball pràctic (individual) | 20% | 1,5 | 0,06 | 1 |
| Examen escrit individual de teoria i problemes | 30% | 2,5 | 0,1 | 1, 2, 4, 6, 7, 8, 9, 11 |
| Resolució de problemes pràctics i Defensa oral (grup) | 40% | 3 | 0,12 | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 |
| Informe escrit en grup d'activitats pràctiques | 10% | 0 | 0 | 1 |
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. En cas de que sigui necessari, es pot sol·licitar la reprogramació d’activitats d’avaluació seguint el protocol marcat per l'Escola.
Si el professorat té dubtes sobre l'autoria d'alguna prova d'avaluació, podrà, si ho considera oportú, realitzar una prova oral per verificar-la.
Activitats d'avaluació
- Activitat A: resolució de problemes pràctics i defensa oral; realització en grup; 40% de la nota final; cap nota mínima; no recuperable
- Activitat B: informe escrit de l'activitat A; realització en grup; 10% de la nota final; cap nota mínima; es pot recuperar
- Activitat C: informe escrit i defensa oral de l'activitat A; realització individual; 20% de la nota final; nota mínima de 4 punts sobre 10; es pot recuperar
- Activitat D: examen escrit de teoria i problemes; realització individual i sense apunts; 30% de la nota final; nota mínima de 5 punts sobre 10; 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 i B es realitzen durant tot el curs. Les activitats C i D es realitzen a final de curs. L'activitat D 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 A i D. D'acord amb la coordinació del Grau i la direcció de l'Escola d'Enginyeria només es podran recuperar les activitats B, C i D, que representen el 60% 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 C i D).
- 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 ni a l'activitat C ni a la D.
Irregularitats per part dels estudiants, còpia i plagi
Sense perjudici d'altres mesures disciplinàries que s'estimin oportunes, es qualificaran 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, l’ús no autoritzat de la IA (p. ex, Copilot, ChatGPT o equivalents), 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.
Ús de IA
En aquesta assignatura, es permet l'ús de tecnologies d'Intel·ligència Artificial (IA) com a part integrant del desenvolupament del treball, sempre que el resultat final reflecteixi una contribució significativa de l'estudiant en l'anàlisi i la reflexió personal. L'estudiant haurà d'identificar clarament quines parts han estat generades amb aquesta tecnologia, especificar les eines emprades i incloure una reflexió crítica sobre com aquestes han influït en el procés i el resultat final de l’activitat. La no transparència de l’ús de la IA es considerarà falta d'honestedat acadèmica i pot comportar una penalització en la nota de l'activitat, o sancions majors en casos de gravetat.
Avaluació Única
Aquesta assignatura no preveu el sistema d’avaluació única.
Bibliografia
- Computer Architecture: A Quantitative Approach. 5th Edition (https://bibcercador.uab.cat/permalink/34CSUC_UAB/15r2rl8/cdi_askewsholts_vlebooks_9780123838735) 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
Grups i idiomes de l'assignatura
La informació proporcionada és provisional fins al 30 de novembre. A partir d'aquesta data, podreu consultar l'idioma de cada grup a través d'aquest enllaç. Per accedir a la informació, caldrà introduir el CODI de l'assignatura
| Tipus de docència | Grup | Idioma | Semestre | Torn |
|---|---|---|---|---|
| (TE) Teoria | 430 | Català/Castellà | primer quadrimestre | matí-mixt |
| (PLAB) Pràctiques de laboratori | 431 | Català/Castellà | primer quadrimestre | matí-mixt |
| (PLAB) Pràctiques de laboratori | 432 | Català/Castellà | primer quadrimestre | matí-mixt |