Logo UAB
2023/2024

Computació d'Altes Prestacions

Codi: 104404 Crèdits: 6
Titulació Tipus Curs Semestre
2503740 Matemàtica Computacional i Analítica de Dades OB 3 1

Professor/a de contacte

Nom:
Carlos Carrillo Jordan
Correu electrònic:
carles.carrillo@uab.cat

Idiomes dels grups

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.

Equip docent

Carlos Carrillo Jordan
Alvaro Wong Gonzalez

Prerequisits

Encara que no hi ha prerequisits formalment establerts i és responsabilitat de la pròpia assignatura proporcionar als i les alumnes un mitjà per adquirir els coneixements descrits a l’apartat de continguts de l’assignatura, és recomanable: un bon coneixement de programació, del funcionament d'un computador, del sistema operatiu a nivell d'usuari programador i de com s’envien missatges per la xarxa (Fonaments de Computadors, Programari de Sistema, Iniciació a la Programació).


Objectius

L'objectiu d'aquesta assignatura és conèixer els sistemes de còmput d’altes prestacions i paral·lels, sistemes multiprocessador i multicomputador, paradigmes de programació paral·lela, aprendre a desenvolupar aplicacions amb memòria compartida, introduir el concepte de pas de missatges i aplicacions en memòria distribuida i analitzar els prestacions d’execució d’aquestes aplicacions.

Els conceptes teòrics sobre paradigmes de programació, memòria compartida i pas de missatges, es reforça amb les sessions de problemes i pràctiques en les que els i les alumnes aprenen a programar utilitzant llenguatges de programació paral·lela.

Tots el components descrits en aquesta assignatura han de permetre a l'alumne comprendre el funcionament dels sistemes d’altes prestacions i paral·lels i, fins a cert punt, ser capaç de realitzar un disseny senzill d’una aplicació paral·lela i avaluar les seves prestacions.


Competències

  • Avaluar de manera crítica i amb criteris qualitat el treball realitzat.
  • Dissenyar, desenvolupar i avaluar solucions algorísmiques eficients per a problemes computacionals d'acord amb els requisits establerts.
  • Implementar i optimitzar aplicacions basades en les funcionalitats i estructura dels sistemes paral·lels, distribuïts i en núvol, i les xarxes de computadors i internet.
  • Que els estudiants hagin demostrat que comprenen i tenen coneixements en una àrea d'estudi que parteix de la base de l'educació secundària general, i se sol trobar a un nivell que, si bé es basa en llibres de text avançats, inclou també alguns aspectes que impliquen coneixements procedents de l'avantguarda d'aquell camp d'estudi.
  • Que els estudiants hagin desenvolupat aquelles habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia.
  • Que els estudiants sàpiguen aplicar els coneixements propis a la seva feina o vocació d'una manera professional i tinguin les competències que se solen demostrar per mitjà de l'elaboració i la defensa d'arguments i la resolució de problemes dins de la seva àrea d'estudi.
  • Utilitzar eficaçment la bibliografia i els recursos electrònics per obtenir informació.

Resultats d'aprenentatge

  1. Analitzar i avaluar arquitectures de computadors, incloent-hi plataformes paral·leles i distribuïdes, així com desenvolupar i optimitzar programari per a aquestes.
  2. Avaluar de manera crítica i amb criteris de qualitat el treball desenvolupat.
  3. Avaluar i analitzar la complexitat computacional de les solucions algorítmiques per poder desenvolupar i implementar aquella que garanteixi el millor rendiment.
  4. Conèixer i aplicar els principis fonamentals i les tècniques bàsiques de la programació paral·lela, concurrent i distribuïda.
  5. Desenvolupar i optimitzar programari per a les plataformes paral·leles i distribuïdes.
  6. Implementar solucions recursives a problemes de programació.
  7. Que els estudiants hagin demostrat que comprenen i tenen coneixements en una àrea d'estudi que parteix de la base de l'educació secundària general, i se sol trobar a un nivell que, si bé es basa en llibres de text avançats, inclou també alguns aspectes que impliquen coneixements procedents de l'avantguarda d'aquell camp d'estudi.
  8. Que els estudiants hagin desenvolupat aquelles habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia.
  9. Que els estudiants sàpiguen aplicar els coneixements propis a la seva feina o vocació d'una manera professional i tinguin les competències que se solen demostrar per mitjà de l'elaboració i la defensa d'arguments i la resolució de problemes dins de la seva àrea d'estudi.
  10. Seleccionar i utilitzar les estratègies de programació apropiades per a la resolució d'un problema donat.
  11. Utilitzar eficaçment la bibliografia i els recursos electrònics per obtenir informació.

