Avís important
La guia docent és provisional.
La versió en PDF de la guia docent pot tardar uns dies en estar disponible al DDD.

Sistemes Distribuïts
Codi: 44212Crèdits: 6
| 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.
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 |