técnicas de computación avanzada en mecánica de fluidos

51
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énez ETSI Aeronáuticos, UPM

Upload: shea

Post on 26-Jan-2016

74 views

Category:

Documents


6 download

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

TRANSCRIPT

Page 1: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 2: Técnicas de computación avanzada en  mecánica de fluidos

CMT – Motores Térmicos

Técnicas avanzadas... 2

Page 3: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 4: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 5: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 6: Técnicas de computación avanzada en  mecánica de fluidos

Software numérico

Lenguajes de alto nivel:Lenguajes de alto nivel:

Matlab Fortran C

Técnicas avanzadas... 6

Page 7: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 8: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 9: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 10: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 11: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 12: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 13: Técnicas de computación avanzada en  mecánica de fluidos

¿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)

Page 14: Técnicas de computación avanzada en  mecánica de fluidos

¡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

Page 15: Técnicas de computación avanzada en  mecánica de fluidos

Cascada de Energía

Técnicas avanzadas... 15

Page 16: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 17: Técnicas de computación avanzada en  mecánica de fluidos

Cascadas en la turbulencia de pared

Energía

Viscosa

Log

Exterior

Dissipación

Energía

Momento

Técnicas avanzadas... 17

Page 18: Técnicas de computación avanzada en  mecánica de fluidos

Dominio

flujoflujo

xx

zz

yy

Capa límiteCapa límite

Técnicas avanzadas... 18

Page 19: Técnicas de computación avanzada en  mecánica de fluidos

Dominio

flujoflujo

Técnicas avanzadas... 19

Page 20: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 21: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 22: Técnicas de computación avanzada en  mecánica de fluidos

Simulaciones anteriores

Técnicas avanzadas... 22

Page 23: Técnicas de computación avanzada en  mecánica de fluidos

Ecuaciones de Navier-Stokes

Técnicas avanzadas... 23

Page 24: Técnicas de computación avanzada en  mecánica de fluidos

Forma Velocidad-Vorticidad

70-80% of time99% of communication

Técnicas avanzadas... 24

Page 25: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 26: Técnicas de computación avanzada en  mecánica de fluidos

Ecuaciones en el espacio de Fourier

Técnicas avanzadas... 26

Page 27: Técnicas de computación avanzada en  mecánica de fluidos

FFT. El problema del dealiasing

Problema clásico de la turbulencia: como calcular por ejemplo

como

Error de aliasing

Técnicas avanzadas... 27

Page 28: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 29: Técnicas de computación avanzada en  mecánica de fluidos

Condición de Neumann para v

Técnicas avanzadas... 29

Page 30: Técnicas de computación avanzada en  mecánica de fluidos

Discretización

Método: Runge-Kutta de tercer orden (Spalart et al, 1991)

118 e6 ecuaciones/paso118 e6 ecuaciones/paso

Técnicas avanzadas... 30

Page 31: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 32: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 33: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 34: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 35: Técnicas de computación avanzada en  mecánica de fluidos

Esquema en lineas-planos

Proca

Procb

Técnicas avanzadas... 35

Page 36: Técnicas de computación avanzada en  mecánica de fluidos

Técnicas avanzadas... 36

Paralelización en planos-líneas

Procb

Procb

Page 37: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 38: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 39: Técnicas de computación avanzada en  mecánica de fluidos

Hipercubo

#Procs = 8=32

1st.

2nd

3rd

4th

5th

6th

7th

Técnicas avanzadas... 39

Page 40: Técnicas de computación avanzada en  mecánica de fluidos

Hipercubo: seudocódigo

Wrong!!!

Técnicas avanzadas... 40

Page 41: Técnicas de computación avanzada en  mecánica de fluidos

Comparación entre códigos

Técnicas avanzadas... 41

Page 42: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 43: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 44: Técnicas de computación avanzada en  mecánica de fluidos

Simulaciones cinemáticas de canales

Técnicas avanzadas... 44

Page 45: Técnicas de computación avanzada en  mecánica de fluidos

!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

Page 46: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 47: Técnicas de computación avanzada en  mecánica de fluidos

Agradecimientos

Almacenamiento: Port d’informacio cientifica,ww.pic.es. Castor: Capacitad 1.5 PB. Idea del centro: Llegar a 10PB

Técnicas avanzadas... 47

Page 48: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 49: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 50: Técnicas de computación avanzada en  mecánica de fluidos

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

Page 51: Técnicas de computación avanzada en  mecánica de fluidos

¡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