Titulació | Tipus | Curs | Semestre |
---|---|---|---|
4318303 Recerca i Innovació en Ciència i Enginyeria Basades en Computadors | OT | 0 | 1 |
Podeu accedir-hi des d'aquest enllaç. Per consultar l'idioma us caldrà introduir el CODI de l'assignatura. Tingueu en compte que la informació és provisional fins a 30 de novembre de 2023.
Coneixements de programació (preferiblement en llenguatge C)
L'objectiu fonamental de l'assignatura és que l'estudiantat adquireixi les capacitats d'anàlisi, ús i avaluació dels ordinadors, per al desenvolupament d'aplicacions avançades.
Els conceptes bàsics que es descriuran a les sessions teòriques són: processament paral·lel en ordinadors, memòries jeràrquiques, avaluació del rendiment, i els llenguatges i models de programació paral·lels d'aquests sistemes. 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.
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
1. Paral·lelisme d'Instruccions: Dependències de dades entre instruccions en un bucle i reordenació dinàmica de l'execució
2. Paral·lelisme de Dades: Anàlisi del paral·lelisme de dades d'un algorisme i execució SIMD (vectorització)
3. Paral.lelisme de tasques: Execució multi-fil i multi-nucli; Jerarquia de memòria compartida i coherència de dades; Sincronització entre threads
4. Algorismes Paral·lels: Model de paral·lelisme amb variables compartides i sincronització. Patrons de còmput paral·lel: reducció, transformació, master/worker, divide & conquer i pipeline
5. Avaluació del Rendiment d'Aplicacions: Anàlisi de complexitat, paral·lelisme i localitat; Mètriques de rendiment (elapsed time, IPC, ample de banda, intensitat aritmètica); Treball total i camí crític de l'execució paral·lela
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 i resoldran problemes pràctics i el professor detectarà els problemes de comprensió i raonament més comuns i els resoldrà per a tots els estudiants. Es promou la capacitat d'anàlisi i síntesi, el raonament crític i la capacitat de resolució de problemes.
Cas pràctic d'estudi autònom: durant 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 esquemes, figures i 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.
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.
Títol | Hores | ECTS | Resultats d'aprenentatge |
---|---|---|---|
Tipus: Dirigides | |||
Assistència a classe de teoria i exercicis teòrics | 20 | 0,8 | CA05, KA06, KA07, KA08, SA10 |
Debat oral sobre el treball autònom | 20 | 0,8 | CA04, CA05, KA08 |
Pràctiques de programació amb Ordinador | 20 | 0,8 | CA04, KA07, SA08, SA09, SA10 |
Tipus: Autònomes | |||
Estudi autònom, redacció d'informe i desenvolupament de presentació | 38 | 1,52 | CA04, CA05 |
Estudi i Resolució de Problemes | 50 | 2 | CA04, CA05, KA06, KA07, KA08 |
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 i defensa oral; realització en grup de dos estudiants; 30% de la nota final
Activitat B: informe escrit i defensa oral d'un treball autónom; 40% de la nota final
Activitat C: examen escrit de teoria i problemes; realització individual; 30% de la nota final
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, 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 aquel'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ó).
Títol | Pes | Hores | ECTS | Resultats d'aprenentatge |
---|---|---|---|---|
Examen Individual | 30 | 2 | 0,08 | CA04, KA06, KA07 |
Exercicis de Programació i Rendiment | 30 | 0 | 0 | KA08, SA08, SA09, SA10 |
Informe escrit i defensa oral del treball autònom | 40 | 0 | 0 | CA04, CA05 |
Parallel Programming: Techniques and Applications using Networked Workstations and Parallel Computers. Barry Wilkinson. Prentice Hall, 1999.
Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering. Ian Foster. Addison Wesley, 1995.
Introduction to Parallel Computing. A. Grama et alter. Addison Wesley, Second Edition, 2003.
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
C language. OpenMP and OpenACC extensions.