Simulación numérica de altas prestaciones

Slides:



Advertisements
Presentaciones similares
Programa de Análisis Numérico
Advertisements

Sistema de Información Cultural, CONACULTA México, 2006 SiC / RENiC Aspectos técnicos relevantes para un Sistema de Información (SI)
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
Objetivos Desarrollar software funcional multi-modelo sobre distintas plataformas para el estudio de sistemas complejos de cómputo de alto rendimiento.
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
SOFTWARE DE PROGRAMACIÓN
UNIDAD II: ALGORITMOS Y LENGUAJES
Razonamiento Explícito y Experimentación en la Algoritmia
Lenguajes de programación
Técnicas de computación avanzada en mecánica de fluidos
Introducción a la Programación
FORTRAN 77 y Cómputo Científico
Estructuras matemáticas del método de elementos finitos
Iris Espinoza, Robinson Rivas, Iván Saavedra
Simulaciones numéricas directas en turbulencia de pared: Una visión global Sergio Hoyas Departamento de informática, Universidad de Valencia Funding: DEISA,
DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN UNIVERSIDAD NACIONAL DEL SUR Año 1º 2º 3º 4º 5º Programación Matemática Software Sistemas de Hardware.
SISTEMAS DE DISEÑO ASISTIDO POR COMPUTADORA
Fundamentos Matemáticos del Método de los Elementos Finitos
Problemes de Viatjants
Qué es CeCalCULA? Supercomputación Primer centro de de Venezuela.
Simplificación de mallas de triángulos Autor: Miguel Pasenau Director: Carlos Andújar Departament de Llenguatges i Sistemes Informàtics Facultat d’Informàtica.
Introducción a la Computación Paralela Germán Larrazábal Departamento Computación, FACYT, Universidad de Carabobo, Venezuela
PROGRAMACIÓN EN CLUSTERS
Diseño y Mantenimiento de un cluster para la dinámica de fluidos
Curso de Computación Científica en Clusters
Derivación Numérica Ultima actualización: 12/04/2017
Procesamiento paralelo
Problemas de frontera para ecuaciones diferenciales
Introducción a Mathematica. Datos del Curso Duración: 30 horas Fechas: del 14 de junio al 2 de julio Horario: de 10:00 a 12:00 horas Requisitos: Conocimientos.
Tema 6: Modelado de sistemas distribuidos

Modelación Matemática y Computacional en Ciencias e Ingenierías Presenta: Antonio Carrillo Ledesma “La Ciencia en las Calles” Noviembre de 2009 Universidad.
Contenido Marco de referencia Arquitectura de computadoras paralelas
Métodos de Análisis Ingenieril
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
DIFERENCIAS FINITAS EN EL DOMINIO DEL TIEMPO
Identificacion de sistemas
12 December 2005Universidad de Murcia1 Computación Matricial y Paralela Curso Doctorado programa de Informática y Matemáticas Aplicadas en Ciencia e Ingeniería,
Parte II. Algorítmica. 4. Programación dinámica.
Parte I. Estructuras de Datos.
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Introducción (Motivación y Historia). Programación paralela Consiste de programar en un lenguaje que permite al usuario a indicar la manera en que partes.
Tema 3: Filtros.
Sistemas de Información Geográfica y sus Aplicaciones en Salmonicultura Desarrollado por:
Laboratorio de cómputo científico
Parte I. Estructuras de Datos.
Agenda  Introducción  Relevamientos de tecnologías Objetivos de la fase de relevamiento de tecnologías Principales tecnologías disponibles -OpenMosix,
MATLAB Adriana Ruiz Martínez. Mario Cesar Taracena Contreras.
METODO DEL BALANCE DE ENERGÍA DIFERENCIAS FINITAS m,n m,n+1 m,n-1 m-1,nm+1,n.
José Oliver Alberto Bonastre José Luis Poza
Por: Cortina, Alejandra Santacruz, Karla Visoso, Sofía.
8.4 Toolbox de Matlab.
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Generación de computadoras
Regla de Simpson 1/3 simple
Modelos matemáticos y solución de problemas
Metodología de la programación
Cluster de Computadores de Alto Desempeño con Acceso Remoto
Estimación por casos de uso.  Un caso de uso representa una unidad de interacción entre uno y el sistema. Un Caso de Uso es una unidad simple de trabajo.
III. DESARROLLO DE SISTEMAS.. Podemos definir el desarrollo de sistemas informáticos como el proceso mediante el cual el conocimiento humano y el uso.
ARQUITECTURA ALTERNATIVA DE SERVIDORES SISTEMAS OPERTIVOS DE RED En un sistema operativo de red los usuarios saben que están conectados a la red y que.
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
Paralelización de Análisis de Reglas de Asociación Andrés Villavicencio T.
TIPOS DE SOFTWARE Cintia Verónica Díaz Díaz 1° “A” TIC’s.
Computadoras de Alto Rendimiento (HPC)
Tema 1 : Introducción y errores
Método de Diferencias Finitas para Ecuaciones en Derivadas Parciales Ecuaciones Elípticas y Parabólicas.
Sistemas Paralelos Profesor: Franco Chichizola JTP: Adrian Pousa Taller de programación.
Transcripción de la presentación:

Simulación numérica de altas prestaciones Sergio Hoyas Departamento de informática, Universidad de Valencia Computational fluid dynamics lab, UPM

Arquitecturas actuales de cálculo Clusters y supercomputadores Pc y Servidores Grid computing www.pic.es www.bsc.es

Arquitecturas actuales de cálculo Servidores Objetivos Pruebas, problemas pequeños, post – proceso. Ventajas: Precio, fácil administración. Inconvenientes Tamaño problema limitado, Espacio y refrigeración. Evolución Más procesadores, cálculo/memoria >>1. Recomendaciones: - Hardware: Mejor Intel que AMD. El principal motivo el compilador de Intel. - Sistema operativo: Ubuntu o Debian. Nunca Suse.

Arquitecturas actuales de cálculo Grid y Supercomputadores Objetivos Barridos parámetricos, grandes problemas. Ventajas: Administración, grandes recursos, herramientas. Inconvenientes Acceso a recursos, administrativas. Evolución - Se prevee un aumento significativo del ratio de procesadores por nodo. - Máquinas de 2000 procesadores son ya comunes.

Software numérico Lenguajes de alto nivel: Matlab Fortran C

Software numérico Lenguajes de alto nivel: Matlab Fortran C Ventajas: Intuitivo, fácil de programar y debuggear Imprescindible para la visualización de resultados Gran cantidad de bibliotecas y rutinas de fácil acceso Inconvenientes: Interpretado (no compilado) -> lento Es fácil de programar, pero difícil de programar bien. No tiene todavía implementaciones paralelas. La implementación GNU (Octave) está lejos de Matlab

Software numérico Lenguajes de alto nivel: Matlab Fortran C Ventajas: Potente y versatil. Gran cantidad de bibliotecas y rutinas, sobre todo básicas. Varias implementaciones paralelas: MPI, OpenMP. La mayoría de los compiladores son gratuitos bajo Linux. Inconvenientes: No hay herramientas de visualización de resultados. Los debbugeadores son poco intuitivos. No existen en paralelo El linkado con librerías y optimización puede ser difícil

Software numérico Lenguajes de alto nivel: Matlab Fortran C Ventajas: El más potente de los tres. Se puede hacer cualquier cosa. Admite varias paralelizaciones: MPI, OpenMP y Posix Enorme cantidad de recursos de libre acceso en la red Inconvenientes: Muy díficil de programar bien para un no-informático. Gran cantidad de herramientas no intuitivas.

Claves Legilibidad Los códigos deben estar llenos de comentarios ¡Velocidad vs Legibilidad! Nombre de rutinas y variables: significativo y consecuente Reglas generales Basicas: Orden: columnas, filas. Matlab: Ordenes vectoriales. Predimensionalización Avanzadas: Memoria cache Minimización de llamadas a funciones Fortran: Trabajar punto a punto. Implicit none

Herramientas Profilers Matlab: Profile on; My_code; profile viewer. Compilador: mcc –m My_code Fortran ifort –pg my_code.f90 ; ./a.out; gprof gmon.out a.out Bibliotecas FFT: FFTW www.fftw.org Álgebra lineal básica BLAS (Basic Linear Algebra Subprograms) http://www.netlib.org/blas/ Álgebra lineal Lapack (Linear Algebra PACKage) http://www.netlib.org/lapack/ Varios Numerical Recipes

Teoría de grafos Grafo mínimo entre grupos de proteinas

Teoría de grafos Grafo mínimo entre grupos de proteinas

