Supercomputación para Aplicaciones Exigentes

Usted está aquí

Créditos
6
Tipos
Complementaria de especialidad (Computación de Altas Prestaciones)
Requisitos
Esta asignatura no tiene requisitos, pero tiene capacidades previas
Departamento
AC
Este curso cubre la explotación de la supercomputación para una variedad de aplicaciones científicas y de ingeniería. Los contenidos abarcan varios dominios de aplicación tanto en las áreas numéricas como no numéricas.

Profesores

Responsable

  • Daniel Jimenez Gonzalez ( )

Otros

  • Carlos Alvarez Martinez ( )
  • Josep Larriba Pey ( )

Horas semanales

Teoría
4
Problemas
0
Laboratorio
0
Aprendizaje dirigido
0.15
Aprendizaje autónomo
7.4

Competencias

Competencias Técnicas de cada especialidad

Advanced computing

  • CEE3.3 - Capacidad para entender las necesidades computacionales de problemas de disciplinas distintas de la informática y efectuar contribuciones significativas en equipos multidisciplinares que usen la computación.

High performance computing

  • CEE4.2 - Capacidad de analizar, evaluar, diseñar y optimizar software considerando la arquitectura y de proponer nuevas técnicas de optimización.

Específicas comunes

  • CEC3 - Capacidad para aplicar soluciones innovadoras y realizar avances en el conocimiento que exploten los nuevos paradigmas de la Informática, particularmente en entornos distribuidos.

Competencias Técnicas Genéricas

Genéricas

  • CG1 - Capacidad para aplicar el método científico en el estudio y análisis de fenómenos y sistemas en cualquier ámbito de la Informática, así como en la concepción, diseño e implantación de soluciones informáticas innovadoras y originales.
  • CG3 - Capacidad para el modelado matemático, cálculo y diseño experimental en centros tecnológicos y de ingeniería de empresa, particularmente en tareas de investigación e innovación en todos los ámbitos de la Informática.
  • CG5 - Capacidad para aplicar soluciones innovadoras y realizar avances en el conocimiento que exploten los nuevos paradigmas de la Informática, particularmente en entornos distribuidos.

Objetivos

  1. 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,
  2. 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,
  3. 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

  1. Introducción
    Introducción: descripción general
    • Retos en Ciencia e Ingeniería
    • HPC = Algoritmos + Arquitectura + Modelo de Programación
    • Aplicaciones numéricas y no numéricas
    • Computadoras paralelas
  2. Introducción a las Simulaciones Numéricas
    • De modelos a algoritmos
    • Discretización y PDE
    • Diferencias finitas y elementos finitos
    • Tipo de PDEs: elípticas, parabólicas, hiperbólicas
    • Problemas de valor inicial y de valor límite
    • Esquemas numéricos: Explicit vs Implicit
    • Software numérico: de BLAS, LAPACK, etc.
  3. Resolución de sistemas lineales de ecuaciones a gran escala
    • Métodos directos vs iterativos
    • Fundamentales kernels interiores y formatos de matriz
    • Preconditioning
    • El particionamiento y reordenación
  4. Casos prácticos
    - Modelos de programación en paralelo
    - Paralelismo y granularidad
    - Paralelismo de bloques
  5. 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. Las sesiones incluirán discusiones y preparación de trabajos por parte de los estudiantes.
  6. 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. Estas sesiones serán la base para aquellos estudiantes que seleccionen esta parte del curso para la tarea práctica.
  7. Benchmarking per a 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.
  8. 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.
  9. Dinámica molecular
    Es tracta d'una simulació per ordinador de moviments físics d'àtoms i molècules. Les tècniques de tall poden ser importants per reduir la complexitat de càlcul d'aquest repte.
  10. Acoplamiento de proteínas.
    Se trata de un método que predice la orientación preferente de una molécula a un segundo cuando está unida entre sí para formar un complejo estable. Hay varios enfoques que pueden aumentar la precisión, pero también la complejidad de estos métodos.

Actividades

Actividad Acto evaluativo


Introducción