Continguts

Tema 1: Introducció a sistemes d’altes prestacions. 

Repàs de C i integració de codi C amb Python. Concurrència: concepte, condicions de carrera, regió crítica i mecanismes d'exclusió mútua.

Introducció als sistemes d’altes prestacions,  sistemes paral·lels, multiprocessadors i multicomputadors. Execució d’aplicacions paral·leles en sistemes d’altes prestacions.

Tema 2: Introducció als sistemes i algoritmes paral·lels 

SIMD (Single Instruction, Multiple Data), MIMD (Multiple Instruction, Multiple Data). Models d'aplicacions paral·leles.

Disseny d’algorismes paral·lels. Exemples d’algorismes paral·lels. Desenvolupament d’algorismes paral·lels.

Tema 3: Programació paral·lela 

Paradigmes de programació paral·lela. Aplicacions basades en pas de missatges. Estàndard MPI (Message Passing Interface).  Aplicacions basades en memòria compartida. Estàndards OpenMP (Open Multiprocessing), OpenACC (Open Accelerators) i Cuda. Paral·lelisme en Python. Desenvolupament d’aplicacions paral·leles utilitzant MPI, OpenMP, OpenACC, Cuda i Python.

Tema 4: Anàlisis de prestacions

Anàlisis de prestacions de sistemes paral·lels. Avaluació de prestacions de sistemes paral·lels. Exemples d’eines d’avaluació de prestacions.

 

Metodologia

En el desenvolupament de l'assignatura es podran diferenciar quatre tipus d’activitats docents:

  • Classes teòriques: exposició a la pissarra de la part teòrica de cada tema del programa.  L'estructura típica d'una classe magistral d'aquest tipus serà la següent: en primer lloc es farà una introducció on es presentaran breument els objectius de l'exposició i els continguts a tractar. A continuació es desgranaran els continguts objecte d’estudi, incloent exposicions narratives, desenvolupaments formals que proporcionin els fonaments teòrics, i intercalant exemples, que il·lustrin l'aplicació dels continguts exposats. Finalment, el/la professor/a exposarà les conclusions dels continguts. Durant tot el curs hi hauran avaluacions continuades de grups de temes.
  • Classes pràctiques. Tots els temes aniran acompanyats d'una relació de problemes que l'alumne ha d'intentar resoldre. En aquest sentit, i a mida que l'alumne vagi progressant i aprofondint en els seus coneixements, aquests problemes seran poc a poc més complexos. Els seminaris seran el fòrum natural en el qual es podrà discutir en comú el desenvolupament del treball pràctic, aportant els coneixements que li falten a l'estudiant per portar-lo endavant. La missió de les classes pràctiques és fer de pont entre les classes  teòriques i classes en laboratori, que promourà la capacitat d'anàlisi i síntesi, el raonament crític, i que entrenarà l'estudiant en la resolució de problemes. Aquells que el/la professor/a consideri de major interès o en els que els/les alumnes trobin major dificultat seran corregits a la pissarra. Abans del començament de cada llista de problemes el/la professor/a podrà proposar una llista d’exercicis que els/les alumnes hauran de resoldre. 
  • Classes al laboratori. La part pràctica dels temes teòrics quedarà completada amb sessions de laboratori, on l'alumne desenvoluparà una sèrie de programes i haurà d'intentar resoldre un problema concret que rebrà al començar el temari. Alguns d’aquests exercicis s’hauran d’entregar a la classe en les dates específicades. Les pràctiques es desenvoluparan en grups de dos o tres alumnes. Les classes inclouen un mínim de 6 sessions al laboratori, de 2 hores de durada, on l’alumne realitzarà el desenvolupament dels exercicis.
  • Realització de treballs. Durant el curs, els estudiants en grups de dos o tres alumnes realitzarà un treball. Cada grup redactarà o millorarà un article de la Viquipèdia d'un tema relacionat amb l'assignatura. Amb aquest exercici es busca que l'estudiant sigui capaç de presentar per escrit temes relacionats amb el còmput d'altes prestacions per a una audiència genèrica.

