Logo

Sistemes Distribuïts

Codi: 44212
Crèdits: 6
2026/2027
Titulació Tipus Curs
Modelling for Science and Engineering OP 1

Professor/a de contacte

Nom :
Eduardo Cesar Cabrera Flores
Correu electrònic :
eduardocesar.cabrera@uab.cat

Equip docent

Daniel Franco Puntes

Idiomes dels grups

Podeu consultar aquesta informació al final del document.

Prerequisits

Es recomana tenir coneixements de programació en Python o qualsevol altre llenguatge de programació d’alt nivell i conèixer l'ús de sistemes Linux per projectes de desenvolupament.

Objectius

Els objectius del mòdul són els següents:

  • Donar solucions a problemes d'anàlisi amb eines de codi obert com ara Linux i eines de middleware pròpies d'aquest sistemea operatiu.
  • Entendre les limitacions de les eines de gestió de dades per seleccionar les eines necessàries per a un determinat problema.
  • Aprendre metodologies de consulta a gestors de dades de cada tecnologia
  • Utilitzar eines de Cloud Computing per solucionar problemes d'anàlisi de dades
  • Aplicar una metodologia d'anàlisi de dades per resoldre problems pràctiques

Al final de les sessions de teoria i de laboratori els estudiants haurien de tenir suficients coneixements per entendre els requeriments de un problema d'anàlisi de dades en un contexte acadècmic o industrial. Haurien de poder triar una combinació d'eines i dissenyar una solució per a un problema de dades concret. L'assignatura està orientada a adquirir coneixements de resolució de problemes de dades. Es descriuen llenguatges, eines i tècniques en un context d'anàlisi de dades i els estudiants resoldran una llista de problemes de dades aplicant la tecnologia descrita a cada capítol.


Resultats d'aprenentatge

  • CA24 (Aplicar les eines computacionals de l’anàlisi de les grans bases de dades a la resolució de problemes en l’àmbit industrial o de la recerca.) Aplicar les eines computacionals de l’anàlisi de les grans bases de dades a la resolució de problemes en l’àmbit industrial o de la recerca.
  • CA25 (Integrar les eines computacionals de l’anàlisi de les grans bases de dades en entorns de treball multidisciplinaris.) Integrar les eines computacionals de l’anàlisi de les grans bases de dades en entorns de treball multidisciplinaris.
  • CA26 (Treballar en equips multidisciplinaris amb l’objectiu de desenvolupar projectes on s’apliquin les tècniques d’anàlisi de grans bases de dades.) Treballar en equips multidisciplinaris amb l’objectiu de desenvolupar projectes on s’apliquin les tècniques d’anàlisi de grans bases de dades.
  • KA19 (Caracteritzar l'estructura i el rendiment de les diferents arquitectures i estructures d'organització o gestió de bases de dades.) Caracteritzar l'estructura i el rendiment de les diferents arquitectures i estructures d'organització o gestió de bases de dades.
  • KA20 (Descriure les eines de computació en el núvol utilitzades per a l’anàlisi de dades i avaluar-ne els avantatges i les limitacions.) Descriure les eines de computació en el núvol utilitzades per a l’anàlisi de dades i avaluar-ne els avantatges i les limitacions.
  • SA24 (Fer servir programari específic en la resolució de problemes de tractament de dades en sistemes distribuïts.) Fer servir programari específic en la resolució de problemes de tractament de dades en sistemes distribuïts.
  • SA25 (Desenvolupar aplicacions informàtiques encaminades a modelitzar un procés concret mitjançant sistemes distribuïts i avaluar-ne el rendiment computacional.) Desenvolupar aplicacions informàtiques encaminades a modelitzar un procés concret mitjançant sistemes distribuïts i avaluar-ne el rendiment computacional.
  • SA26 (Interpretar els informes i resultats que ofereix l’anàlisi d’una base de dades concreta.) Interpretar els informes i resultats que ofereix l’anàlisi d’una base de dades concreta.

Continguts

T1: Introduction to Distributed Systems and large data processing systems (2 hours)


T2: Cloud computing (2 hours)

  • Introduction to cloud computing
  • Data analysis with a cloud computing provider: AWS / Azure


T3: Cluster and supercomputer infrastructures (14 hours)

  • Principles of job execution under batch queue systems (SLURM).
  • Advanced control of jobs: array jobs, dependencies, process binding, heterogeneous resources (GPUs)
  • Creation of large jobs and workflows
  • Virtualization and environments


T4: Cloud Networking and Virtual Private Clouds (8 hours)

  • Intro to VPC
  • Build our VPC and launch a web server tutorial
  • VPC Lab


T5: Fault tolerance systems (4 hours)

  • Availability zones
  • Load balancing and autoscaling tutorial
  • ELB Lab


T6: Database Cloud project: relational and DynamoDB implementations (8 hours)

  • Intro to RDS and DynamoDB
  • Build a database server tutorial
  • Distributed database Lab