Teoría de grafos Implementaciones Algoritmos: Dijkstra (distancia), Breadth-first (caminos), Eliminación (H&M) Matlab: Tiempos: Cálculo de caminos 1mn. Eliminación 2mn Primeros ejemplos y problemas pequeños. Principal problema: requerimientos de memoria. Fortran: Tiempos: Cálculo de caminos 5-6s. Eliminación 2.7s Rapidez permite análisis más detallados. Paralización: OpenMP para aumentar el rendimiento de memoria. MPI para aumentar el número de procesadores. (Grid) MPI para repartir datos entre procesadores. (Cluster) Hoyas & Marín, 2007

Grinding Transmisión del calor

Ecuaciones Ecuaciones y solución general Kuratov, Perez et al 06

Ecuaciones Aproximación en la superficie Idea del algoritmo: Dividir el intervalo (0,tend) en N partes equiespaciadas Usar un segundo mallado para cada subintervalo con (m+1) puntos Integral de (0,t1) -> m+1 puntos, (0,t2) -> 2m+1 puntos. Con la información necesaria para hallar el valor en tend calculamos el valor en N puntos Claves del código: Escrito para Matlab. Operaciones poco naturales Parte más cara: Evaluación de las funciones de error Pérez, Hoyas et al, 07

Cilindro Hoyas, Herrero & Mancho, 02

Cilindro

Discretización Chebyshev-Gauss-Lobatto

Cilindro Ecuaciones Condiciones de contorno Resolución: Slash

Dominio flujo Hoyas & Jiménez, 07

Simulaciones anteriores Kim, Moin and Moser, 1987, 180 (Cray XMP, NASA Ames) Del Álamo and Jiménez, 2003 (Kadesh, CEPBA) 180 Del Álamo and Jiménez, 2003 (Kadesh, CEPBA) 550 Del Álamo, Moser, Jiménez and Zandonade, 2004 (Blue Horizon) 950

¡Estructuras complejas!

Simulaciones anteriores

Mallado del canal # Puntos (Fis.) # Puntos (Fourier, R.) # Puntos (Fourier, C.) Espacio físico Espacio de Fourier Memoria total 400GB (simple precision).

Ecuaciones de Navier-Stokes

Forma Velocidad-Vorticidad 70-80% del tiempo 99% de las comunicaciones

Discretización en x y z Discretización Espacial: Fourier en x y z, diferencias finitas compactas en z con tomando

Ecuaciones en el espacio de Fourier

Condición de Neumann para v

Discretización Método: Runge-Kutta de tercer orden (Spalart et al, 1991) 118 e6 ecuaciones/paso

Discretización - y Normal: Diferencias finitas compactas (Lele, 1991) Primera derivad: malla de 7 puntos. Mapeada a la original N=M=7 Segunda derivada: malla real N=M=5 Sistemas: métodos LU, sin pivotaje, adaptadas de “Numerical Recipes”

Discretización - y Sistemas: métodos LU, sin pivotaje, adaptadas de “Numerical Recipes”

Solo podemos usar Ny procs Esquema clásico de paralelización Solo podemos usar Ny procs Problema dealiasing 2D

Paralelización en planos-líneas Procb Procb

Paralelización en lineas planos: esquema Primera parte 1.- Calculamos vel. y vort. (F-P-F) 2.- Transformamos z al espacio físico Segunda parte Movemos de yz a líneas en x Tercera parte 1.- Transformamos x a físico 2.- Cálculo de la helicidad 3.- Transfomamos la helicidad a Fourier 1.- 10% 2.- 40% (133MB) 3.- 10% 4.- 20% (66 MB) 5.- 20% Cuarta parte Movemos de líneas en x a yz Quinta parte 1.- Transformamos a (F-P-F) 2.- Calculo del RHS de la ecuación 3.- Resolvemos los sistemas 4.- Avanzamos en tiempo

!DNS son muy caras! Procesador Total Memoria 0.2GB 400GB Pasos 125.000 125.000 Tiempo por cada paso del Runge-Kutta 40s 40s CPU-hours totales 2800h 6e6h (1.3e6) Horas humanas totales 4 months 4months Transferencia de datos entre procesadores 0.6GB 1.2PB Total de datos transmitidos 73PB 145EB Base de datos obtenidad 25TB 25TB Flops conseguidos 50GF 3TF Flops totales 18.3PF 3.6EF

Escuela de Aeronáutica, UPM ¡Gracias! Fluid Dynamics Lab Escuela de Aeronáutica, UPM http://torroja.dmt.upm.es