Programació i Arquitectures Paral·leles

Esteu aquí

Crèdits
6
Tipus
Complementària d'especialitat (Enginyeria de Computadors)
Requisits
  • Prerequisit: PAR
Departament
AC
En aquesta assignatura s'aprofundeix en els temes de paral·lelisme estudiats a l'assignatura PAR. En concret es treballen tres aspectes: 1) implementació d'un model de programació de memòria compartida tipus OpenMP, fent ús dels mecanismes oferts per una llibreria de threads de baix nivell (Pthreads) i la generació de codi per part d'un compilador (gcc); 2) disseny d'un clúster de memòria distribuïda a partir dels components bàsics: nodes multiprocessador/multicore, acceleradors, interfícies de xarxa i altres components per crear la xarxa d'interconnexió; i 3) estudiar un model de programació per arquitectures clúster (MPI).

Professors

Responsable

  • Eduard Ayguadé Parra ( )

Altres

  • Lluc Álvarez Martí ( )

Hores setmanals

Teoria
1
Problemes
1
Laboratori
2
Aprenentatge dirigit
0.4
Aprenentatge autònom
5.6

Competències

Competències Transversals

Actitud adequada davant el treball

  • G8 [Avaluable] - Tenir motivació per a la realització professional i per a afrontar nous reptes, tenir una visió àmplia de les possibilitats de la carrera professional en l'àmbit de l'enginyeria en informàtica. Sentir-se motivat per la qualitat i la millora contínua, i actuar amb rigor en el desenvolupament professional. Capacitat d'adaptació als canvis organitzatius o tecnològics. Capacitat de treballar en situacions de carència d'informació i/o amb restriccions temporals i/o de recursos.
    • G8.3 - Estar motivat pel desenvolupament professional, per a afrontar nous reptes i per la millora contínua. Tenir capacitat de treball en situacions de falta d'informació.

Competències Tècniques de cada especialitat

Especialitat enginyeria de computadors

  • CEC2 - Analitzar i avaluar arquitectures de computadors incloent plataformes paral·leles i distribuïdes, i desenvolupar i optimitzar software per a aquestes plataformes.
    • CEC2.1 - Analitzar, avaluar, seleccionar i configurar plataformes hardware per al desenvolupament i l'execució d'aplicacions i serveis informàtics.
    • CEC2.2 - Programar considerant l'arquitectura hardware, tant en assemblador com en alt nivell.

Competències Tècniques

Competències tècniques comunes

  • CT8 - Planificar, concebre, desplegar i dirigir projectes, serveis i sistemes informàtics en tots els àmbits, liderar-ne la posada en marxa, la millora contínua i valorar-ne l'impacte econòmic i social.
    • CT8.7 - Controlar versions i configuracions del projecte.

Objectius

  1. L'alumne ha de ser capaç d'escriure i entendre programes paral·lels usant la interfície de baix nivell Pthreads.
    Competències relacionades: CEC2.2,
  2. L'alumne ha de ser capaç de implementar les funcionalitats bàsiques en una llibreria que doni suport a l'execució paral·lela d'aplicacions en arquitectures de memoria compartida.
    Competències relacionades: CT8.7, CEC2.2, G8.3,
  3. L'alumne ha de ser capaç d'entendre els components bàsics que formen una arquitectura multiprocessador, aixi com fer-ne un disseny sobre paper que obeeixi a determinats criteris de disseny.
    Competències relacionades: CEC2.1, G8.3,
  4. L'alumne ha de ser capaç d'escriure aplicacions senzilles usant el model de programació MPI, avaluar-ne el rendiment, i detectar les parts crítiques que limiten l'escalabilitat.
    Competències relacionades: CEC2.2, G8.3,
  5. L'alumne ha de ser capaç d'avaluar la qualitat d'una solució proposada a un problema específic
    Competències relacionades: G8.3,
  6. L'alumne ha de ser capaç de complertar o ampliar els coneixements adquirits de forma autònoma i realitzar un treball específic tot i que l'enunciat sigui incomplert, o manqui informació rellevant per la seva implementació
    Competències relacionades: G8.3,