Aquest plantejament del treball està orientat a promoure un aprenentatge actiu i a desenvolupar les competències de capacitat d'organització i planificació, comunicació oral i escrita, treball en equip i raonament crític. La qualitat dels exercicis realitzats, de la seva presentació i del seu funcionament es valorarà especialment.

Competències transversals:

Com s'ha mencionat abans, l'assignatura inclou com activitat docent la realització d'un treball que consisteix en el desenvolupament d'un article a la Vikepèdia i està orientat a comunicar eficientment per escrit, coneixements, resultats i habilitats, tant en entorns professionals com davant de públics no experts, fent un ús eficient deles TIC en la comunicaciói la transmissió d'idees

Els estudiants disposen de material pel desenvolupament d'articles a la Viquipèdia (que inclou la pàgina del Viquiprojecte: Còmput d'altes prestacions). Durant el semestre es un mínim d'una reunió amb els grups per discutir i avaluar l'evolució del treball.

La gestió de la docència de l'assignatura es farà a través del Campus Virtual, que servirà per poder veure els materials, gestionar els grups de pràctiques, fer els lliuraments corresponents, veure les notes, comunicar-vos amb els professors, etc.

 

 

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      
Pràctiques de Laboratori 10 0,4 1, 2, 3, 4, 5, 6, 9, 10, 11
Seminaris de Problemes 11 0,44 1, 2, 3, 4, 5, 6, 7, 9, 10, 11
Teoria 24 0,96 1, 3, 4, 7, 8, 11
Tipus: Autònomes      
Estudiants autònom 30 1,2 1, 3, 4, 8, 9, 10, 11
Preparació dels laboratoris 30 1,2 1, 2, 3, 4, 5, 6, 9, 10, 11
Preparación de seminaris 30 1,2 1, 2, 3, 4, 5, 6, 9, 10, 11

Avaluació

L'objectiu del procés d'avaluació és verificar que l'alumne ha assolit els coneixements i habilitats definits en els objectius de l'assignatura, així com les competències.

S’avaluaran quatre tipus d’activitats de manera independent on la suma ponderada d’elles donarà la nota final. Aquestes activitats són:

  1. Teoria (T)
  2. Resolució de les pràctiques de laboratori (PL)
  3. Realització d'exercicis pràctics (PA)
  4. Redacció d'un artícle de la Viquipèdia (VA)

La part de Teoria (T) s’avaluarà amb dos controls parcials individuals durant tot el curs.  La nota final de Teoria sortirà de la suma ponderada dels dos controls (0.5*Control 1 + 0.5*Control 2). Hi haurà una segona oportunitat per recuperar aquesta part el dia que tenim assignat a la setmana de exàmens de febrer. Es podran recuperar les parts que no hagin estat superades en els controls parcials de teoría (no es pot fer servir la recuperació per pujar nota). La nota mínima per aprovar aquesta part és 5.

La part de Resolució de pràctiques de laboratori (PL) s’avaluarà de manera grupal. Té quatre lliuraments. La nota final sortirà de la suma ponderada dels quatre lliuraments (X0*Lliurament 1 + X1*Lliurament 2 + X2*Lliurament 3 + X3*Lliurament 4, X0 + X1 + X2 + X3= 1). Per aprovar les PL la nota mínima haurà de ser 5. Només hi ha una única oportunitat (no es pot recuperar aquesta part).

