Paral·lelisme i Sistemes Distribuïts

Esteu aquí

Crèdits
6
Tipus
Obligatòria
Requisits
Aquesta assignatura no té requisits, però té capacitats prèvies
Departament
AC
Mail
El curs pretén que l'estudiant prengui consciència que avui en dia l'anàlisi de dades que la majoria d'empreses realitzin, requereixen d'avançades plataformes d'execució que ofereixin una computació a gran escala i d'alt rendiment basada en sistemes paral·lel i distribuïts, disponibles a través de les pròpies empreses o través de l'ampli ventall de proveïdors de serveis de Cloud Computing.

Aquest curs proporcionarà a l'estudiant els fonaments, i l'introduirà en l'ús d'aquests sistemes de computació paral·lela i distribuïda actuals per donar suport als entorns d'anàlisi de dades que requereixen als científics i enginyers de dades. L'alumne comprendrà el continu desenvolupament d'aquests sistemes que permeten la convergència dels algoritmes d'anàlisi avançats i les tecnologies de computació relacionades.

Les classes és complementen amb exercicis de programació en base a problemes habituals del científic de dades i avaluar els solucions, usant sistemes paral·lels i distribuïts a l'abast de tothom. Gràcies als serveis de computació i anàlisi d'alt rendiment . D'aquesta, manera l'alumne podrà dissenyar experiments que siguin realistes.

Un dels objectius finals de l'assignatura és encoratjar els estudiants a voler ser actors i no espectadors d'aquesta profunda transformació de l'analítica d'alt rendiment que s'està produint i procurar estimular el seu desig de voler aprofundir més en aquest apassionant món de la tecnologia, més enllà de l'assignatura.

Professors

Responsable

  • Julita Corbalan Gonzalez ( )

Altres

  • Yolanda Becerra Fontal ( )

Hores setmanals

Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0
Aprenentatge autònom
4

Competències

Competències Tècniques

Competències tècniques

  • CE4 - Utilitzar els sistemes de computació actuals, inclosos els sistemes d'alt rendiment, per al procés de grans volums de dades des del coneixement de la seva estructura, funcionament i particularitats.

Competències Transversals

Transversals

  • CT4 - Treball en equip. Ser capaç de treballar com a membre d'un equip interdisciplinari, ja sigui com un membre més o realitzant tasques de direcció, amb la finalitat de contribuir a desenvolupar projectes amb pragmatisme i sentit de la responsabilitat, assumint compromisos tenint en compte els recursos disponibles.
  • CT5 - Ús solvent dels recursos d'informació. Gestionar l'adquisició, l'estructuració, l'anàlisi i la visualització de dades i informació en l'àmbit de l'especialitat i valorar de forma crítica els resultats d'aquesta gestió.
  • CT6 - Aprenentatge autònom. Detectar deficiències en el propi coneixement i superar-les mitjançant la reflexió crítica i l'elecció de la millor actuació per ampliar aquest coneixement.
  • CT7 - Tercera llengua. Conèixer una tercera llengua, preferentment l'anglès, amb un nivell adequat oral i escrit i d'acord amb les necessitats que tindran els titulats i titulades.

Bàsiques

  • CB1 - Que els estudiants hagin demostrat posseir i comprendre 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 recolza en llibres de text avançats, inclou també alguns aspectes que impliquen coneixements procedents de l'avantguarda del seu camp d'estudi.
  • CB2 - Que els estudiants sàpiguen aplicar els seus coneixements al seu treball o vocació d'una manera professional i posseeixin les competències que solen demostrar-se mitjançant l'elaboració i defensa d'arguments i la resolució de problemes dins la seva àrea d'estudi.
  • CB5 - Que els estudiants hagin desenvolupat aquelles habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia

Competències Tècniques Generals

Genèriques

  • CG1 - Concebre sistemes computacionals que integren dades de procedències i formes molt diverses, construeixen amb ells models matemàtics, raonen sobre aquests models i actuen en conseqüència, aprenent de l'experiència.
  • CG2 - Elegir i aplicar els mètodes i tècniques més adequats a un problema definit per dades que representin un repte pel seu volum, velocitat, varietat o heterogeneïtat, inclosos mètodes informàtics, matemàtics, estadístics i de processament del senyal.
  • CG4 - Identificar oportunitats per a aplicacions innovadores orientades a dades en entorns tecnològics en contínua evolució.

Objectius

  1. Conèixer els fonaments dels sistemes paral·lels i distribuïts actuals
    Competències relacionades: CG1, CB1,
  2. Coneixer i saber usar els elements bàsics que conformen els sistemes paral·lels i distribuïts
    Competències relacionades: CT4, CT6, CT7, CB2,
  3. Familiaritzar-se amb els models de programació més habituals dels sistemes paral·lels i distribuïts
    Competències relacionades: CE4, CT5, CB5,
  4. Coneixer i poder triar convenientment quin els entorns d'analítica avançada que usen sistemes distribuïts i parallel
    Competències relacionades: CE4, CG2, CG4,
  5. Us pràctic per diferents problemes plantejats dels entorns cloud, sistemes paral.lels i distribuïts disponibles actualment per a un enginyer i científic de dades
    Competències relacionades: CE4, CT4, CT6, CG1, CB2,

