Avís important
La guia docent és provisional.
La versió en PDF de la guia docent pot tardar uns dies en estar disponible al DDD.

Computació Avançada d'Altes Prestacions
Codi: 44730Crèdits: 6
| Titulació | Tipus | Curs |
|---|---|---|
| Research and Innovation in Computer Based Science and Engineering | OP | 1 |
Professor/a de contacte
- Nom :
- Nehir Sonmez Tekin
- Correu electrònic :
- nehir.sonmez@uab.cat
Equip docent
- Nehir Sonmez Tekin
Idiomes dels grups
Podeu consultar aquesta informació al final del document.
Prerequisits
Coneixements de programació (preferiblement en llenguatge C)
Objectius
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
Resultats d'aprenentatge
- CA04 (Capacitat per a aplicar tècniques de computació d'altes prestacions a problemes complexos d'àmbits diversos de la ciència o l'enginyeria.) Capacitat per a aplicar tècniques de computació d'altes prestacions a problemes complexos d'àmbits diversos de la ciència o l'enginyeria.
- CA05 (Capacitat per a generar preguntes i hipòtesis davant de nous reptes de recerca i demostrar originalitat en la manera d'abordar i resoldre els problemes plantejats mitjançant tècniques de computació d'altes prestacions.) Capacitat per a generar preguntes i hipòtesis davant de nous reptes de recerca i demostrar originalitat en la manera d'abordar i resoldre els problemes plantejats mitjançant tècniques de computació d'altes prestacions.
- KA06 (Descriure els patrons algorísmics més adequats per a diferents entorns de computació d'altes prestacions.) Descriure els patrons algorísmics més adequats per a diferents entorns de computació d'altes prestacions.
- KA07 (Descriure els problemes de rendiment més comuns que poden exhibir les aplicacions informàtiques en funció de l'arquitectura del sistema en què s'executin.) Descriure els problemes de rendiment més comuns que poden exhibir les aplicacions informàtiques en funció de l'arquitectura del sistema en què s'executin.
- KA08 (Identificar a partir de criteris de cost-prestacions les piles tecnològiques més adequades per a desenvolupar aplicacions d'altes prestacions que tractin problemes en àmbits de ciència i enginyeria.) Identificar a partir de criteris de cost-prestacions les piles tecnològiques més adequades per a desenvolupar aplicacions d'altes prestacions que tractin problemes en àmbits de ciència i enginyeria.
- SA08 (Ser capaç d'identificar els problemes de rendiment d'aplicacions complexes seleccionant i aplicant les tècniques d'elaboració de perfils i les eines adequades.) Ser capaç d'identificar els problemes de rendiment d'aplicacions complexes seleccionant i aplicant les tècniques d'elaboració de perfils i les eines adequades.
- SA09 (Ser capaç d'optimitzar aplicacions adaptades a diferents arquitectures: sistemes multinucli, sistemes distribuïts, acceleradores gràfiques (GPU ) i sistemes híbrids.) Ser capaç d'optimitzar aplicacions adaptades a diferents arquitectures: sistemes multinucli, sistemes distribuïts, acceleradores gràfiques (GPU ) i sistemes híbrids.
- SA10 (Ser capaç de dissenyar aplicacions innovadores en els àmbits de la ciència i l'enginyeria aplicant models teòrics i usant tècniques i eines pròpies de la computació d'altes prestacions.) Ser capaç de dissenyar aplicacions innovadores en els àmbits de la ciència i l'enginyeria aplicant models teòrics i usant tècniques i eines pròpies de la computació d'altes prestacions.
Continguts
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
Activitats formatives i Metodologia
| Títol | Hores | ECTS | Resultats d'aprenentatge |
|---|---|---|---|
| Pràctiques en Laboratori | 16 | 0,64 | |
| Estudi autònom, redacció d'informe i desenvolupament de presentació | 41 | 1,64 | |
| Estudi i Resolució de Problemes | 50 | 2 | |
| Treball d'investigació | 15 | 0,6 | |
| Assistència a classe de teoria i exercicis teòrics | 26 | 1,04 |
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.
Avaluació
Activitats d'avaluació continuada
| Títol | Pes | Hores | ECTS | Resultats d'aprenentatge |
|---|---|---|---|---|
| Exercicis de Laboratori: Programació i Avaluació de Rendiment | 50 | 0 | 0 | CA04, CA05, KA07, SA08, SA09, SA10 |
| Informe escrit i defensa oral del treball autònom | 30 | 0,5 | 0,02 | CA05, KA06, KA07, KA08 |
| Examen Individual | 20 | 1,5 | 0,06 | 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: examen escrit de teoria i problemes; realització individual i sense apunts; 20% de la nota final; no hi ha nota mínima; recuperable; a final de curs
Activitat B: exercicis de laboratori; realització en grup; 50% de la nota final; nota mínima de 5 sobre 10; no és recuperable; durant tot el curs
Activitat C: informe escrit i defensa oral d'un treball autònom; realització individual; 30% de la nota final; no hi ha nota mínima; recuperable; a final de curs
Procés de Recuperació
l'estudiant es pot presentar a la recuperació sempre que hagi fet les activitats A, B i C
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. En cas que el professorat ho cregui convenient, es podrà fer una prova oral per validar l'autoria de qualsevol de les proves d'avaluació.
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ó).
Bibliografia
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. 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
C language. OpenMP and OpenACC extensions.
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 |
|---|---|---|---|---|
| (TEm) Teoria (màster) | 1 | Anglès | primer quadrimestre | tarda |
| (PLABm) Pràctiques de laboratori (màster) | 1 | Anglès | primer quadrimestre | tarda |