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
Arquitecturas actuales de cálculo
Arquitecturas actuales
Pc y Servidores
Grid computing
www.pic.es
Técnicas avanzadas...
Clusters y
supercomputadores
www.bsc.es
2
Arquitecturas actuales de cálculo
Servidores
Objetivos
Pruebas, problemas pequeños, post – proceso.
Ventajas:
Precio, fácil administración. 2000€ 8 cores, 16GB de Ram
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, preferibles a Suse.
Técnicas avanzadas...
3
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.
-En pruebas MariCell, que lleva el chip de la PlayStation 3
Técnicas avanzadas...
4
Software numérico
Lenguajes de alto nivel:
Matlab Fortran C
Técnicas avanzadas...
5
Software numérico
Lenguajes de alto nivel:
Matlab Fortran 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...
6
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 depuradores son poco intuitivos. No existen en paralelo
El enlace con librerías y optimización puede ser difícil
Técnicas avanzadas...
7
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.
Técnicas avanzadas...
8
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:
• Fortran:
• Ordenes vectoriales.
• Trabajar punto a punto.
• Predimensionalización
• Implicit none
Avanzadas:
• Memoria cache
• Minimización de llamadas a funciones
Técnicas avanzadas...
9
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...
10
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...
11
¿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)
Técnicas avanzadas...
12
¡9 Millones de horas!
¿Para qué y por qué necesitamos 9e6 horas y 50 Tb?
Cascada de Energía
Kolmogorov (1941)
Richardson
Técnicas avanzadas...
13
Cascada de Energía
Técnicas avanzadas...
14
Flujo de energía en turbulencia isótropa
Entrada
Cascada
Energía
Esfuerzos
Flujos industriales típicos
Disipación
Estela de una persona caminando
Capa límite de un avión
Técnicas avanzadas...
15
Cascadas en la turbulencia de pared
Energía
Exterior
Log
Viscosa
Dissipación
Energía
Técnicas avanzadas...
16
Dominio
Capa límite
y
Técnicas avanzadas...
17
Dominio
Técnicas avanzadas...
18
Mallado del canal
# Puntos (Fis.)
Espacio físico
# Puntos (Fourier, R.) # Puntos (Fourier, C.)
Espacio de Fourier
Memoria total 400GB (simple precision).
Técnicas avanzadas...
19
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
Técnicas avanzadas...
20
Simulaciones anteriores
Técnicas avanzadas...
21
Ecuaciones de Navier-Stokes
Técnicas avanzadas...
22
Forma Velocidad-Vorticidad
70-80% of time
99% of communication
Técnicas avanzadas...
23
Discretización en x y z
Discretización
Espacial: Fourier en x y z, diferencias finitas compactas en z
con
tomando
Técnicas avanzadas...
24
Ecuaciones en el espacio de Fourier
Técnicas avanzadas...
25
FFT. El problema del dealiasing
Problema clásico de la turbulencia: como calcular por ejemplo
como
Error de aliasing
Técnicas avanzadas...
26
Dealiasing
Dos formas de evitarlo: phase shifts y truncación o 3/2
Truncación: agrandamos la transformada
n+m-N
-N/2
n
K
Técnicas avanzadas...
0
n+m
m
K
N/2
27
Condición de Neumann para v
Técnicas avanzadas...
28
Discretización
Método: Runge-Kutta de tercer orden (Spalart et al, 1991)
118 e6 ecuaciones/paso
Técnicas avanzadas...
29
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”
Técnicas avanzadas...
30
Discretización - y
Sistemas: métodos LU, sin pivotaje, adaptadas de “Numerical Recipes”
Técnicas avanzadas...
31
Esquema clásico de paralelización
Solo podemos usar Ny procs
Problema dealiasing 2D
Técnicas avanzadas...
32
Speed-up del nuevo esquema
Importante
• Optimización de rutinas
Adaptado:
- XLF
- Arquitectura de MareNostrum
Claves
• Input/ouput
• Comunicaciones
Técnicas avanzadas...
33
Esquema en lineas-planos
Procb
Proca
Técnicas avanzadas...
34
Paralelización en planos-líneas
Procb
Procb
Técnicas avanzadas...
35
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
1.- 10%
2.- 40% (133MB)
3.- 10%
Tercera parte
1.- Transformamos x a físico
2.- Cálculo de la helicidad
3.- Transfomamos la helicidad a Fourier
Cuarta parte
Movemos de líneas en x a yz
4.- 20% (66 MB)
5.- 20%
Técnicas avanzadas...
Quinta parte
1.- Transformamos a (F-P-F)
2.- Calculo del RHS de la ecuación
3.- Resolvemos los sistemas
4.- Avanzamos en tiempo
36
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
P1
P2
1st Comm.
2nd Comm.
3rd Comm.
PTécnicas
avanzadas...
4
P3
37
Hipercubo
#Procs = 8=32
1st.
2nd
3rd
4th
5th
6th
7th
Técnicas avanzadas...
38
Hipercubo: seudocódigo
Wrong!!!
Técnicas avanzadas...
39
Comparación entre códigos
Técnicas avanzadas...
40
Entrada/salida de datos
- 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%
Técnicas avanzadas...
41
Dos soluciones
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
P1-Px1
P1
Px2-Px3
P2
Pxn-1-P2048
P60
Técnicas avanzadas...
60GB
42
Simulaciones cinemáticas de canales
Técnicas avanzadas...
43
!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
Técnicas avanzadas...
44
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...
45
Agradecimientos
Almacenamiento: Port d’informacio cientifica,ww.pic.es. Castor:
Capacitad 1.5 PB. Idea del centro: Llegar a 10PB
Técnicas avanzadas...
46
Agradecimientos
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...
47
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 speedup.
• 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...
48
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...
49
¡Gracias!
Fluid Dynamics Lab
Escuela de Aeronáutica, UPM
http://torroja.dmt.upm.es
Técnicas avanzadas...
50
Descargar

CR-2010 - Fluid Dynamics Lab Home Page