Experimentación Numérica en Turbulencia DNS de turbulencia...
Transcript of Experimentación Numérica en Turbulencia DNS de turbulencia...
Experimentación Numérica en TurbulenciaDNS de turbulencia de pared
Sergio Hoyas
CMT- Motores Térmicos,
Universidad Politécnica de Valencia
Finaciación (Técnica o económica):DEISA, BSC,CICYT,PIC
Trabajo en colaboración con Javier JiménezETSI Aeronáuticos, UPM y Centre for Turbulent Research, Stanford University
Guión
Channel 2000 2
• Introducción histórica
• ¿Que es el CFD?
• Métodos numéricos: DNS, LES, RANS
• Un ejemplo: DNS en capas límites
Mecánica de fluidos
Channel 2000 3
• La mecánica de fluidos es todavía uno de los campos abiertos en la física que más aplicación tiene en la vida real
• Interviene en multitud de fenómenos desde como llenar un tetra-brik a la estela de un coche.
Mecánica de fluidos
Channel 2000 5
• En aeronáutica tenemos múltiples ejemplos
➘ Flujo en el interior del 380
Mecánica de fluidos
Channel 2000 7
• En aeronáutica tenemos múltiples ejemplos
➘ Flujo en el interior del A380
➘ Diseño de nuevos elementos
Mecánica de fluidos
Channel 2000 9
• En aeronáutica tenemos múltiples ejemplos
➘ Flujo en el interior del A380
➘ Diseño de propulsores
➘ Resistencia al movimiento
Historia Antigua
Channel 2000 11
• Primeros desarrollos
➘ Arquímedes de Siracusa: primeros estudios sobre la presión y flotabilidad
➘ Sextus Julius Frontinus: Diseño de acueductos en Roma
➘ Leonardo Da Vinci: Primeros estudios sobre la voticidad
Surgimiento
Channel 2000 13
• El estudio científico empieza con grandes nombres
➘ B. Pascal: Estudio de la estática de fluidos
➘ I. Newton: Cálculo y las leyes de viscosidad
➘ H. de Pitot: Tubo de Pitot para medir velocidad en un fluido
➘ Bernouilli. Dinámica de fluidos en líneas de corriente
➘ Euler: Ecuaciones de los flujos ideales sin viscosidad.
➘ Venturi: Tubo de Venturi, estudios en toberas convergentes divergentes
➘ Hagen: Transición flujo laminar a turbulento
➘ Poiseuille: Estudio de la presión y caudal en capilares sanguineos
Epoca dorada
Channel 2000 14
• Durante los últimos 150 años, grandes científicos se han dedicado a la mecánica de fluidos
➘ Claude Navier – Henry Stokes: Ecuaciones de Navier-Stokes
Epoca dorada
Channel 2000 15
• Durante los últimos 150 años, grandes científicos se han dedicado a la mecánica de fluidos
➘ Claude Navier – Henry Stokes: Ecuaciones de Navier-Stokes
➘ E. Mach: Número de Mach -> Relación entre la velocidad de una onda y el sonido en un medio.
➘ O. Reynolds: Número de Reynolds -> Número adimensional que identifica si un fluido es laminar o turbulento
➘ También desarrolla la teoría de lubricación fluidodinámica
➘ L. Prandtl: Desarrollador de la teoría de capa límite y de la mecánica de fluidos moderna.
➘ T. Von Karman: Estudio de la vorticidad detrás de un cilindro y de las fuerzas de sustentación y arrastre en un medio turbulento.
➘ A.I. Kolmogorov: clave para entender la turbulencia: Cascada de Kolmogorov
Momento actual
Channel 2000 16
• Ahora mismo, la mecánica de fluidos es un campo muy activo de trabajo.
➘ Desde un punto de vista matemático, falta resolver el principal problema: la existencia y unicidad de soluciones de las ecuaciones de Navier-Stokes.
➘ Desde un punto de vista físico, se siguen sin entender mucho de los mecanismos de la mecánica de fluidos. Es decir, entendemos sabemos que pasa, entendemos como pasa, sabemos predecir que va a pasar, pero no sabemos la razón última de porque pasa.
➘ Desde el punto de vista de un ingeniero, las ecuaciones de la mecánica de fluidos son tan complicadas que se requieren modelos para poder resolverlas en tiempos razonables.
➘ Ahora mismo hay una gran discusión entre experimentos numéricos y experimentos físicos. Es lógico que al final el numérico se acabe imponiendo
Sergio Hoyas 17AMF – Lección 2
Ecuaciónes de Navier-Stokes
• Ecuación de la continuidad
• Si la densidad del fluido no depende del tiempo,
• En caso contrario, diremos que el fluido es compresible• Nota: Todos los fluidos son técnicamente compresibles, pero dependiendo de su movimiento pueden ser tratados como compresibles o incompresibles por lo que técnicamente es más correcto hablar de flujos compresibles o incompresibles
Momento actual
Channel 2000 18
• Ahora mismo, la mecánica de fluidos es un campo muy activo de trabajo.
➘ Desde un punto de vista matemático, falta resolver el principal problema: la existencia y unicidad de soluciones de las ecuaciones de Navier-Stokes.
➘ Desde un punto de vista físico, se siguen sin entender mucho de los mecanismos de la mecánica de fluidos. Es decir, entendemos sabemos que pasa, entendemos como pasa, sabemos predecir que va a pasar, pero no sabemos la razón última de porque pasa.
➘ Desde el punto de vista de un ingeniero, las ecuaciones de la mecánica de fluidos son tan complicadas que se requieren modelos para poder resolverlas en tiempos razonables.
➘ Ahora mismo hay una gran discusión entre experimentos numéricos y experimentos físicos. Es lógico que al final el numérico se acabe imponiendo
Ecuaciones
Channel 2000 19
Capa límite
Tubo
Canal plano
Channel 2000 23
Turbulencia de pared
Viscosa
Log
Exterior
EnergíaDisipación
Energía
Momento
Simulaciones anteriores
Kim, Moin and Moser, 1987, 180 (Cray XMP, NASA Ames)Kim, Moin and Moser, 1987, 180 (Cray XMP, NASA Ames)
Del Álamo and Jiménez, 2003 (Kadesh, CEPBA) 550Del Álamo and Jiménez, 2003 (Kadesh, CEPBA) 550
Del Álamo, Moser, Jiménez and Zandonade, 2004 (Blue Horizon) 950Del Álamo, Moser, Jiménez and Zandonade, 2004 (Blue Horizon) 950
Del Álamo and Jiménez, 2003 (Kadesh, CEPBA) 180Del Álamo and Jiménez, 2003 (Kadesh, CEPBA) 180
Channel 2000 25
Malla
Espacio físicoEspacio físico Espacio de FourierEspacio de Fourier
# Puntos (Fis.) # Puntos (Fis.) # Puntos (Fourier, R.)# Puntos (Fourier, R.) # Puntos (Fourier, C.) # Puntos (Fourier, C.)
Memoria total Memoria total 400GB (precisión simple). 400GB (precisión simple).
Channel 2000 27
Tamaño: 6144 x 633 x 4608 = Tamaño: 6144 x 633 x 4608 = 1.8e101.8e10 puntos. puntos.
1536
Discretización en x y z
Channel 2000 29
70-80% del tiempo99% de las comunicaciones
Discretización en x y z
Discretización
Espacial: Fourier en x y z, diferencias finitas compactas en z
con
tomando
Channel 2000 30
Ecuaciones en Fourier
Channel 2000 31
!Aliasing!. Solución: regla de 2/3
Discretización
Método: Runge-Kutta de tercer orden (Spalart et al, 1991)
118 e6 ecuaciones/paso118 e6 ecuaciones/paso
Channel 2000 32
Discretización - y
Normal: Diferencias finitas compactas (Lele, 1991)
N=M=7
N=M=5
Primera derivada: malla de 7 puntos. Mapeada a la originalPrimera derivada: malla de 7 puntos. Mapeada a la original
Segunda derivada: malla realSegunda derivada: malla real
Channel 2000 33
Discretización - y
Sistemas: métodos LU, sin pivotaje, adaptadas de “Numerical Recipes”Sistemas: métodos LU, sin pivotaje, adaptadas de “Numerical Recipes”
Channel 2000 34
Aliasing
Channel 2000 35
El error de aliasing surge al calcular eficientemente los términos de la helicidad H, por ejemplo
La forma más eficiente de calcular estos productos es:
1. Transformar al espacio físico las variables
2. Calcular los productos dobles
3. Volver al espacio de Fourier
Al hacer esto estamos cometiendo un error, llamado error de Aliasing que introduce energía de los nodos más altos en los más pequeños.
Para resolver este problema nosotros hemos optado por el sistema de truncación, aunque existen otros métodos.
Dealiasing
Channel 2000 36
240 MB
540 MB
• Este método es barato computacionalmente, pero muy caro en memoria.• Para un Reynolds 4000 necesitaríamos 2.2GB de RAM, en simple precisión
• En doble precisión, como se hizo el código finalmente, se hubiesen necesitado
• La simulación nono se hubiese podido hacer!
1.1 GB
4.4 GB
Paralelización clásica
Solo podemos usar NSolo podemos usar N
y y
procs procs
Problema dealiasing 2DProblema dealiasing 2D
Channel 2000 37
Channel 2000 38
Paralelización en planos-líneas
Proc
b
Proc
b
EsquemaPrimera partePrimera parte
1.- Calculamos vel. y vort. (F-P-F)1.- Calculamos vel. y vort. (F-P-F)2.- Transformamos z al espacio físico 2.- Transformamos z al espacio físico
Segunda parteSegunda parteMovemos de yz a líneas en xMovemos de yz a líneas en x
Tercera parteTercera parte1.- Transformamos x a físico 1.- Transformamos x a físico 2.- Cálculo de la helicidad2.- Cálculo de la helicidad3.- Transfomamos la helicidad a Fourier3.- Transfomamos la helicidad a Fourier
Quinta parteQuinta parte1.- Transformamos a (F-P-F)1.- Transformamos a (F-P-F)2.- Calculo del RHS de la ecuación2.- Calculo del RHS de la ecuación3.- Resolvemos los sistemas3.- Resolvemos los sistemas4.- Avanzamos en tiempo4.- Avanzamos en tiempo
Cuarta parteCuarta parteMovemos de líneas en x a yz Movemos de líneas en x a yz
1.- 10%1.- 10%
2.- 40% (133MB2.- 40% (133MB))
3.- 10%3.- 10%
4.- 20% (66 MB)4.- 20% (66 MB)
5.- 20%5.- 20%
Channel 2000 39
Comunicaciones
1. Si A está mandando datos a B, B tiene que estar esperando a A.2. Nadie más tiene que comunicarse con A o B
#Procs = 4=22
1º Comm.
2ª Comm.
3ª Comm.
P
1
P
2
P3
P
4
Channel 2000 40
Hipercubo
#Procs = 8=32
1st.
2nd
3rd
4th
5th
6th
7th
Channel 2000 41
El problema de la caché
Channel 2000 43
z
y
z
y
Pi
Pi+1
nl
x
El cambio global pasa de datos ordenados a datos mal ordenados o viceversa
Dos soluciones
1. MPI_TYPE_VECTOR
2. Transpuestas locales y comunicaciones
Entrada/salida de datos
- El código salva una imagen cada 200 pasos.- El código salva una imagen cada 200 pasos.- El archivo pesa alrededor de - El archivo pesa alrededor de 60GB60GB- Implementación clásica: esclavos a maestroImplementación clásica: esclavos a maestro- Todos los procesadores tienen que esperar a que el archivo esté escritoTodos los procesadores tienen que esperar a que el archivo esté escrito
30%30%
7%7%
Channel 2000 44
Dos soluciones
Propuesta por MN: Propuesta por MN:
Cada procesador escribe su plano a un directorioCada procesador escribe su plano a un directorio- No se implemento- No se implemento- Problemas: 2048 procesadores intentando escribir al mismo tiempo.Problemas: 2048 procesadores intentando escribir al mismo tiempo.
2048 archivos generados por cada imagen, 600.000 en total2048 archivos generados por cada imagen, 600.000 en total
Implementada: Pedimos 60 procs más y creamos dos MPI_GROUPS Implementada: Pedimos 60 procs más y creamos dos MPI_GROUPS
Cálculo Cálculo Sálida Sálida
P
1
-P
x1
P
x2
-P
x3
Pxn-1-P2048
60GB
Disk Disk
P
1
P
2
P60
5-6 s 30-40 m
Channel 2000 45
Speed-up del nuevo esquema
Importante
• Optimización de rutinas
Adaptado: Adaptado:
- XLF - XLF
-Arquitectura de MareNostrumArquitectura de MareNostrum
Claves
• Input/ouputInput/ouput
• ComunicacionesComunicaciones
Desechamos
• Comunicaciones asíncronas
Channel 2000 47
!Las DNS son muy caras!
ProcesadorProcesador TotalTotal
Memoria 0.2GB 400GB
Pasos 125.000 125.000
Tiempo por cada paso del Runge-Kutta 40s 40s
CPU-hours totales 2800h 6e6h (2.8e6)
Horas humanas totales 4 meses 4 meses
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 5.9PF 0.36EF
Channel 2000 49
Postproceso
Channel 2000 50
Por motivos de eficiencia computacional, hay estadísticas que no se calculan durante la simulación como pueden ser los balances de energía o las presiones.
Estos datos deben ser calculados a posteriori, a partir de imágenes de los campos guardadas.
0.6-8 TB, 64GB, 200GB1.5 PB, 25TB
Postproceso
Channel 2000 51
Aunque ahora hay máquinas de más de 250GB de memoria compartida, hace tres años eran inaccesibles.
El postproceso se hace usando el disco como memoria RAM escribiendo los datos en acceso directo.
Para ello es necesario que los discos sean muy rápidos o mejor que sean sistemas distribuidos raid0 o raid5.
En una máquina típica de postproceso, sólo teníamos dos discos de 300 GB, con dos procesadores. Teníamos cuatro máquinas de estas. El problema era claramente: ¿Como optimizar las máquinas?
Postproceso
Channel 2000 52
Opciones:
➘ Utilizar los dos procesadores independientemente, aprovechando al máximo el disco. Problemas: Conflictos de lectura disco a disco y disco a RAM
➘ Lanzar un proceso únicamente, y usando OpenMP aprovechar los dos procesadores. Problemas: 80% de tiempo es leer y escribir. Movimiento de datos remotos.
➘Lanzar un proceso por nodo y usar el otro procesador para la gestión de datos remotos. ELEGIDA
Con este procedimiento hemos conseguido postprocesar cada campo en 12 horas. En avanzar el tiempo en el código se tarda 22h (2048*40)
Mare Nostrum
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
Almacenamiento: Port d’informacio cientifica,ww.pic.es. Castor: Capacitad 1.5 PB. Idea del centro: Llegar a 10PB
Agradecimientos
BSC BSC
José María Cela: FFTW y optimización de rutinas.
Sergi Girona: Rutinas I/O y multiples discusiones sobre MareNostrum.
Jesús Labarta: Rutinas de comunicaciones.
5.000.000 CPU-H asignadas para hacer la simulación.
PICPIC
Manuel Delfino: Almacenamiento de los resultados de la simulación.
25 TB of permanent storage.
DEISA DEISA
800.000 CPU-H de cálculo asignadas en la red europea de supercomputación
Channel 2000 55
Conclusiones
• Hemos realizado un nuevo algoritmo, basado en los conocimientos de los últimos 20 años que es capaz de usar miles de procesadores y mostrando un excelente speed-up.
• Este código ha sido principalmente escrito en Fortran77-90 usando C++ para las FFT y MPI para las rutinas de comunicación.
• Las DNS son muy caras, tanto computacionalmente como economicamente, pero no más que un experimento del mismo tamaño. Con una ventaja. Nosotros conocemos completamente la velocidad del fluido.
• Hemos obtenido una base de datos de 25TB que seguimos todavía analizando.
• Desde el punto de vista físico, hemos respondido varias preguntas, pero hemos abierto más interrogantes.
Channel 2000 56
¿Trabajo futuro?
• ¿Para cuándo un Channel 4000?
Channel 2000 57
• Tamaño de malla estimado
• Tiempo calculado en MareNostrum por paso.
• Número mínimo de pasos necesarios.
• Tiempo total estimado
(12288,901,9216)
140s en 4096 processors, 280 en 2048
250.000
20e6 CPU-Horas, entre 800 y 1400 días• Opciones
• Utilizar OpenFOAM para disminuir el número de comunicaciones entre procesadores.
Artículos técnicos: “Scaling of the velocity uctuations in turbulent channels up to Re = 2000". S. Hoyas and J. Jimenez. Phys. of Fluids. 18,1 2006.
“Reynolds number dependence of the Reynolds-stress budgets in channels ". S. Hoyas and J. Jimenez. Phys. of Fluids, 20, 101511, 2008.
“Turbulent fluctuations above the buffer layer of wall-bounded flows ". J. Jimenez and S. Hoyas, J. Fluid. Mech. 611, 215-236 SEP 25 200 2008
“A high-resolution code for turbulent boundary layers ". M. Simens, J. Jimenez, S. Hoyas and Y. Mizuno, International Journal of Computational Physics, in press. 2009.
Artículos divulgativos:“Channel 2000: Computing wall turbulence at experimental Reynolds numbers". S. Hoyas and J. Jimenez. DEISA Newsletter, 2006.http://www.deisa.org/les/DEISA Newsletter Vol2 06.pdf
Más Información
Channel 2000 58
¡Gracias!
Laboratorio de Dinámica de Fluidos Laboratorio de Dinámica de Fluidos ComputacionalComputacional
Escuela de Aeronáutica, UPMEscuela de Aeronáutica, UPM
http://torroja.dmt.upm.eshttp://torroja.dmt.upm.es
Channel 2000 59