Créditos
6
Tipos
Complementaria de especialidad (Computación de Altas Prestaciones)
Requisitos
Esta asignatura no tiene requisitos
, pero tiene capacidades previas
Departamento
AC
Profesorado
Responsable
- Carlos Alvarez Martinez ( calvarez@ac.upc.edu )
Otros
- Daniel Jimenez Gonzalez ( djimenez@ac.upc.edu )
- Josep Larriba Pey ( larri@ac.upc.edu )
- Josep Ramon Herrero Zaragoza ( josepr@ac.upc.edu )
Horas semanales
Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0.15
Aprendizaje autónomo
7.4
Competencias
Advanced computing
High performance computing
Específicas comunes
Genéricas
Objetivos
-
El estudiante debe ser capaz de comprender la complejidad de los diferentes algoritmos, identificar las partes computacionalmente intensivas de una simulación o procesamiento de datos, y decidir qué partes necesitan optimizarse y paralelizarse.
Competencias relacionadas: CEE3.3, CG1, CG3, -
El estudiante debe ser capaz de diseñar e implementar algoritmos eficientes de simulación paralela y procesamiento de datos usando un modelo de programación paralelo.
Competencias relacionadas: CEC3, CEE4.2, CG1, CG5, -
El estudiante debe ser capaz de evaluar los diferentes compromisos (robustez, coste computacional, escalabilidad) para seleccionar un algoritmo específico para un problema de simulación o procesamiento de datos
Competencias relacionadas: CG1, CEE3.3,
Contenidos
-
Introducción
- Introducción: descripción general
- El método científico moderno
- Simulación y optimización
- HPC vs. HTC
- Simulaciones numéricas
- Límites de la paralelización
- Evolución y límites de los sistemas HPC -
Introducción a las Simulaciones Numéricas
- De modelos a algoritmos
- Discretización y PDE
- Tipo de PDEs: elípticas, parabólicas, hiperbólicas
- Del problema a las matemáticas y la solución
- Esquemas numéricos: Explicit vs Implicit
- Diferencias finitas y elementos finitos -
Resolución directa de sistemas lineales de ecuaciones a gran escala
- Sistemas triangulares y paralelización
- Eliminación de Gauss
- Factorización LU
- Métodos de particionamiento
- HPL -
Resolución iterativa de sistemas lineales de ecuaciones a gran escala
- Métodos directos vs iterativos
- Jacobi
- Paralelización de métodos iterativos
- Gauss-Seidel y SOR
- Metodos de Krylov y precondicionamiento: HPCG
- Software para métodos numéricos: BLAS, LAPACK, etc. -
Casos prácticos de sistemas numéricos
- Modelos de programación en paralelo
- Paralelismo y granularidad
- Paralelismo de bloques
- Resolución sistemas dispersos -
Introducción a los problemas de ML
- Introducción a las operaciones comunes de las DNNs
- Aplicaciones de DNNs más comunes
- Arquitecturas para DNNs
- Optimizaciones para DNNs
- DNNs y precisión
- Paralelismo en DNNs -
Alineación de secuencia
Se trata de una forma de ordenar las secuencias de ADN, ARN o proteína para identificar regiones de semejanza que pueden ser consecuencia de relaciones funcionales, estructurales o evolutivos entre las secuencias.
Las estrategias de búsqueda, puntuación y de paralelización son importantes para superar este reto. -
Casos prácticos
- DNNs y precisión
- Paralelismo en DNNs
- Algoritmos se Sequence Alignment -
Introducción al kernel de DBMSs y la ejecución de consultas en tales sistemas
Este tema tiene como objetivo comprender las diferentes capas de software de un DBMS y cómo interactúan, las diferentes complejidades que encarnan y como su interacción determina el rendimiento de estos DBMS. -
Aplicaciones de Big Data y bases de datos de grafos
Esta sesión tiene el objetivo de presentarles a los estudiantes el diseño de tales sistemas de base de datos Big Data y de grafos, cómo se construyen y cómo su estructura se ve influenciada por la estructura de sus diferentes capas de software. -
Benchmarking para bases de datos
El benchmarking es uno de los problemas más importantes en el diseño y la evolución de la base de datos. Esta parte del curso será diseñada para comprender los diferentes esfuerzos realizados en benchmarking de EEUU y Europa para bases de datos relacionales y grafos. -
Casos prácticos de Big Data
Casos prácticos de Big Data
Actividades
Actividad Acto evaluativo
Introducción
Siga las conferencias, estudiar los materiales y las prácticas.- Teoría: Introducción: descripción general El método científico moderno Simulación y optimización HPC vs. HTC Simulaciones numéricas HPC = Algoritmos + Arquitectura + Modelo de programación Límites de la paralelización Evolución y límites de los sistemas HPC
- Aprendizaje autónomo: Estudiar los contenidos asociados y trabajar en las tareas.
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Parte I: Aplicaciones Numéricas
Siga las conferencias, estudie los materiales y las prácticas.- Teoría: 1. Introducción a las simulaciones numéricas - De modelos a algoritmos - Discretización y PDE - Tipos de PDE: elípticas, parabólicas, hiperbólicas - Del problema a las matemáticas y la solución - Problemas de valor inicial y valor límite - Esquemas numéricos: explícitos frente a implícitos - Diferencias finitas y elementos finitos 2. Resolución directa de sistemas lineales de ecuaciones a gran escala - Sistemas triangulares y paralelización - Eliminación de Gauss - Factorización LU - Métodos de particionamiento - HPL 3. Resolución iterativa de sistemas lineales de ecuaciones a gran escala - Métodos directos frente a iterativos - Jacobi - Paralelización de métodos iterativos - Gauss-Seidel y SOR - Métodos de Krylov y preacondicionamiento: HPCG - Software para métodos numéricos: BLAS, LAPACK, etc.
Contenidos:
Teoría
8h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h
Teoría
0h
Problemas
0h
Laboratorio
8h
Aprendizaje dirigido
2h
Aprendizaje autónomo
12h
Parte II: Aplicaciones no numéricas: ML y Bioinformática
Sigue las clases magistrales, estudia los materiales y prácticas- Teoría: Principios de los problemas de IA - Introducción a las operaciones comunes de las DNN - Aplicaciones DNN más comunes - Arquitecturas para DNN - Optimizaciones para DNN Alineación de secuencia
Contenidos:
Teoría
10h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h
Laboratorio de aplicaciones no numéricas
- Laboratorio: Análisis con profilining/timing, análisis de dependencies y paralelización usando un modelo de programación paralela.
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
6h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h
Part III: Problemas de Big Data
Siga las conferencias, estudie los materiales y las prácticas.- Teoría: Introducción al kernel de DBMSs y la ejecución de consultas en tales sistemas Aplicaciones de Big Data y bases de datos de grafos Benchmarking para bases de datos
- Aprendizaje autónomo: Estudiar los contenidos asociados y trabajar en las tareas.
Contenidos:
Teoría
10h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h
Teoría
0h
Problemas
0h
Laboratorio
6h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h
Metodología docente
Durante el curso se realizarán dos tipos de actividades:a) Actividades centradas en la adquisición de conocimientos teóricos.
b) Actividades centradas en la adquisición de conocimientos mediante experimentación con la implementación y evaluación empírica en el laboratorio de los mecanismos explicados a nivel teórico.
Las actividades teóricas incluyen clases expositivas participativas donde se explican los contenidos básicos del curso. Las actividades prácticas incluyen seminarios de laboratorio usando el ordenador portátil del alumno/a, donde los alumnos implementan los mecanismos descritos en las clases expositivas. Los seminarios requieren de una preparación previa mediante la lectura del enunciado y la documentación de apoyo, y una elaboración posterior de las conclusiones obtenidas en un informe.
Método de evaluación
El curso se evaluará con una nota parcial por bloque de contenidos (Numéricos, No numéricos y Big Data). Cada bloque pesará igual en la nota final:Nota = A1 / 3 + A2 / 3 + A3 / 3
Dónde
Ai: = Nota del bloque i (i de 1 a 3)
y
- Cada parte del curso (bloque) tiene algunos entregables cortos y parciales (PD) y un entregable del proyecto final (FPD).
Bibliografía
Básico
-
Finite element analysis: from concepts to applications
- Burnett, D.S,
Addison-Wesley,
1987.
ISBN: 0201108062
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991000069979706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Numerical methods for engineers
- Chapra, S.C.; Canale, R.P,
McGraw-Hill,
2021.
ISBN: 9781260571387
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004208719706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Iterative methods for sparse linear systems
- Saad, Y,
SIAM,
2003.
ISBN: 0898715342
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002605179706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Parallel programming in C with MPI and OpenMP
- Quinn, M.J,
McGraw-Hill,
2003.
ISBN: 0071232656
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002614899706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
A multigrid tutorial
- Briggs, W.L.; Henson, V.E.; McCormick, S.F,
Society for Industrial and Applied Mathematics,
2000.
ISBN: 0898714621
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002338889706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
The ten most wanted solutions in protein bioinformatics
- Tramontano, A,
Chapman and Hall/CRC,
2005.
ISBN: 1584884916
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004001559706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Transaction processing: concepts and techniques
- Gray, J.; Reuter, A,
Morgan Kaufmann,
1993.
ISBN: 1558601902
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991000768969706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Analyzing network data in biology and medicine: an interdisciplinary textbook for biological, medical and computational scientists
- Pržulj, N,
Cambridge University Press,
2019.
ISBN: 9781108432238
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991005261349406711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementario
-
Higher-order numerical methods for transient wave equations
- Cohen, G.C,
Springer,
2001.
ISBN: 354041598X
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002428189706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Full seismic waveform modelling and inversion
- Fichtner, A,
Springer,
2011.
ISBN: 9783642158063
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003948259706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
An introduction to multigrid methods
- Wesseling, P,
Edwards,
2004.
ISBN: 1930217080
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004000329706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- Mesh partitioner software http://glaros.dtc.umn.edu/gkhome/views/metis/
- OpenMP http://openmp.org/
- MGNet http://www.mgnet.org/
- Freely Available Software for Linear Algebra http://www.netlib.org/utk/people/JackDongarra/la-sw.html
- MPI library http://www.open-mpi.org/
Capacidades previas
Comprensión básica de las arquitecturas paralelas, incluidos los sistemas multiprocesador de memoria compartida y distribuida.Habilidades de programación útiles de algún modelo de programación paralela.