Continguts

  1. Fonaments de supercomputació paral·lela i distribuïda
    En aquest tema, els alumnes aprendran conceptes bàsics de la computació paral·lela així com mètriques que els ajudaran a avaluar tant el rendiment dels seus programes com els límits derivats de la pròpia estructura de l'aplicació.
  2. Arquitecturas paralel.les i distribuïdes
    En aquest tema, els estudiants aprenen les principals característiques de les arquitectures paral·leles i distribuïdes que poden influir en el disseny dels seus programes d'anàlisi de dades o d'entendre el rendiment (o pèrdua de rendiment) d'aquests.
  3. Entorns d'execució de computació paral·lela i anàlisi de dades
    En aquest tema els alumnes aprendran els diferents entorns que principalment poden trobar-se al executar tants les aplicacions de generar dades com les que els emmagatzemen o analitzen. Es farà èmfasi en les diferències entre els tres entorns i en impacte que pot tenir en l'eficiència de les seves aplicacions.
  4. Models de programació per a supercomputadors
    En aquest tema els alumnes veuran els principis bàsics dels models de programació més utilitzats en els entorns HPC: MPI, OpenMP i models híbrids MPI + OpenMP. Es donaran les eines per detectar i gestionar els principals detalls que puguin afectar tant la robustesa dels seus programes com a l'eficiència.

    També s'introduiran models orientats a coprocessadors que ofereixin un bon rendiment vs. eficiència. Consum d'energia i molt usat en l'anàlisi de dades.
  5. New programari requirements for advanced analytics
    En aquest tema, els estudiants veuran amb més detall les característiques dels models de programació i entorns d'execució per a l'emmagatzematge i l'anàlisi de dades. El model Apache Spark / Hadoop s'utilitzarà com a referència, com a referència per a l'emmagatzematge de dades Cassandra i com a eines d'anàlisi TensorFlow / keras.
  6. Machine Learning en Supercomputadors: Cas d'us basat en Spark/Cassandra/TensorFlow
    En aquest tema aprofundirem en un entorn de Machine learning utilitzant com a referència el model Apache Spark, com DB key / value Cassandra i com a eina d'anàlisi TensorFlow. S'explicaran els elements més importants d'aquests tres components que puguin afectar en major mesura tant al disseny d'aplicacions de machine learning com l'emmagatzematge de dades i anàlisi.
  7. Sessions de laboratori
    Les sessions de laboratori s'agruparan en dos projectes que s'aniran realitzant tant en les sessions de laboratori com en treball autònom. Els dos projectes estaran relacionats amb la programació, anàlisi i optimització d'un cas el més realista possible en dos entorns: entorns d'execució paral·lel (mpi + OpenMP, sistemes de cues, etc), utilitzats per generar i post-processar dades, i entorns específics de gestió i anàlisi de dades com és Apache Stark + Cassandra + TensorFlow.

Activitats

Activitat Acte avaluatiu


Introducció de l'assignatura

Durant aquesta activitat s'explicaran els objectius, continguts, i funcionament de l'assignatura

Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h

Desenvolupament del tema "Fonaments de supercomputació paral·lela i distribuïda"

En aquest tema, els alumnes aprendran conceptes bàsics de la computació paral·lela així com mètriques que els ajudaran a avaluar tant el rendiment dels seus programes com els límits derivats de la pròpia estructura de l'aplicació.
Objectius: 1
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Desenvolupament del tema "Arquitecturas paralel.les i distribuïdes"

En aquest tema, els estudiants aprenen les principals característiques de les arquitectures paral·leles i distribuïdes que poden influir-les en el disseny dels seus programes d'anàlisi de dades i entendre el rendiment (o pèrdua de rendiment) d'aquests : Es veuran, per exemple característiques de sistemes amb arquitectura multi-core, hyperthreading, memoria compartida-distribuida, localitat de dades temporal-espacial, tipus storage (local, remoto), tipologia xarxes, etc.
Objectius: 1 2
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Desenvolupament del tema "Entorns d'execució de computació paral·lela i anàlisi de dades"

En aquest tema els alumnes aprendran els diferents entorns que principalment poden trobar-se al executar tants les aplicacions de generar dades com les que els emmagatzemen o analitzen. Es farà èmfasi en les diferències entre els tres entorns i en impacte que pot tenir en l'eficiència de les seves aplicacions. Entorno de ejecucion con colas para HPC, cloud computing para DA. Durant aquest tema es dividirà en entorns HPC i entorns d'anàlisis de dades (DA). També es faran exercicis de problemes durant les classes de teoria.
Objectius: 2 4
Continguts:
Teoria
6h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Desenvolupament del tema "Models de programació per a supercomputadors"