La part de Redacció d'un article a la Viquipèdia (VA) s’avaluarà de manera grupal. Cada grup tindrà un tema relacionat als continguts de l'assignatura per desenvolupar a la Vikipèdia (pot ser que l'article ja existeixi o sigui de nova creació). L'article s'anirà desenvolupant durant el curs i es discutirà amb el responsable de l'assignatura i els membres del grup en hores de tutoria. La nota de cada membre del grup es determinarà per la qualitat de l'article i participació en la discussió. Només hi ha una única oportunitat (no es pot recuperar aquesta part). En conseqüència, en cas de que un alumne no tingui nota de revisió de l'article, no podrà optar a l'excel·lent en la recuperació.

Els exercicis pràctics  (PA) consistiran en treballar problemes de programació molt concrets alguns d'ells relacionats amb els que es trobaran a les pràctiques de laboratori.  El valor d'aquests exercicis és del 30% de la nota final i donada la seva naturalesa i objectiu no són recuperables.

La nota final de l'assignatura serà la suma ponderada de les notes de cadascuna de les quatre activitats: 30% de Teoria, 10% Redacció d'un article a la Viquipèdia, 30% Resolució d'exercicis pràctics individuals i 30% de Resolució de pràctiques de laboratori. El resultat per superar-la haurà de ser >= 5.

En cas de no superar l'assignatura per no arribar a la puntuació mínima en algun dels apartats (Teoria o Pràctiques de Laboratori), tot i que al fer la mitjana ponderada la nota final fos igual o superior a 5, la nota que es posarà a l'expedient serà de 4,5. 

En cas de que la mitjana no arribi a 5 la nota que figurarà a l'expedient serà la nota mitjana obtinguda numèricament.

Si l'alumne entrega qualsevol activitat, s’entén que es presenta a l'assignatura i serà avaluat/da. Si no entrega cap activitat, llavors es pot considerar No avaluable.

Atorgar una qualificació de matrícula d’honor és decisió del professorat responsable de l’assignatura. La normativa de la UAB indica que lesMH només es podran concedir a estudiants que hagin obtingut una qualificació final igual o superior a 9.00. Es pot atorgar fins a un 5% de MH del total d'estudiants matriculats.

Les dates d'avaluació continuada i lliurament de treballs es publicaran al campus virtual i poden estar subjectes a possibles canvis de programació per motius d'adaptació a possibles incidències; sempre s'informarà al campus virtual sobre aquests canvis ja que s’entén que el CV  és el mecanisme habitual d'intercanvi d'informació entre el professorat i els/les estudiants.

Per a cada activitat d’avaluació, s’indicaràun lloc, data i hora de revisió en la que l'estudiant podrà revisar l’activitat amb el/la professor/a. En aquest context, 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.

RESUM

Si ( (T>=5) i (P>=5) aleshores

       NF = 0.3*T  +  0.3*PA + 0.3*PL + 0.1*VA 

       Si  (NF>=5) aleshores APROVAT

       Sino SUSPES

Sino SUSPES

Estudiants repetidors: Els alumnes repetidors o repetidores que tinguin aprovades les pràctiques de laboratori poden demanar la convalidació d'aquesta part de l'assignatura. La resta d'activitats d'avaluació hauran de fer-les en les mateixes condicions que els/les altres estudiants.

Nota sobre plagis:

Sense perjudici d'altres mesures disciplinàries que s'estimin oportunes, id'acord amb la normativa acadèmica vigent, les irregularitats comeses per un o una estudiantque puguin conduir a una variació de la qualificació en una activitat avaluable es qualificaran amb un zero (0). 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. Aquestes irregularitats inclouen, entre d'altres:

  • la còpia total o parcial d'una pràctica, informe, o qualsevol altra activitat d'avaluació;
  • deixar copiar;
  • presentar un treball de grup no fet íntegrament pels i les membres del grup (aplicat a tots els i les membres, no solament als que no han treballat);
  • presentar com a propis materials elaborats per un tercer, encara que siguin traduccions o adaptacions, i en general treballs amb elements no originals i exclusius de l'estudiant;
  • tenir dispositius de comunicació (com telèfons mòbils, smart watches, bolígrafs amb càmera, etc.) accessibles durant les proves d'avaluació teorico-pràctiques individuals (exàmens);
  • parlar amb companys o companyes durant les proves d'avaluació teorico-pràctiques individuals (exàmens);
  • copiar o intentar copiar d'altres alumnes durant les proves d'avaluació teorico-pràctiques (exàmens);
  • usar o intentar usar escrits relacionats amb la matèria durant la realització de les proves d'avaluació teorico-pràctiques (exàmens), quan aquests no hagin estat explícitament permesos. 

En cas de no superar l'assignatura degut a que alguna de les activitats d'avaluació no arriba a la nota mínima requerida, la nota numèrica de l'expedient serà el valor menor entre 4.5 i la mitjana ponderada de les notes. Amb lesexcepcions de que s'atorgarà la qualificació de "No Avaluable" als i les estudiants que no participin en cap de les activitats d'avaluació, i de que la nota numèrica de l'expedient serà el valor menor entre 3.0 i la mitjana ponderada de les notes en cas que l'estudiant hagi comès irregularitats en un acte d'avaluació (i per tant no serà possible l'aprovat per compensació). En edicions futures d'aquesta assignatura, a l'estudiant que hagi comès irregularitats en un acte d'avaluació no se li convalidarà cap de les activitats d'avaluació realitzades. 

En resum: copiar, deixar copiar o plagiar(o l'intent de) en qualsevol de les activitats d'avaluació equival a un SUSPENS, no compensable i sense convalidacions de parts de l’assignatura en cursos posteriors.


Activitats d'avaluació continuada

Títol Pes Hores ECTS Resultats d'aprenentatge
1r Control individual 15% 2 0,08 3, 6, 7, 8, 9, 10
2n Control individual 15% 2 0,08 1, 3, 4, 5, 7, 8, 9, 10
Avaluació de seminaris de problemes 30% 6 0,24 1, 2, 3, 4, 5, 6, 10, 11
Pràctiques de Laboratori 30% 4 0,16 1, 2, 3, 4, 5, 6, 8, 9, 10, 11
Vikipèdia 10% 1 0,04 9, 11

Bibliografia

 

  • Parallel Programming Concepts and Practice. Bertil Schmidt, Jorge González-Domínguez, Christian Hundt, Moritz Schlarb. Morgan Kaufmann, 2018
  • An Introduction to Parallel Programming, 2nd edition. Peter S. Pacheco. Morgan Kaufmann. 2018
  • Programming Massively Parallel Processors, A Hands-on Approach. David B. Kirk, Wen-mei W. Hwu. Morgan Kaufmann. 3th Edition. 2018
  • Computer Architecture. A quantitative approach. John L. Hennessy, David A. Patterson. Morgan Kaufmann. 6a edición. 2018
  • Introduction to Parallel Computing. A. Grama et alter. Addison Wesley, Second Edition, 2003.
  • Parallel Program Development For Cluster Computing: Methodology, Tools and Integrated  Environments. Edited by J. C. Cunha, P. Kacsuk, S. C. Winter. Nova Science Publishers, Inc., 2001.
  • Parallel Programming with MPI, Peter Pacheco, Morgan Kauffman, 1996
  • OpenACC Programming and Best Practices Guide (https://www.openacc.org/sites/default/files/inline-files/OpenACC_Programming_Guide_0.pdf)

 

 

 

Programari

En aquest curs treballareu sobre clusters pròpis del Departament d'Arquitectura de Computadors i Sistemes Operatius, en conseqüència, necessitareu un client ssh per realitzar les connexions (integrat en qualsevol computador amb sistema operatiu Linux) i és molt recomable l'ús d'un entorn de desenvolupament que permeti la connexió remota (com el MobaXTerm per Windows  [https://mobaxterm.mobatek.net/] o el Visual Studio Code per totes les plataformes [https://code.visualstudio.com/]).