T7: Serverless services and Lambda (2 hours)

  • Intro to Lambda services and serverless computing
  • Lambda tutorial
  • Lambda Lab

Activitats formatives i Metodologia

Títol Hores ECTS Resultats d'aprenentatge
Laboratori 24 0,96 CA24, CA25, SA24
Teoria 38 1,52 KA19, KA20, SA25
Desenvolupament d'exercicis pràctics 62 2,48 CA26, SA26

El desenvolupament de l’assignatura es basarà fonamentalment en el concepte d’"aprendre fent". Hi haurà sessions teòriques inicials per a cada tema, on el profesor presentarà els conceptes claus i es proporcionarà als estudiants materials d’estudi complementaris (llibres, recursos didàctics on-line, articles i altra documentació tècnica). Amb aquesta informació, els estudiants treballaran a les sessions pràctiques en la resolució d’exercicis i petits projectes de forma individual o en grups de dues persones. Els alumnes elaboraran informes escrits sobre el treball pràctic realitzat en cada tema.



Nota: es reservaran 15 minuts d'una classe, dins del calendari establert pel centre/titulació, perquè l'alumnat completi les enquestes d'avaluació de l'actuació del professorat i d'avaluació de l'assignatura.

Avaluació

Activitats d'avaluació continuada

Títol Pes Hores ECTS Resultats d'aprenentatge
Laboratori Infrastructura 30% 6 0,24 CA24, CA26, SA25, SA26
Lambda Lab 10% 4 0,16 CA26, KA20, SA25, SA26
RDS Lab 20% 6 0,24 CA25, CA26, SA25, SA26
ELB Lab 20% 6 0,24 CA26, SA24, SA25, SA26
VPC Lab 20% 4 0,16 CA26, KA19, SA25, SA26

L'avaluació de l'assignatura es realitzarà amb la combinació del treball desenvolupat en les sessions de laboratori i l'entrega dels corresponents informes.


Per a aquesta assignatura, es permet l'ús de tecnologies d'Intel·ligència Artificial (IA) exclusivament en tasques de suport, com la cerca bibliogràfica o d’informació, la

correcció de textos o les traduccions, en les activitats específiques que es determinaran en el seu moment. L'estudiant haurà d'identificar clarament quines parts han estat generades amb aquesta tecnologia, especificar les eines emprades i incloure una reflexió crítica sobre com aquestes han influït en el procés i el resultat final de l’activitat. La no transparència de l’ús de la IA en aquesta activitat avaluable es considerarà falta d'honestedat acadèmica i pot comportar una penalització parcial o total en la nota de l'activitat, o sancions majors en casos de gravetat.

Bibliografia

Tanenbaum, Andrew S., Steen, Maarten van. “Distributed systems: principles and paradigms“ , Prentice Hall, 2nd edition, 2006.

Martin Kleppmann. “Designing Data-Intensive Applications“. O'Reilly, 2017.

A. Wittig, M. Wittig. “Amazon Web Services in Action“, Manning, 2nd Edition, 2018.

Coulouris, George F; J. Dollimore and T. Kindberg, “Distributed Systems: concepts and design“, Addison-Wesley, 5th edition, 2012.

Bell, Charles; Kindahl, Mats; Thalmann, Lars. “MySQL High Availability“. O'Reilly, 2010. recurs electrònic a la biblioteca de la UAB

Bell, Charles, “MySQL Database Service Revealed: Running MySQL as a Service in the Oracle Cloud Infrastructure“, Apress, 1st edition, 2023. recurs electrònic a la biblioteca de la UAB

Chang, Fay, et al. “Bigtable: A Distributed Storage System for Structured Data“, OSDI, 2006

Dewitt, David, and Jim Gray. “Parallel Database Systems: The Future of High Performance Database Processing“, Communications of the ACM 35, no. 6 (1992): 85-98

Schwartz, Baron; Zaitsev, Peter; Tkachenko, Vadim; Zawodny, Jeremy D.; Lentz, Arjen; Balling, Derek J. “High Performance MySQL“, O'Reilly, 2008.

Seyed M. M. Tahaghoghi and Hugh E. Williams. “Learning MySQL“, O’Reilly, 2006

Nathan Haines. “Beginning Ubuntu for Windows and Mac Users”. Apress 2015. recurs electrònic a la biblioteca de la UAB

William E. Shotts. “The Linux Command Line”. Second Internet Edition. 2013. http://linuxcommand.org/tlcl.php

Dan C. Marinescu. “Cloud Computing. Theory and Practice”. Morgan-Kaufmann. 2018.

R. Buyya, R. N. Calheiros, A. V. Dastjerdi. “Big data. Principles and paradigms”. Morgan-Kaufmann. 2016.

Programari

En l'assignatura es treballarà amb les versions més actualitzades dels sistemes i eines:

-Linux

-SLURM

-Linux development environment

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