510 likes | 718 Views
Técnicas de computación avanzada en mecánica de fluidos. Sergio Hoyas CMT- Motores Térmicos, Universidad Politécnica de Valencia. Mark Simens, Javier Jiménez ETSI Aeronáuticos, UPM. Funding: DEISA, BSC,CICYT,PIC. Técnicas avanzadas. 2. Arquitecturas actuales de cálculo.
E N D
Técnicas de computación avanzada en mecánica de fluidos Sergio Hoyas CMT- Motores Térmicos, Universidad Politécnica de Valencia Mark Simens, Javier Jiménez ETSI Aeronáuticos, UPM Funding: DEISA, BSC,CICYT,PIC
Técnicas avanzadas... 2 Arquitecturas actuales de cálculo Arquitecturas actuales Clusters y supercomputadores Pc yServidores Grid computing www.pic.es www.bsc.es
Técnicas avanzadas... 3 Arquitecturas actuales de cálculo Servidores Pruebas, problemas pequeños, post – proceso. Objetivos Ventajas: Precio, fácil administración. 2000€ 8 cores, 16GB de Ram Inconvenientes Tamaño problema limitado, Espacio y refrigeración. Másprocesadores, cálculo/memoria >>1. Evolución Recomendaciones: - Hardware: Mejor Intel que AMD. El principal motivo el compilador de Intel. - Sistema operativo: Ubuntu o Debian, preferibles a Suse.
Técnicas avanzadas... 4 Arquitecturas actuales de cálculo Grid y Supercomputadores Barridos parámetricos, grandes problemas. Objetivos 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. • En pruebas MariCell, que lleva el chip de la PlayStation 3
Técnicas avanzadas... 5 Software numérico Lenguajes de alto nivel: Matlab Fortran C
Técnicas avanzadas... 6 Software numérico Lenguajes de alto nivel: MatlabFortran C Ventajas: Intuitivo, fácil de programar y depurar 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
Técnicas avanzadas... 7 Software numérico Lenguajes de alto nivel: MatlabFortran 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 depuradores son poco intuitivos. No existen en paralelo El enlace con librerías y optimización puede ser difícil
Técnicas avanzadas... 8 Software numérico Lenguajes de alto nivel: MatlabFortran 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.
Técnicas avanzadas... 9 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
Técnicas avanzadas... 10 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 • Fortran y C/C++ gdb 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
Técnicas avanzadas... 11 Ejemplo práctico: DNS en Turbulencia Dos ejemplos • Capas límites • Canales Características: • No estudiamos casos concretos de aplicaicón inmediata en la ingeniería. • Son casos construidos ad-hoc, para estudiar la física de la turbulencia de pared • Las capas límites son más parecidas a la realidad • Los casos presentados son los más grandes calculados en cada caso.
Técnicas avanzadas... 12 ¿Que herramientas hay en Ingeniería? Rans: Reynolds Averaged Navier Stokes • Son ecuaciones sobre las magnitudes fluidas medias • Algortimos rápidos, pero no muy precisos. • Necesitan SIEMPRE validación experimental LES: Large Eddy simulation • Modelan sólo las escalas más pequeñas de la turbulencia, resolviendo las demás • En gran expansión debido a la potencia mayor de ordenadores. • Campo de investigación muy activo. Todavía no hay un modelo cerrado. Herramientas • Normalmente se usan malladores y códigos comerciales (Gambit, Fluent, StarCD) o libres (OpenFOAM)
¡9 Millones de horas! Técnicas avanzadas... 13 ¿Para qué y por qué necesitamos 9e6 horas y 50 Tb? Cascada de Energía Kolmogorov (1941) Richardson
Cascada de Energía Técnicas avanzadas... 14
Flujo de energía en turbulencia isótropa Técnicas avanzadas... 15 Entrada Cascada Energía Esfuerzos Flujos industriales típicos Disipación Estela de una persona caminando Capa límite de un avión
Cascadas en la turbulencia de pared Técnicas avanzadas... 16 Energía Exterior Log Momento Viscosa Dissipación Energía
Dominio Técnicas avanzadas... 17 Capa límite y flujo x z
Dominio Técnicas avanzadas... 18 flujo
Mallado del canal Técnicas avanzadas... 19 # Puntos (Fis.) # Puntos (Fourier, R.)# Puntos (Fourier, C.) Espacio de Fourier Espacio físico Memoria total 400GB (simple precision).
Simulaciones anteriores Técnicas avanzadas... 20 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
Simulaciones anteriores Técnicas avanzadas... 21
Ecuaciones de Navier-Stokes Técnicas avanzadas... 22
Forma Velocidad-Vorticidad Técnicas avanzadas... 23 70-80% of time 99%of communication
Discretización en x y z Técnicas avanzadas... 24 Discretización Espacial: Fourier en x y z, diferencias finitas compactas en z con tomando
Ecuaciones en el espacio de Fourier Técnicas avanzadas... 25
FFT. El problema del dealiasing Técnicas avanzadas... 26 Problema clásico de la turbulencia: como calcular por ejemplo como Error de aliasing
Dealiasing Técnicas avanzadas... 27 Dos formas de evitarlo: phase shifts y truncación o 3/2 Truncación: agrandamos la transformada n+m n+m-N n m -N/2 K 0 K N/2
Condición de Neumann para v Técnicas avanzadas... 28
Discretización Técnicas avanzadas... 29 Método: Runge-Kutta de tercer orden (Spalart et al, 1991) 118 e6 ecuaciones/paso
Discretización - y Técnicas avanzadas... 30 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 Técnicas avanzadas... 31 Sistemas: métodos LU, sin pivotaje, adaptadas de “Numerical Recipes”
Esquema clásico de paralelización Técnicas avanzadas... 32 Solo podemos usar Ny procs Problema dealiasing 2D
Speed-up del nuevo esquema Técnicas avanzadas... 33 • Importante • Optimización de rutinas • Adaptado: • - XLF • - Arquitectura de MareNostrum • Claves • Input/ouput • Comunicaciones
Esquema en lineas-planos Técnicas avanzadas... 34 Procb Proca
Paralelización en planos-líneas Técnicas avanzadas... 35 Procb Procb
Paralelización en lineas planos: esquema Técnicas avanzadas... 36 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
Comunicaciones Técnicas avanzadas... 37 • Si A está mandando datos a B, B tiene que estar esperando a A. • Nadie más tiene que comunicarse con A o B #Procs = 4=22 P1 P2 1st Comm. 2nd Comm. 3rd Comm. P4 P3
Hipercubo Técnicas avanzadas... 38 #Procs = 8=32 1st. 2nd 3rd 4th 5th 6th 7th
Hipercubo: seudocódigo Técnicas avanzadas... 39 Wrong!!!
Comparación entre códigos Técnicas avanzadas... 40
Entrada/salida de datos Técnicas avanzadas... 41 • - El código salva una imagen cada 200 pasos. • - El archivo pesa alrededor de 60GB • Implementación clásica: esclavos a maestro • Todos los procesadores tienen que esperar a que el archivo esté escrito 30% 7%
Dos soluciones Técnicas avanzadas... 42 Propuesta por MN: • Cada procesador escribe su plano a un directorio • - No se implemento • Problemas: 2048 procesadores intentando escribir al mismo tiempo. • 2048 archivos generados por cada imagen, 600.000 en total Implementada: Pedimos 60 procs más y creamos dos MPI_GROUPS Cálculo Sálida Disk 5-6 s 30-40 m 60GB P1 P1-Px1 P2 Px2-Px3 P60 Pxn-1-P2048
Simulaciones cinemáticas de canales Técnicas avanzadas... 43
!DNS son muy caras! Técnicas avanzadas... 44 ProcesadorTotal 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
Mare Nostrum Técnicas avanzadas... 45 Supercomputador perteneciente al centro nacional de supercomputación. 4812 procesadores PowerPC 970FX a 2,2 GHz 9.6 TB de memoria ram. 236 TB de disco Potencia mantenida de 38 Tflops. Información: www.bsc.es
Agradecimientos Técnicas avanzadas... 46 Almacenamiento: Port d’informacio cientifica,ww.pic.es. Castor: Capacitad 1.5 PB. Idea del centro: Llegar a 10PB
Agradecimientos Técnicas avanzadas... 47 BSC José María Cela: FFTW and general optimization. Sergi Girona: Input/output routines and many discussions about MareNostrum. Jesús Labarta: Communications routines. 5.000.000 CPU-H assigned to run the simulation. PIC Manuel Delfino: Storage of the results of the simulations. 25 TB of permanent storage. DEISA 800.000 CPU-H assigned through a project.
Técnicas avanzadas... 48 Conclusions • We have made a new algorithm for a DNS of a turbulent channel flow, capable of use several thousands of processors, showing an excellent speed-up. • The code has been written in Fortran90, C++ for the fft and MPI for the communication routines. • This DNS has been a very expensive simulation, but not more that one experiment of the same magnitude, and we can compute almost any imaginable quantity. • We have obtained 25TB of data that we are analyzing: Pressure, Energy balances… • We have confirmed some trends but we also have found new questions.
Técnicas avanzadas... 49 Future work? When a channel 4000 ? • Grid size (12288,901,9216) • Estimated time per step: 140s on 4096 processors, 280 on 2048 • Number of steps needed 250.000 • Total time 20 million CPU-Hours, between 800 and 1400 days • Do you have a new MareNostrum?
Técnicas avanzadas... 50 ¡Gracias! Fluid Dynamics Lab Escuela de Aeronáutica, UPM http://torroja.dmt.upm.es