
Sistemes Distribuïts
Codi: 44212 Crèdits: 6| Titulació | Tipus | Curs |
|---|---|---|
| 4313136 Modelització per a la Ciència i l'Enginyeria / Modelling for Science and Engineering | OT | 0 |
Professor/a de contacte
- Nom:
- Miquel Àngel Senar Rosell
- Correu electrònic:
- miquelangel.senar@uab.cat
Equip docent
- Miquel Àngel Senar Rosell
- José Eduardo Cabrera Díaz
Idiomes dels grups
Podeu consultar aquesta informació al final del document.
Prerequisits
Es recomana tenir coneixements de programació en Python 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.
Competències
- Analitzar i avaluar arquitectures de computadors paral·lels i distribuïts, així com desenvolupar i optimitzar programari avançat per a les mateixes
- Participar en projectes de recerca i equips de treball en l'àmbit de l'enginyeria de la informació i el còmput d'altes prestacions.
- Que els estudiants sàpiguen comunicar les conclusions pròpies, i els coneixements i les raons últims que les sustenten, a públics especialitzats i no especialitzats d'una manera clara i sense ambigüitats.
- Que els estudiants sàpiguen comunicar les seves conclusions, així com els coneixements i les raons últimes que les fonamenten, a públics especialitzats i no especialitzats d'una manera clara i sense ambigüitats
- Que els estudiants sàpiguin aplicar els coneixements adquirits i la seva capacitat de resolució de problemes en entorns nous o poc coneguts dins de contextos més amplis (o multidisciplinaris) relacionats amb la seva àrea d'estudi.
- Que els estudiants tinguin les habilitats d'aprenentatge que els permetin continuar estudiant, en gran manera, amb treball autònom a autodirigit
- Tenir coneixements que aportin la base o l'oportunitat de ser originals en el desenvolupament o l'aplicació d'idees, sovint en un context de recerca
Resultats d'aprenentatge
- Aplicar diverses tècniques de tractament i anàlisi de les dades per preparar aquestes anàlisis en sistemes distribuïts.
- Aplicar els coneixements adquirits en el disseny de sistemes d'emmagatzematge distribuït, per dissenyar aplicacions intensives de dades i còmput.
- Conèixer les característiques tècniques de distribució i gestió de dades i les seves implicacions de cost en entorns distribuïts.
- Que els estudiants sàpiguen comunicar les conclusions pròpies, i els coneixements i les raons últims que les sustenten, a públics especialitzats i no especialitzats d'una manera clara i sense ambigüitats.
- Que els estudiants sàpiguen comunicar les seves conclusions, així com els coneixements i les raons últimes que les fonamenten, a públics especialitzats i no especialitzats d'una manera clara i sense ambigüitats
- Que els estudiants sàpiguin aplicar els coneixements adquirits i la seva capacitat de resolució de problemes en entorns nous o poc coneguts dins de contextos més amplis (o multidisciplinaris) relacionats amb la seva àrea d'estudi.
- Que els estudiants tinguin les habilitats d'aprenentatge que els permetin continuar estudiant, en gran manera, amb treball autònom a autodirigit
- Seleccionar tant la plataforma distribuïda, com el llenguatge més adequat, a l'hora de generar la proposta de solució a un problema de còmput distribuït.
- Tenir coneixements que aportin la base o l'oportunitat de ser originals en el desenvolupament o l'aplicació d'idees, sovint en un context de recerca
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 infraestructures (14 jours)
- 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
- Virtuañization 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 |
|---|---|---|---|
| Tipus: Dirigides | |||
| Laboratori | 24 | 0,96 | 1, 2, 5, 6, 7, 9 |
| Teoria | 38 | 1,52 | 1, 2, 3, 4, 6, 8, 9 |
| Tipus: Autònomes | |||
| Desenvolupament d'exercicis pràctics | 62 | 2,48 | 1, 2, 6, 7 |
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ó, per a la complementació per part de l'alumnat de les enquestes d'avaluació de l'actuació del professorat i d'avaluació de l'assignatura/mòdul.
Avaluació
Activitats d'avaluació continuada
| Títol | Pes | Hores | ECTS | Resultats d'aprenentatge |
|---|---|---|---|---|
| ELB Lab | 20% | 6 | 0,24 | 1, 3, 4, 5, 6, 7 |
| Laboratori Infrastructura | 30% | 6 | 0,24 | 1, 3, 4, 5, 6 |
| Lambda Lab | 10% | 4 | 0,16 | 1, 2, 3, 5, 6, 8, 9 |
| RDS Lab | 20% | 6 | 0,24 | 1, 2, 3, 4, 6, 8, 9 |
| VPC Lab | 20% | 4 | 0,16 | 1, 2, 4, 6, 7 |
L'avaluació de l'assignatura es realitzarà amb la combinació del treball desenvolupat en les sessions de laboratori i l'entrega dels corresponents informes.
Bibliografia
A. Wittig, M. Wittig. "Amazon Web Services in Action", Manning, 2nd Edition, 2018.
G. Coulouris, J. Dollimore and T. Kinderg, "Distributed Systems. Concepts and design ", Addison-Wesley, 5th edition, 2012.
Bell, Charles; Kindahl, Mats; Thalmann, Lars. "MySQL High Availability". O'Reilly, 2010.
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. "Saied" 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:
-Rocky Linux
-SLURM
-Linux development environment
Llista d'idiomes
| Nom | Grup | Idioma | Semestre | Torn |
|---|---|---|---|---|
| (PLABm) Pràctiques de laboratori (màster) | 1 | Anglès | primer quadrimestre | tarda |
| (TEm) Teoria (màster) | 1 | Anglès | primer quadrimestre | tarda |