Aviso importante
La guía docente es provisional.
La versión en PDF de la guía docente puede tardar unos días en estar disponible en el DDD.

Sistemas Distribuidos
Código: 44212Créditos: 6
| Titulación | Tipo | Curso |
|---|---|---|
| Modelling for Science and Engineering | OP | 1 |
Profesor/a de contacto
- Nombre :
- Eduardo Cesar Cabrera Flores
- Correo electrónico :
- eduardocesar.cabrera@uab.cat
Equipo docente
- Daniel Franco Puntes
Idiomas de los grupos
Puede consultar esta información al final del documento.
Prerrequisitos
Se recomienda tener conocimientos de programación Python o cualquier otro lenguaje de programación de alto nivel y conocer el uso de sistemas Linux para el desarrollo de proyectos.
Objetivos
Los objetivos del módulo son los siguientes:
- Dar soluciones a problemas de análisis de datos con herramientas de código abierto
- Dar soluciones a problemas de análisis de datos como Linux i herramientas de middleware propias de este sistema operativo
- Entender las limitaciones de las herramientas de gestión de datos para seleccionar las herramientas necesarias para un determinado problema
- Aprender metodologías de consulta en gestores de datos de cada tecnología
- Utilizar herramientas de Computación Cloud para solucionar problemas de análisis de datos
- Aplicar una metodología de análisis de datos para resolver problemas prácticos
Al final de las sesiones de teoría y de laboratorio, los estudiantes deberían tener suficientes conocimientos para entender los requerimientos de un problema de análisis de datos en un contexto industrial o académico. Deben poder elegir una combinación de herramientas y diseñar una solución para un problema de datos concreto. Esta asignatura está orientada a desarrollar habilidades para la resolución de problemas relacionados con los datos. Se describen lenguajes, herramientas y técnicas en el contexto del análisis de datos y los estudiantes resolverán una serie de problemas aplicando la tecnología descrita en cada capítulo.
Resultados de aprendizaje
- CA24 (Aplicar las herramientas computacionales del análisis de las grandes bases de datos a la resolución de problemas en el ámbito industrial o de la investigación) Aplicar las herramientas computacionales del análisis de las grandes bases de datos a la resolución de problemas en el ámbito industrial o de la investigación
- CA25 (Integrar las herramientas computacionales del análisis de las grandes bases de datos en entornos de trabajo multidisciplinares) Integrar las herramientas computacionales del análisis de las grandes bases de datos en entornos de trabajo multidisciplinares
- CA26 (Trabajar en equipos multidisciplinares con el objetivo de desarrollar proyectos donde se apliquen las técnicas de análisis de grandes bases de datos) Trabajar en equipos multidisciplinares con el objetivo de desarrollar proyectos donde se apliquen las técnicas de análisis de grandes bases de datos
- KA19 (Caracterizar la estructura y el rendimiento de las diferentes arquitecturas y estructuras de organización y/o gestión de bases de datos) Caracterizar la estructura y el rendimiento de las diferentes arquitecturas y estructuras de organización y/o gestión de bases de datos
- KA20 (Describir las herramientas de computación en la nube utilizadas para el análisis de datos, evaluando sus ventajas y limitaciones.) Describir las herramientas de computación en la nube utilizadas para el análisis de datos, evaluando sus ventajas y limitaciones.
- SA24 (Usar software específico en la resolución de problemas de tratamiento de datos en sistemas distribuidos) Usar software específico en la resolución de problemas de tratamiento de datos en sistemas distribuidos
- SA25 (Desarrollar aplicaciones informáticas encaminadas a modelizar un proceso concreto mediante sistemas distribuidos, evaluando asimismo el rendimiento computacional de éstas) Desarrollar aplicaciones informáticas encaminadas a modelizar un proceso concreto mediante sistemas distribuidos, evaluando asimismo el rendimiento computacional de éstas
- SA26 (Interpretar los informes y resultados que arroja el análisis de una base de datos concreta) Interpretar los informes y resultados que arroja el análisis de una base de datos concreta
Contenidos
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
Actividades formativas y Metodología
| Título | Horas | ECTS | Resultados de aprendizaje |
|---|---|---|---|
| Laboratorio | 24 | 0,96 | CA24, CA25, SA24 |
| Teoria | 38 | 1,52 | KA19, KA20, SA25 |
| Desarrollo de ejercicios prácticos | 62 | 2,48 | CA26, SA26 |
El desarrollo de la asignatura se basará fundamentalmente en el concepto de "aprender haciendo". Habrá sesiones teóricas iniciales para cada tema, en las que el profesor presentará los conceptos claves y se proporcionará a los estudiantes materiales de estudio complementarios (libros, recursos didácticos on-line, artículos y otra documentación técnica). Con esta información, los estudiantes trabajarán en las sesiones prácticas en la resolución de ejercicios y pequeños proyectos de forma individual o en grupos de dos personas. Los alumnos elaborarán informes escritos sobre el trabajo práctico realizado en cada tema.
Evaluación
Actividades de evaluación continuada
| Título | Peso | Horas | ECTS | Resultados de aprendizaje |
|---|---|---|---|---|
| Laboratorio 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 |
La evaluación de la asignatura se basará en una combinación del trabajo realizado en las sesiones de laboratorio y la entrega de los informes correspondientes.
En esta asignatura, el uso de tecnologías de Inteligencia Artificial (IA) está permitido exclusivamente para tareas de apoyo, como búsquedas bibliográficas o de información, corrección de textos o traducciones, en las actividades específicas que se determinarán a su debido tiempo. Los estudiantes deben identificar claramente qué partes se han generado mediante esta tecnología, especificar las herramientas utilizadas e incluir una reflexión crítica sobre cómo han influido en el proceso y en el resultado final de la actividad. La falta de transparencia respecto al uso de la IA en esta actividad evaluada se considerará una infracción de la integridad académica y podrá dar lugar a una deducción parcial o total de la nota de la actividad, o a sanciones más severas en los casos más graves.
Bibliografía
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. recurso electrónico en 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. recurso electrónico en 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. recurso electrónico en 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.
Software
En la asignatura se trabajará con las versiones más actualizadas de los siguientes sistemas y herramientas:
-Linux
-SLURM
-Linux development environment
Grupos e idiomas de la asignatura
La información proporcionada es provisional hasta el 30 de noviembre. A partir de esta fecha, podrá consultar el idioma de cada grupo a través de este enlace. Para acceder a la información, será necesario introducir el CÓDIGO de la asignatura
| Tipo de docencia | Grupo | Idioma | Semestre | Turno |
|---|---|---|---|---|
| (TEm) Teoría (máster) | 1 | Inglés | primer cuatrimestre | tarde |
| (PLABm) Prácticas de laboratorio (máster) | 1 | Inglés | primer cuatrimestre | tarde |