View
72
Download
6
Category
Preview:
DESCRIPTION
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. CMT – Motores Térmicos. Técnicas avanzadas. 3. - PowerPoint PPT Presentation
Citation preview
Técnicas de computación avanzada en mecánica de fluidos
Sergio Hoyas
CMT- Motores Térmicos,
Universidad Politécnica de Valencia
Funding:DEISA, BSC,CICYT,PIC
Mark Simens, Javier JiménezETSI Aeronáuticos, UPM
Arquitecturas actuales de cálculo
Arquitecturas actualesArquitecturas actuales
Pc yPc y ServidoresServidores Grid computingGrid computing Clusters y Clusters y supercomputadoressupercomputadores
www.pic.es www.bsc.es
Técnicas avanzadas... 3
Arquitecturas actuales de cálculo
ServidoreServidores s
Ventajas:Ventajas:
InconvenientesInconvenientes
Recomendaciones: Recomendaciones: - Hardware: Mejor Intel que AMD. El principal motivo el compilador de Intel. - Sistema operativo: Ubuntu o Debian. Nunca Suse.
EvoluciónEvolución
ObjetivosObjetivos Pruebas, problemas pequeños, post – proceso.
Tamaño problema limitado, Espacio y refrigeración.
Más procesadores, cálculo/memoria >>1.
Precio, fácil administración. 2500€ 8 cores, 16GB de Ram
Técnicas avanzadas... 4
Arquitecturas actuales de cálculo
Grid y Grid y SupercomputadoresSupercomputadores
- 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
Administración, grandes recursos, herramientas. Ventajas:Ventajas:
InconvenientesInconvenientes
EvoluciónEvolución
ObjetivosObjetivos
Acceso a recursos, administrativas.
Barridos parámetricos, grandes problemas.
Técnicas avanzadas... 5
Software numérico
Lenguajes de alto nivel:Lenguajes de alto nivel:
Matlab Fortran C
Técnicas avanzadas... 6
Software numérico
Ventajas: Ventajas:
Inconvenientes: Inconvenientes:
Lenguajes de alto nivel:Lenguajes de alto nivel:
Matlab Fortran C
Intuitivo, fácil de programar y depurar Imprescindible para la visualización de resultados Gran cantidad de bibliotecas y rutinas de fácil acceso
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
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.
No hay herramientas de visualización de resultados. Los depuradores son poco intuitivos. No existen en paraleloEl enlace con librerías y optimización puede ser difícil
Lenguajes de alto nivel:Lenguajes de alto nivel:
Matlab Fortran C
Ventajas: Ventajas:
Inconvenientes: Inconvenientes:
Técnicas avanzadas... 8
Software numérico
Lenguajes de alto nivel:Lenguajes de alto nivel:
Matlab Fortran C
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
Muy díficil de programar bien para un no-informático. Gran cantidad de herramientas no intuitivas.
Ventajas: Ventajas:
Inconvenientes: Inconvenientes:
Técnicas avanzadas... 9
Claves
Los códigos deben estar llenos de comentarios¡Velocidad vs Legibilidad!Nombre de rutinas y variables: significativo y consecuente
Basicas: • Orden: columnas, filas.• Matlab:
• Ordenes vectoriales.• Predimensionalización
Avanzadas: • Memoria cache• Minimización de llamadas a funciones
LegilibidadLegilibidad
Reglas generales Reglas generales
• Fortran:• Trabajar punto a punto.• Implicit none
Técnicas avanzadas... 10
Herramientas
• Matlab: Profile on; My_code; profile viewer.Compilador: mcc –m My_code• Fortranifort –pg my_code.f90 ; ./a.out; gprof gmon.out a.out • Fortran y C/C`++gdb
ProfilersProfilers
Bibliotecas Bibliotecas • FFT: FFTW www.fftw.org • Álgebra lineal básicaBLAS (Basic Linear Algebra Subprograms) http://www.netlib.org/blas/• Álgebra linealLapack (Linear Algebra PACKage) http://www.netlib.org/lapack/• VariosNumerical Recipes
Técnicas avanzadas... 11
Ejemplo práctico: DNS en Turbulencia
• Capas límites• Canales
Dos ejemplosDos ejemplos
Características: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?
• Son ecuaciones sobre las magnitudes fluidas medias• Algortimos rápidos, pero no muy precisos.• Necesitan SIEMPRE validación experimental
Rans: Reynolds Averaged Navier StokesRans: Reynolds Averaged Navier Stokes
LES: Large Eddy simulationLES: 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.
Técnicas avanzadas... 13
HerramientasHerramientas
• Normalmente se usan malladores y códigos comerciales (Gambit, Fluent, StarCD) o libres (OpenFOAM)
¡9 Millones de horas!
¿Para qué y por qué necesitamos 9e6 horas y 50 Tb?
Cascada de Energía
Richardson
Kolmogorov (1941)
Técnicas avanzadas... 14
Cascada de Energía
Técnicas avanzadas... 15
Flujo de energía en turbulencia isótropa
Flujos industriales típicos
Estela de una persona caminando
Capa límite de un avión
Entrada
Disipación
Energía
Esfuerzos
Cascada
Técnicas avanzadas... 16
Cascadas en la turbulencia de pared
Energía
Viscosa
Log
Exterior
Dissipación
Energía
Momento
Técnicas avanzadas... 17
Dominio
flujoflujo
xx
zz
yy
Capa límiteCapa límite
Técnicas avanzadas... 18
Mallado del canal
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 (simple precision). 400GB (simple precision).
Técnicas avanzadas... 20
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
Técnicas avanzadas... 21
Forma Velocidad-Vorticidad
70-80% of time99% of communication
Técnicas avanzadas... 24
Discretización en x y z
Discretización
Espacial: Fourier en x y z, diferencias finitas compactas en z
con
tomando
Técnicas avanzadas... 25
Ecuaciones en el espacio de Fourier
Técnicas avanzadas... 26
FFT. El problema del dealiasing
Problema clásico de la turbulencia: como calcular por ejemplo
como
Error de aliasing
Técnicas avanzadas... 27
Dealiasing
Dos formas de evitarlo: phase shifts y truncación o 3/2
Truncación: agrandamos la transformadaTruncación: agrandamos la transformada
00
n mn m n+mn+mn+m-Nn+m-N
N/2N/2KKKK-N/2-N/2
Técnicas avanzadas... 28
Discretización
Método: Runge-Kutta de tercer orden (Spalart et al, 1991)
118 e6 ecuaciones/paso118 e6 ecuaciones/paso
Técnicas avanzadas... 30
Discretización - y
Normal: Diferencias finitas compactas (Lele, 1991)
N=M=7
N=M=5
Primera derivad: malla de 7 puntos. Mapeada a la original Primera derivad: malla de 7 puntos. Mapeada a la original
Segunda derivada: malla realSegunda derivada: malla real
Sistemas: métodos LU, sin pivotaje, adaptadas de “Numerical Recipes”Sistemas: métodos LU, sin pivotaje, adaptadas de “Numerical Recipes”
Técnicas avanzadas... 31
Discretización - y
Sistemas: métodos LU, sin pivotaje, adaptadas de “Numerical Recipes”Sistemas: métodos LU, sin pivotaje, adaptadas de “Numerical Recipes”
Técnicas avanzadas... 32
Esquema clásico de paralelización
Solo podemos usar NSolo podemos usar Ny y procs procs
Problema dealiasing 2DProblema dealiasing 2D
Técnicas avanzadas... 33
Speed-up del nuevo esquema
Importante
• Optimización de rutinas
Adaptado: Adaptado:
- XLF - XLF
- Arquitectura de - Arquitectura de MareNostrumMareNostrum
Claves
• Input/ouputInput/ouput
• ComunicacionesComunicaciones
Técnicas avanzadas... 34
Esquema en lineas-planos
Proca
Procb
Técnicas avanzadas... 35
Técnicas avanzadas... 36
Paralelización en planos-líneas
Procb
Procb
Paralelización en lineas planos: 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%
Técnicas avanzadas... 37
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
1st Comm.
2nd Comm.
3rd Comm.
P1 P2
P3P4Técnicas avanzadas... 38
Hipercubo
#Procs = 8=32
1st.
2nd
3rd
4th
5th
6th
7th
Técnicas avanzadas... 39
Hipercubo: seudocódigo
Wrong!!!
Técnicas avanzadas... 40
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%
Técnicas avanzadas... 42
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 2048 archivos generados por cada imagen, 600.000 en totaltotal
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
P1-Px1
Px2-Px3
Pxn-1-P2048
60GB
Disk Disk
P1
P2
P60
5-6 s 30-40 m
Técnicas avanzadas... 43
Simulaciones cinemáticas de canales
Técnicas avanzadas... 44
!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 (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
Técnicas avanzadas... 45
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
Técnicas avanzadas... 46
Agradecimientos
Almacenamiento: Port d’informacio cientifica,ww.pic.es. Castor: Capacitad 1.5 PB. Idea del centro: Llegar a 10PB
Técnicas avanzadas... 47
Agradecimientos
BSC 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.
PICPIC
Manuel Delfino: Storage of the results of the simulations.
25 TB of permanent storage.
DEISA 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
When a channel 4000 ?
• Grid size
• Estimated time per step:
• Number of steps needed
• Total time
(12288,901,9216)
140s on 4096 processors, 280 on 2048
250.000
20 million CPU-Hours, between 800 and 1400 days
Future work?
• Do you have a new MareNostrum?
Técnicas avanzadas... 50
¡Gracias!
Fluid Dynamics LabFluid Dynamics Lab
Escuela de Aeronáutica, UPMEscuela de Aeronáutica, UPM
http://torroja.dmt.upm.eshttp://torroja.dmt.upm.es
Técnicas avanzadas... 51
Recommended