Eines i Models de Programació Paral·lela

Esteu aquí

Crèdits
6
Tipus
Complementària d'especialitat (Computació d'Altes Prestacions)
Requisits
Aquesta assignatura no té requisits
Departament
DAC
Aquest curs presenta els conceptes principals darrere dels models de programació paral·lels i la seva implementació. El curs analitza el paper del programador, el compilador, l'entorn d'execució i el sistema operatiu en la cerca d'entorns de programació productius i eficients en la seva implementació. El curs també presenta les eines necessàries per entendre el comportament de les aplicacions paral·leles quan s'executen en arquitectures de supercomputació actuals (basades en un conjunt de nodes de memòria distribuïda, cadascun construït a partir pels actuals xips amb múltiples nuclis i/o acceleradors). El curs serà molt pràctic amb tasques d'analisi i paral·lelització utilitzant diferents eines (Extrae, Paraver i DImemas) i models de programació (OpenMP, OmpSs, MPI o CUDA), endinsant-nos en la seva implementació.

Professors

Responsable

  • Jesus Jose Labarta Mancho ( )

Hores setmanals

Teoria
2
Problemes
0
Laboratori
1
Aprenentatge dirigit
0
Aprenentatge autònom
7

Competències

Competències Tècniques de cada especialitat

Computació d'altes prestacions

  • CEE4.2 - Capacitat d'analitzar, avaluar, dissenyar i optimitzar programari considerant l'arquitectura i de proposar noves tècniques d'optimització.
  • CEE4.3 - Capacitat d'analitzar, avaluar, dissenyar i administrar programari de sistema en entorns de supercomputació.

Competències Tècniques Generals

Genèriques

  • CG3 - Capacitat per al modelatge matemàtic, càlcul i disseny experimental en centres tecnològics i d'enginyeria d'empresa, particularment en tasques de recerca i innovació en tots els àmbits de la Informàtica.

Competències Transversals

Bàsiques

  • CB7 - Que els estudiants siguin capaços d'integrar coneixements i enfrontar-se a la complexitat de formular judicis a partir d'una informació que, essent incomplerta o limitada, inclogui reflexions sobre les responsabilitats socials i ètiques vinculades a l'aplicació dels seus coneixements i judicis.
  • CB9 - Que els estudiants posseeixin les habilitats d'aprenentatge que els permetin continuar estudiant d'una manera que haurà de ser en gran mesura autodirigida o autònoma.

Continguts

  1. Conceptes bàsics en programació paral·lela i anàlisi de rendiment.
    Coneixement previ necessari per a seguir el curs de programació paral·lela avançada. Problemes en la programació d'arquitectures multinucli. Introducció general de les principals tècniques i característiques bàsiques de les actuals eines en anàlisi de rendiment.
  2. Programació avançada de memòria compartida i distribuïda: OpenMP i MPI.
    Resum de les característiques bàsiques en OpenMP i MPI. Característiques avançades en OpenMP, MPI i programació híbrida.
  3. Programació avançada en fluxe dades i paradigmes innovadors en arquitectures basades en acceleradors.
    Paradigmes de flux de dades (OmpSs). Explotació del paral·lelisme en temps d'execució i ocultació de l'arquitectura. Programació paral·lela avançada utilitzant acceleradors: CUDA, OpenCL, OpenACC, ...
  4. Adquisició de dades i anàlisi de rendiment.
    Traceig d'aplicacions seqüencials i paral·leles. Processament de traces i anàlisi de rendiment.
  5. Models i predicció de rendiment.
    Models de rendiment paral·lel basats en traces. Paràmetres de l'arquitectura: CPU, memòria, interconnexió.
  6. Anàlisi i optimització d'aplicacions reals.
    Anàlisi de dues aplicacions grans (seqüencials i/o paral·leles) i optimització utilitzant paradigmes de programació híbrida (flux de dades, memòria compartida i distribuïda i acceleradors).

Metodologia docent

Per a la part dedicada a models de programació, classe teòriques per a entendre els conceptes darrere els models de programació paral·lela per a les arquitectures de supercomputació actuals. A això li seguirà una introducció general de les principals tècniques usades i les característiques bàsiques de les eines més importants. Les classes de laboratori començaran amb una introducció de les característiques avançades dels models de programació més utilitzats i l'ús d'eines en alguns exemples senzills. Després, l'estudiant s'enfrontarà a alguns codis relativament grans que hauran de ser analitzats amb les diferents eines i optimitzats utilitzant models de programació híbrids.

Mètode d'avaluació

L'avaluació del curs es basarà en una sèrie de treballs pràctics. Al menys dues aplicacions principals hauran de ser avaluades per cada estudiant. Al menys una de les aplicacions estarà en una àrea en la que l'estudiant no ha estat exposat. Es requerirà un informe detallat d'anàlisi dels “problemes” de rendiment de cada aplicació, incloent una quantificació detallada de la seva importància i suggeriments de maneres potencials de superar-los.