Siga las conferencias, estudiar los materiales y las prácticas.
  • Teoría: Visión de conjunto • Retos en Ciencia e Ingeniería • HPC = Algoritmos + Arquitectura + Modelo de Programación • Aplicaciones numéricas y no numéricas • Computadoras paralelas • Modelos de programación en paralelo
  • Aprendizaje autónomo: Estudiar los contenidos asociados y trabajar en las tareas.
Objetivos: 1
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Numerical: Environment and Brief explanation of the tools to be used



Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
2h
Aprendizaje autónomo
8h

Numerical: Programación paralela aplicando "blocking". Implementación y analisis.



Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Numerical: Paralelización por bloques de complejidad media.



Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Parte I: Aplicaciones Numéricas

Siga las conferencias, estudie los materiales y las prácticas.
Objetivos: 1 2 3
Contenidos:
Teoría
10h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
30h

Entregable: asignación en aplicaciones numéricas

Asignación para la parte de Aplicaciones Numéricas. Para ser entregado en Racó.
Objetivos: 1 2 3
Semana: 6
Tipo: entrega
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Part II-a) Aplicaciones no numéricas: Gestión Big Data

Siga las conferencias, estudie los materiales y las prácticas.
Objetivos: 1 2 3
Contenidos:
Teoría
16h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
26h

Entregable: Problema en gestió Big Data

Problema del módulo de gestión Big Data. Se entregará en el Racó o por correo electrónico.
Objetivos: 1 2 3
Semana: 10
Tipo: entrega
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Parte II-b) Aplicaciones no numéricas: Bioinformática

Sigue las clases magistrales, estudia los materiales y prácticas
Objetivos: 1 2 3
Contenidos:
Teoría
10h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h

Bioinformática: Análisis y paralelización de una aplicación bioinformática


  • Laboratorio: Análisis con profilining/timing, análisis de dependencies y paralelización usando un modelo de programación paralela.

Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Bioinformática: Entorno y herramientas de aceleración hardware



Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Bioinformática: Aceleración de una aplicación de bioinformática



Teoría
0h
Problemas
0h
Laboratorio
4h
Aprendizaje dirigido
0h
Aprendizaje autónomo
8h

Entregable: Problema en Bio-Informática

Problema del mòdul de Bio-informàtica. A entregar en el Racó.
Objetivos: 1 2 3
Semana: 13
Tipo: entrega
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

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 un conjunto de tareas y un proyecto final.

Grado = A1 / 3 + A2 / 3 + 0.A3 / 3

Dónde

Ai: = Asignación i (i de 1 a 3)

Bibliografía

Básica:

Complementaria:

Web links

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.

Adenda

Contenidos

THERE ARE NOT CHANGES IN THE CONTENTS REGARDING THE INFORMATION IN THE COURSE GUIDE.

Metodología docente

THE COURSE IS PLANNED WITH 100% PRESENTIALITY, SO THERE ARE NOT CHANGES IN THE METHODOLOGY REGARDING THE INFORMATION IN THE COURSE GUIDE.

Método de evaluación

THERE ARE NOT CHANGES IN THE EVALUATION METHOD REGARDING THE INFORMATION IN THE COURSE GUIDE.

Plan de contingencia

IF THE COURSE HAS TO BE OFFERED WITH REDUCED PRESENTIALITY OR NOT PRESENTIALLY, THERE WILL BE NOT CHANGES IN THE CONTENTS AND THE EVALUATION METHOD, BUT THE METHODOLOGY WILL BE ADAPTED TO ALLOW FOLLOWING THE COURSE REMOTELY, INCLUDING AMONG OTHERS: * USE THE WIKI AND/OR THE 'RACÓ' TO DOWNLOAD THE SLIDES, EXERCISES, PRACTICAL ASSIGNMENTS, AND OTHER DOCUMENTATION * USE VIDEO AND/OR SCREENCAST MATERIAL FOR ASYNCHRONOUS LECTURES AND PRACTICAL CLASSES * USE VIDEOCONFERENCE FOR SYNCHRONOUS LECTURES AND PRACTICAL CLASSES * USE THE 'RACÓ' FOR ASSIGNMENT SUBMISSIONS * USE MAIL AND/OR THE FORUM FOR ASYNCHRONOUS CONSULTATION * USE CHAT AND/OR VIDEOCONFERENCE FOR SYNCHRONOUS CONSULTATION