Créditos
6
Tipos
Obligatoria
Requisitos
Esta asignatura no tiene requisitos
, pero tiene capacidades previas
Departamento
AC
Mail
julita.corbalan@upc.edu
Este curso proporcionará al estudiante a los fundamentos, y lo introducirá en el su uso, de estos sistemas de computación paralela y distribuida actuales para dar soporte a los entornos de análisis de datos que requieren los científicos e ingenieros de datos . El alumno comprenderá el continuo desarrollo de estos sistemas que permiten la convergencia de los algoritmos de análisis avanzados y las tecnologías de computación relacionadas.
Las clases es complementen con ejercicios de programación en base a problemas habituales del científico de datos y evaluar los soluciones, usando sistemas paralelos y distribuidos al alcance de todos. Gracias a los servicios de computación y análisis de alto rendimiento. De esta, manera el alumno podrá dissenay experimentos que sean realistas.
Uno de los objetivos finales de la asignatura es alentar a los estudiantes a querer ser actores y no espectadores de esta profunda transformación de la analítica de alto rendimiento que se está produciendo y procurar estimular sume deseo de querer profundizar más en este apasionante mundo de la tecnología, más allá de la asignatura.
Profesorado
Responsable
- Julita Corbalan Gonzalez ( julita.corbalan@upc.edu )
Otros
- Yolanda Becerra Fontal ( yolandab@ac.upc.edu )
Horas semanales
Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
6
Competencias
Competencias técnicas
Transversales
Básicas
Genéricas
Objetivos
-
Conèixer els fonaments dels sistemes paral·lels i distribuïts actuals
Competencias relacionadas: CG1, CB1, -
Coneixer i saber usar els elements bàsics que conformen els sistemes paral·lels i distribuïts
Competencias relacionadas: CT4, CT6, CT7, CB2, -
Coneixer i poder triar convenientment quin els entorns d'analítica avançada que usen sistemes distribuïts i parallel
Competencias relacionadas: CE4, CG2, CG4, -
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
Competencias relacionadas: CE4, CT4, CT6, CG1, CB2, -
Familiaritzar-se amb els models de programació més habituals dels sistemes paral·lels i distribuïts
Competencias relacionadas: CE4, CT5, CB5,
Contenidos
-
Fundamentos de la supercomputación paralela y distribuida
En este tema, los alumnos aprenderán conceptos básicos de la computación paralela así como métricas que les ayudarán a evaluar tanto el rendimiento de sus programas como los límites derivados de la propia estructura de la aplicación. -
Arquitecturas paralelas y distribuidas
En este tema, los alumnos aprenderán las principales características de las arquitecturas paralelas y distribuidas que más les pueden influir a la hora de diseñar sus programas de análisis de datos o de entender el rendimiento (o pérdida de rendimiento) de los mismos. -
Entornos de ejecución de computación paralela y análisis de datos
En este tema los alumnos aprenderán los diferentes entornos que principalmente pueden encontrarse al ejecutar tantos las aplicaciones que generar datos como las que los almacenan o analizan. Se hará énfasis en las diferencias entre los tres entornos y en impacto que puede tener en la eficiencia de sus aplicaciones. -
Modelos de programación para supercomputadores
En este tema los alumnos verán los principio básicos de los modelos de programación más utilizados en los entornos HPC: MPI, OpenMP y modelos híbridos MPI+OpenMP. Se darán las herramientas para detectar y gestionar los principales detalles que puedan afectar tanto a la robustez de sus programas como a la eficiencia.
También se introducirán modelos orientados a co-procesadores que ofrecen una buena eficiencia rendimiento vs. consumo energético y muy utilizados en el análisis de datos. -
Software y entorno de ejecución específico para análisis avanzados
En este tema los alumnos verán en más detalle las características de los modelos de programación y entornos de ejecución para almacenamiento y análisis de datos. Se utilizará como referencia el modelo Apache Spark/Hadoop, como referencia de almacenamiento de datos Cassandra y como herramientas de análisis TensorFlow/keras. -
Machine Learning en Supercomputadores: Caso de ejemplo basado en Spark/Cassandra/TensorFlow
En este tema profundizaremos en un entorno de Machine learning usando como referencia el modelo Apache Spark, como DB key/value Cassandra y como herramienta de análisis TensorFlow. Se explicarán los elementos más importantes de estos tres componentes que puedan afectar en mayor medida tanto al diseño de aplicaciones de machine learning como al almacenamiento de datos y análisis. -
Sesiones de laboratorio
Las sesiones de laboratorio se agruparán en dos proyectos que se irán realizando tanto en las sesiones de laboratorio como en trabajo autónomo. Los dos proyectos estarán relacionados con la programación, análisis y optimización de un caso lo más realista posible en dos entornos: entornos de ejecución paralelo (mpi+openmp, sistemas de colas, etc), utilizados para generar y post-procesar datos, y entornos específicos de gestión y análisis de datos como es Apache Stark + Cassandra + TensorFlow.
Actividades
Actividad Acto evaluativo
Introducción de la asignatura
Durante esta actividad se explicarán los objetivos, contenidos, y funcionamiento de la asignatura
Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Desarrollo del tema "Fundamentos de supercomputación paralela y distribuida"
En este tema, los alumnos aprenderán conceptos básicos de la computación paralela así como métricas que les ayudarán a evaluar tanto el rendimiento de sus programas como los límites derivados de la propia estructura de la aplicación.Objetivos: 1
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h
Desarrollo del tema "Arquitecturas paralelas y distribuidas"
En este tema, los estudiantes aprenden las principales características de las arquitecturas paralelas y distribuidas que pueden influir en el diseño de sus programas de análisis de datos y entender el rendimiento (o pérdida de rendimiento) de estos: Se verán , por ejemplo características de sistemas con arquitectura multi-core, hyperthreading, memoria compartida-distribuida, localidad de datos temporal-espacial, tipo storage (local, remoto), tipología redes, etc.Objetivos: 1 2
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h
Desarrollo del tema "Entornos de ejecución de computación paralela y análisis de datos"
En este tema los alumnos aprenderán los diferentes entornos que principalmente pueden encontrarse al ejecutar tantos las aplicaciones de generar datos como los que los almacenan o analizan. Se hará énfasis en las diferencias entre los tres entornos y en impacto que puede tener en la eficiencia de sus aplicaciones. Entorno de ejecucion con colas para HPC, cloud computing para DA. Durante este tema se dividirá en entornos HPC y entornos de análisis de datos (DA). También se harán ejercicios de problemas durante las clases de teoría.Objetivos: 2 3
Contenidos:
Teoría
6h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h
Desarrollo del tema "Modelos de programación para supercomputadores"
En este tema los alumnos verán los principio básicos de los modelos de programación más utilizados en los entornos HPC: MPI, OpenMP y modelos híbridos MPI + OpenMP. Se darán las herramientas para detectar y gestionar los principales detalles que puedan afectar tanto la robustez de sus programas como la eficiencia. También se introducirán modelos orientados a coprocesadores que ofrezcan un buen rendimiento vs. eficiencia. Consumo de energía y muy usado en el análisis de datos.Objetivos: 5
Contenidos:
Teoría
6h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h
Desarrollo del tema "New software para análisis de datos"
En este tema, los estudiantes verán con más detalle las características de los modelos de programación y entornos de ejecución para el almacenamiento y el análisis de datos. El modelo Apache Spark / Hadoop utilizará como referencia, como referencia para el almacenamiento de datos Cassandra y como herramientas de análisis TensorFlow / keras.Objetivos: 3
Contenidos:
Teoría
7h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
7h
Desarrollo del tema "Machine Learning en Supercomputadores: Caso de uso basado en Spark / Cassandra / TensorFlow"
En este tema profundizaremos en un entorno de Machine learning utilizando como referencia el modelo Apache Spark, como DB key / value Cassandra y como herramienta de análisis TensorFlow. Se explicarán los elementos más importantes de estos tres componentes que puedan afectar en mayor medida tanto el diseño de aplicaciones de machine learning como el almacenamiento de datos y análisis.Objetivos: 4
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h
Sesiones de laboratorio y entregables: Ejecución de aplicaciones HPC HPC, almacenamiento y anal de datos en contexto de DA (Data Analytics)
Durante los laboratorio se plantearán ejercicios que se harán mayoritariamente durante las clases. Algunos de estos ejercicios tindram como objetivo practicar aspectos concretos tanto de entornos más tradicionales HPC cono de análisis de datos. Otros formarán parte de un ejercicio más grande que se hará al llarge de las sesiones. Habrán dos ejercicios: uno para la parte más HPC y otro más específico para entornos de análisis de datos. En primer entregará justo después de finalizar las sesiones dedicadas a entornos y aplicaciones HPC. El segundo justo después de finalizar las sesiones de entornos de análisis de datos.Objetivos: 2 5 3 4
Contenidos:
- 3 . Entornos de ejecución de computación paralela y análisis de datos
- 4 . Modelos de programación para supercomputadores
- 5 . Software y entorno de ejecución específico para análisis avanzados
- 6 . Machine Learning en Supercomputadores: Caso de ejemplo basado en Spark/Cassandra/TensorFlow
- 7 . Sesiones de laboratorio
Teoría
0h
Problemas
0h
Laboratorio
28h
Aprendizaje dirigido
0h
Aprendizaje autónomo
28h
Metodología docente
Durante el curso habrá cuatro tipos de actividades:a) Actividades orientadas a la adquisición de conocimientos teóricos. Las actividades teóricas incluyen clases de clases participativas, que explican los contenidos básicos del curso.
b) Las actividades se centraron en la adquisición del conocimiento a través de la experimentación mediante el enfoque "aprendiendo para hacer" en sesiones de laboratorio guiadas por prácticas (e informe final). Algunas sesiones pueden incluir trabajo previo o hacer después de las sesiones dependiendo de
el aprovechamiento de los laboratorios.
c) Pocas sesiones durante las clases teóricas donde se realizarán ejercicios prácticos para realizar evaluaciones numéricas y análisis para la evaluación del rendimiento
d) Dos informes de los ejercicios que se llevarán a cabo en los laboratorios relacionados con entornos y aplicaciones HPC y con entornos de análisis de datos
Este cuatrimestre, ya que las clases de laboratorio se realizarán en aulas de teoría, los estudiantes deberán traer su propio portátil. Para hacer los exámenes, tanto de teoría como de laboratorio, debido a que se entregarán en formato digital, también será necesario que lleven su propio portátil. Todas las clases de teoría que se hagan online habilitará un meet al horario oficial. Para las clases de laboratorio, aquellos alumnos que estén confinados habilitará un meet para poder seguir las clases.
Método de evaluación
- Examen parcial: 35% (Primera parte del curso: HPC): teoríaHPC- Examen final: 35% (Segunda parte del curso: AD): teoríaAD
- Laboratorio: 30%.
La notaLaboratorio saldrá de la evaluación de los entregables de laboratorio: 15% labHPC y 15% labAD
La notaTeoría de Teoría será: (teoríaHPC + teoríaAD)/2
La notaFinal será 0.3*notaLaboratorio+0.7*notaTeoría
Reevaluación:
Si teoríaHPC !=NP y teoríaAD != NP y labHPC != NP y labAD != NP y NotaFinal < 5 ==> Se puede acceder al examen de re-evaluación
1 examen de re-evaluación que incluye teoría HPC y teoría AD (los laboratorios no se re-evalúan)
NotaFinalPSD=max(notaFinal, notaReevaluacion)
Bibliografía
Básico
-
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
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004105469706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Hello world en TensorFlow
- Torres, J,
Universitat Politècnica de Catalunya, Barcelona Supercomputing Centrer,
2016.
ISBN: 9781326532383
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004074709706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
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
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004068679706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Articles from Technical Journals in the area
- ,
Complementario
-
Empresas en la nube: ventajas y retos del cloud computing
- Torres, J,
Libros de Cabecera,
2011.
ISBN: 9788493908225
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003890319706711&context=L&vid=34CSUC_UPC:VU1&lang=ca