En aquest tema els alumnes veuran els principi bàsics dels models de programació més utilitzats en els entorns HPC: MPI, OpenMP i models híbrids MPI + OpenMP. Es donaran les eines per detectar i gestionar els principals detalls que puguin afectar tant la robustesa dels seus programes com a l'eficiència. També s'introduiran models orientats a coprocessadors que ofereixin un bon rendiment vs. eficiència. Consum d'energia i molt usat en l'anàlisi de dades.
Objectius: 3
Continguts:
Teoria
6h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Desenvolupament del tema "New programari per anàlisi de dades"

En aquest tema, els estudiants veuran amb més detall les característiques dels models de programació i entorns d'execució per a l'emmagatzematge i l'anàlisi de dades. El model Apache Spark / Hadoop s'utilitzarà com a referència, com a referència per a l'emmagatzematge de dades Cassandra i com a eines d'anàlisi TensorFlow / keras.
Objectius: 4
Continguts:
Teoria
7h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
7h

Desenvolupament del tema "Machine Learning en Supercomputadors: Cas d'us basat en Spark/Cassandra/TensorFlow"

En aquest tema aprofundirem en un entorn de Machine learning utilitzant com a referència el model Apache Spark, com DB key / value Cassandra i com a eina d'anàlisi TensorFlow. S'explicaran els elements més importants d'aquests tres components que puguin afectar en major mesura tant al disseny d'aplicacions de machine learning com l'emmagatzematge de dades i anàlisi.
Objectius: 5
Continguts:
Teoria
4h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h

Sesions de laboratori i entregables: Execució d'applicacions HPC, Generació de dades en entorns HPC, enmagatzematge i anàlis de dades en contexte de DA (Data Analytics)

Aquest projecte seguirà el fluxe natural de les dades, des de la paral.lelització , execució, i avaluació de codis que generen dades,tradicionalment en un entorn HPC, passant per l'enmagatzematge i el posterior anàlisis amb els nous entorns d'execució per aquest tipus de problemes.
Objectius: 2 3 4 5
Continguts:
Teoria
0h
Problemes
0h
Laboratori
28h
Aprenentatge dirigit
0h
Aprenentatge autònom
28h

Metodologia docent

Durant el curs hi haurà quatre tipus d'activitats:

a) Activitats orientades a l'adquisició de coneixements teòrics. Les activitats teòriques inclouen classes de classes participatives, que expliquen els continguts bàsics del curs.

b) Les activitats es centren en l'adquisició del coneixement a través de l'experimentació mitjançant l'enfocament "aprenent per fer" en sessions de laboratori guiades per pràctiques (i informe final). Algunes sessions poden incloure treball previ o a fer després de les sessions depenent de
l'aprofitament dels laboratoris.

c) Poques sessions durant les classes teòriques on es realitzaran exercicis pràctics per realitzar avaluacions numèriques i anàlisi per a l'avaluació del rendiment

d) Dos informes dels exercicis que es duran a terme als laboratoris relacionats amb entorns i aplicacions HPC i amb entorns d'anàlisi de dades

Mètode d'avaluació

L'avaluació de l'assignatura sortirà de tres components:

- Exàmen parcial: 40%
- Exàmen final: 40%
- Laboratori: 20%.

La nota de laboratori sortirà de l'avaluació dels entregables de laboratori
El primer parcial elimina materia (si nota >= 5.0)

La nota serà 0.2*lab+0.4*final+0.4*parcial.

Reavaluació: Només aquells/es que hagin suspès podran presentar-se a l'examen de Reavaluació (examen només de teoria). En aquest cas, la nota final de l'assignatura serà:

Nota Final: Maxim(Exàmen reavaluació*0.8, Examenparcial*0,4+ExamenFinal*0.4)+laboratori*0.2

Bibliografia

Bàsica:

  • Hand-on sessions at GitHub - TORRES, Jordi,
  • Slides of the course - Torres, J, UPC,
  • Understanding supercomputing: with Marenostrum Supercomputer in Barcelona - Torres, J, Universitat Politècnica de Catalunya, Barcelona Supercomputing Center, 2016. ISBN: 9781365376825
    http://cataleg.upc.edu/record=b1490214~S1*cat
  • Hello world en TensorFlow - Torres, J, Universitat Politècnica de Catalunya, Barcelona Supercomputing Centrer, 2016. ISBN: 9781326532383
    http://cataleg.upc.edu/record=b1472879~S1*cat
  • Introducción a Apache Spark: para empezar a programar el big data - Macias, M.; Gómez, M.; Tous, R.; Torres, J, UOC, 2015. ISBN: 9788491160373
    http://cataleg.upc.edu/record=b1467894~S1*cat
  • Articles from Technical Journals in the area - ,

Complementaria:

Capacitats prèvies

C i Python són els llenguatges de programació triats per a les sessions de laboratori d'aquest curs. Se suposa que l'alumne té un coneixement bàsic de Python i C abans de començar les classes.