Continguts

  1. Programació paral·lela amb Pthreads
    Introducció a les funcionalitats bàsiques que ofereix la llaberia de suport de baix nivell Pthreads
  2. Implementació d'un model de programació de memòria compartida: threads i sincronització, repartiment de treball i model de tasques
    En aquest tema aprendrem com dissenyar i implementar una llibreria que doni suport a l'execució de programes paral·lels en OpenMP, en concret els mecanismes relacionats amb la gestió de threads i sincronització, el repartiment del treball en els OpenMP "worksharing constructs" i el model d'execució basat en tasques
  3. Components i disseny d'una arquitectura clúster
    En aquest tema es presentaran els components principals que formen una arquitectura clúster i farem un disseny en base a un compromís de potencia de càlcul, consum d'energia i cost.
  4. MPI: programació paral·lela per arquitectures de memòria distribuïda
    En aquest tema aprendrem a programar aplicacions paral·leles usant MPI, un model de programació basat en pas de missatges per arquitectures clúster de memòria distribuïda.

Activitats

Activitat Acte avaluatiu


POSIX threads (Pthreads)


Objectius: 1
Continguts:
Teoria
3h
Problemes
3h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Implementació d'un model de programació de memòria compartida

-
Objectius: 1 2 5 6
Continguts:
Teoria
4h
Problemes
4h
Laboratori
16h
Aprenentatge dirigit
0h
Aprenentatge autònom
30h

Components i disseny d'una arquitectura clúster

-
Objectius: 3 6
Continguts:
Teoria
4h
Problemes
4h
Laboratori
6h
Aprenentatge dirigit
4h
Aprenentatge autònom
20h

Altres models de programació paral·lela: MPI

-
Objectius: 4 5 6
Continguts:
Teoria
4h
Problemes
4h
Laboratori
8h
Aprenentatge dirigit
0h
Aprenentatge autònom
20h

Exàmen Final


Objectius: 1 2 3 4
Setmana: 15 (Fora d'horari lectiu)
Tipus: examen final
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
2h
Aprenentatge autònom
8h

Metodologia docent

Les classes de teoria introdueixen tots els coneixements, les tècniques, i els conceptes necessaris, usant exemples de codi reals o pseudo-codi. Les classes de teoria es complementen amb les classes de problemes, on es plantejaran i resoldran problemes exercicis pràctics. Al laboratori es posen en pràctica els continguts teòrics, i es fa una avaluació de comportament i rendiment de los solucions proposades.

L'assignatura contempla que part dels continguts teórics, o dels enunciats de laboratori, els haurà de desenvolupar l'estudiant de forma autònoma.

El curs está principalment centrat en les arquitectures clúster, utilitzant el llenguatge de programació C, la llibreria Pthreads i els models de programació OpenMP i MPI.

Mètode d'avaluació

La nota de l'assignatura es calcula a partir de 3 notes:
- Nota de continguts teòrics
- Nota de laboratori
- Nota d'autonomia i motivació

La nota de continguts teòrics (T) s'obté a partir dels lliuraments de problemes realitzats a classe i presentacions del treballs. En cas que un alumne no superi la part teórica (T < 5), haurà de fer un exàmen final; en aquest cas, la nova nota de continguts teòrics T s'obtindra com el màxim entre la nota d'avaluació continuada i la nota obtinguda en el examen final.

La nota de laboratori (L) s'obté a partir de les notes dels lliuraments i el seguiment de les sessions de pràctiques per part del professor.

La nota d'autonomia i motivació (A) avalua la capacitat de l'alumne per enfrontar-se a situacions de manca d'informació y la motivació d'anar més enllà del que es demana o per explorar temes adicionals. S'obté a partir del treball realitzat per l'alumne en aquelles pràctiques de laboratori on es requerixi cercar informació adicional y/o realitzar parts optatives/lliures.

La nota final es calcula F = T * 0.5 + L * 0.3 + A * 0.2.

Bibliografia

Bàsica:

Web links

Capacitats prèvies

Definides pels pre-requisits de l'assignatura

Addenda

Continguts

No hi ha modificacions respecte la Guia Docent.

Metodologia docent

No hi ha modificacions respecte la Guia Docent.

Mètode d'avaluació

No hi ha modificacions respecte la Guia Docent.

Pla de contingència

En cas de confinament, els laboratoris passaran a efectuarse de forma no presencial síncrona i les dues practiques de laboratori que es realitzen amb mini-clusters es realitzarien a boada sense alterar prácticament els objectius docents de l'assignatura.