soutenance de stage - crans · soutenance de stage m´ethodes de volumes finis sur carte graphique...

60
Soutenance de Stage ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012 Encadrants F.De Vuyst, J.M.Ghidaglia ; D.Chauveheid, S.Benjelloun. Aujourd’hui De quoi va-t-on parler ? Trois points : nos probl´ ematiques ; nos r´ ealisations th´ eoriques ; nos r´ ealisations pratiques. L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 1 / 39

Upload: others

Post on 02-Oct-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Soutenance de StageMethodes de volumes finis sur carte graphique nVidia pour Euler compressible

L.Besson S.Hecht M.Isnard

ENS Cachan

2 juillet 2012

Encadrants F.De Vuyst, J.M.Ghidaglia ; D.Chauveheid, S.Benjelloun.

Aujourd’hui

De quoi va-t-on parler ? Trois points :

nos problematiques ;nos realisations theoriques ;nos realisations pratiques.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 1 / 39

Page 2: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Plan de la presentation

Introduction :que fait-on ? dans quel interet ?

Preliminaires : Equation d’advection Rappels.

Equations d’Euler (theorie) :equations generales en 3D, methode de splitting, schema en 1D etgeneralisation ;demonstration de notre schema assistee par ordinateur (Maple).

Equations d’Euler (pratique) :Difficultes rencontrees, simulations en C et en CUDA ;affichages via la combinaison du format de donnees VTK et du logicield’affichage ParaView (1D, 2D, 3D ; avec ou sans terme source ; plusieursconditions de bords) ;affichage directement sur la carte graphique via OpenGL, debutd’interactivite dans les simulations (via GLut).

Optimisation du code sequentiel et parallele :Premiere comparaison des performances, optimiser la visualisation, etresultats finaux.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 2 / 39

Page 3: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Plan de la presentation

Introduction :que fait-on ? dans quel interet ?

Preliminaires : Equation d’advection Rappels.

Equations d’Euler (theorie) :equations generales en 3D, methode de splitting, schema en 1D etgeneralisation ;demonstration de notre schema assistee par ordinateur (Maple).

Equations d’Euler (pratique) :Difficultes rencontrees, simulations en C et en CUDA ;affichages via la combinaison du format de donnees VTK et du logicield’affichage ParaView (1D, 2D, 3D ; avec ou sans terme source ; plusieursconditions de bords) ;affichage directement sur la carte graphique via OpenGL, debutd’interactivite dans les simulations (via GLut).

Optimisation du code sequentiel et parallele :Premiere comparaison des performances, optimiser la visualisation, etresultats finaux.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 2 / 39

Page 4: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Plan de la presentation

Introduction :que fait-on ? dans quel interet ?

Preliminaires : Equation d’advection Rappels.

Equations d’Euler (theorie) :equations generales en 3D, methode de splitting, schema en 1D etgeneralisation ;demonstration de notre schema assistee par ordinateur (Maple).

Equations d’Euler (pratique) :Difficultes rencontrees, simulations en C et en CUDA ;affichages via la combinaison du format de donnees VTK et du logicield’affichage ParaView (1D, 2D, 3D ; avec ou sans terme source ; plusieursconditions de bords) ;affichage directement sur la carte graphique via OpenGL, debutd’interactivite dans les simulations (via GLut).

Optimisation du code sequentiel et parallele :Premiere comparaison des performances, optimiser la visualisation, etresultats finaux.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 2 / 39

Page 5: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Plan de la presentation

Introduction :que fait-on ? dans quel interet ?

Preliminaires : Equation d’advection Rappels.

Equations d’Euler (theorie) :equations generales en 3D, methode de splitting, schema en 1D etgeneralisation ;demonstration de notre schema assistee par ordinateur (Maple).

Equations d’Euler (pratique) :Difficultes rencontrees, simulations en C et en CUDA ;affichages via la combinaison du format de donnees VTK et du logicield’affichage ParaView (1D, 2D, 3D ; avec ou sans terme source ; plusieursconditions de bords) ;affichage directement sur la carte graphique via OpenGL, debutd’interactivite dans les simulations (via GLut).

Optimisation du code sequentiel et parallele :Premiere comparaison des performances, optimiser la visualisation, etresultats finaux.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 2 / 39

Page 6: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Plan de la presentation

Introduction :que fait-on ? dans quel interet ?

Preliminaires : Equation d’advection Rappels.

Equations d’Euler (theorie) :equations generales en 3D, methode de splitting, schema en 1D etgeneralisation ;demonstration de notre schema assistee par ordinateur (Maple).

Equations d’Euler (pratique) :Difficultes rencontrees, simulations en C et en CUDA ;affichages via la combinaison du format de donnees VTK et du logicield’affichage ParaView (1D, 2D, 3D ; avec ou sans terme source ; plusieursconditions de bords) ;affichage directement sur la carte graphique via OpenGL, debutd’interactivite dans les simulations (via GLut).

Optimisation du code sequentiel et parallele :Premiere comparaison des performances, optimiser la visualisation, etresultats finaux.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 2 / 39

Page 7: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Introduction

Que fait-on ?

Simulations numeriques de problemes de mecanique des fluides.

Interet ? Deux principaux

Industriel : industrie petroliere, metallurgie, petro-chimie ;

Pedagogique : des problemes bien etudies donc bien connus ;mais des simulations numeriques qui peuvent toujourss’ameliorer, via de nouveaux outils (nVidia CUDA,openMP).

Des applications gourmandes en temps de calcul !

necessite une grosse puissance de calcul pour avoir une bonneprecision et une bonne stabilite ;

mais ces problemes sont ”bien” parallelisables (schemas locaux).

=⇒ Programmation parallele sur cartes graphiques : outil nVidia CUDA.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 3 / 39

Page 8: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equation d’advection et extension du modeleRappels

L’equation d’avection (en 2D)

∂u

∂t+ div(u−→c ) = 0.

u : R+ × R2 → R, represente une quantite associee a une particule de

fluide ;−→c = [a, b]T : est une vitesse, representant le courant.

On discretise en grilles cartesiennes en temps et en espace, puis on integre et on

applique la formule de Green sur chaque volume de controle.

Ki,jΦi+1/2,j

Φi,j+1/2

−Φi,j−1/2

−Φi−1/2,j

Valeur moyenne sur un volume decontrole Ki,j :ui,j =

1∆x∆y

Ki,judΩ

Flux numerique :φni+1/2,j = (u−→c .−→n )i+1/2,j

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 4 / 39

Page 9: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equation d’advection et extension du modeleRappels

Schema numerique

un+1i ,j − uni ,j∆tn

+1

∆x∆y[φn

i+1/2,j∆y+φni−1/2,j∆y+φn

i ,j+1/2∆x+φni ,j−1/2∆x ] = 0

(1)en posant φn

i+1/2,j = (−→c u.−→n )i+1/2,j (voir [DeDu]).

Choix de la methode de calcul des flux numeriques

Methode VFFC (d’apres [Ghi99]) :

φni+1/2,j =

F (ui ,j) + F (ui+1,j)

2.−→n − sgn(−→c .−→n )

F (ui+1,j)− F (ui ,j)

2.−→n (2)

On utilise le splitting directionnel : on se ramene a plusieurs schemas 1D

successifs.L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 5 / 39

Page 10: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equation d’advection et extension du modeleRappels

Simulation de l’equation d’advection, a vitesse c variable.

Champ de vitesse [u, v ] tournant, maillage 512× 512 points 1024 etapes.

Figure: Affichage en 2D de c .

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 6 / 39

Page 11: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equation d’advection et extension du modeleCPU? GPU? CUDA? (voir [KrSa])

CPU : processeur, hote ;

GPU : carte graphique,peripherique ;

Un kernel est une portion decode parallele a executer sur leperipherique. Chacune de sesinstances s’appelle un thread ;

Une grille est constituee deblocs. Chaque bloc est utilisepour plusieurs threads.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 7 / 39

Page 12: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Presentation des equations

Modelisent le comportement d’un fluide compressible non visqueux.

Les equations physiques

Equation de continuite (conservation de la masse) :

∂tρ+ div(ρ.−→W ) = 0; (3)

Equations du mouvement (1 par dimension) :

∂t(ρ.−→W ) + div(ρ.

−→W ⊗

−→W + p.Id) = 0; (4)

Equation d’energie (temperature) ou E := e + 12 .W

2 :

∂t(ρE ) + div((ρE + p).−→W ) = 0. (5)

=⇒ Il manque une equation pour fermer le systeme !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 8 / 39

Page 13: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Presentation des equations

Modelisent le comportement d’un fluide compressible non visqueux.

Les equations physiques

Equation de continuite (conservation de la masse) :

∂tρ+ div(ρ.−→W ) = 0; (3)

Equations du mouvement (1 par dimension) :

∂t(ρ.−→W ) + div(ρ.

−→W ⊗

−→W + p.Id) = 0; (4)

Equation d’energie (temperature) ou E := e + 12 .W

2 :

∂t(ρE ) + div((ρE + p).−→W ) = 0. (5)

=⇒ Il manque une equation pour fermer le systeme !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 8 / 39

Page 14: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Presentation des equations

Modelisent le comportement d’un fluide compressible non visqueux.

Les equations physiques

Equation de continuite (conservation de la masse) :

∂tρ+ div(ρ.−→W ) = 0; (3)

Equations du mouvement (1 par dimension) :

∂t(ρ.−→W ) + div(ρ.

−→W ⊗

−→W + p.Id) = 0; (4)

Equation d’energie (temperature) ou E := e + 12 .W

2 :

∂t(ρE ) + div((ρE + p).−→W ) = 0. (5)

=⇒ Il manque une equation pour fermer le systeme !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 8 / 39

Page 15: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Presentation des equations

Modelisent le comportement d’un fluide compressible non visqueux.

Les equations physiques

Equation de continuite (conservation de la masse) :

∂tρ+ div(ρ.−→W ) = 0; (3)

Equations du mouvement (1 par dimension) :

∂t(ρ.−→W ) + div(ρ.

−→W ⊗

−→W + p.Id) = 0; (4)

Equation d’energie (temperature) ou E := e + 12 .W

2 :

∂t(ρE ) + div((ρE + p).−→W ) = 0. (5)

=⇒ Il manque une equation pour fermer le systeme !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 8 / 39

Page 16: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Presentation des equations (2)

On utilise l’equation d’etat des gaz parfaits (implique une restriction dudomaine d’application de ces equations) :

Equation d’etat des gaz parfaits

e =1

γ − 1×

p

ρ. (6)

Notations (inspiree de [Buf06])

p : pression, ρ : masse volumique,−→W = [u, v ,w ]T : vitesse du fluide (1, 2 ou

3 composantes) ;

e : energie interne massique du fluide, γ : rapport des chaleurs specifiques(constant) et vaut γ = 1.4 pour un gaz diatomique (air) ;

⊗ : produit tensoriel, Id : matrice identite ;

c est la ”vitesse du son” : c =√

γ×p

ρ .

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 9 / 39

Page 17: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Presentation des equations (3)

On peux maintenant presenter les equations sous forme vectorielle :

Equations d’Euler sous forme vectorielle−→U ≡ [ρ; ρ

−→W ;E ]T = [ρ; ρu; ρv ; ρw ;E ]T ; (7)

∂t

−→U +

∂x

−→F (

−→U ) +

∂y

−→G (

−→U ) +

∂z

−→H (

−→U ) =

−→S (

−→U ). (8)

Les flux associes sont alors definis par :

−→F (

−→U ) ≡

ρuρu2 + pρuvρuw

u(E + p)

;−→G (

−→U ) ≡

ρvρvu

ρv2 + pρvw

v(E + p)

;−→H (

−→U ) ≡

ρwρwuρwv

ρw2 + pw(E + p)

.

−→S (

−→U ) est un terme source , qui peut etre nul (details plus loin).

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 10 / 39

Page 18: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique)Visualisation via GNUPlot : exemple pour Euler 1D

Figure: Affichage en 1D de ρ pour Euler compressible (GNUPlot). 400 points,condition de bord periodique, condition initiale creneau.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 11 / 39

Page 19: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Methode de splitting, schema en 3D

On utilise une methode de splitting : trois etapes mono-dimensionnelles. On vadetailler le schema en 3D (d=3) selon x .

Discretisation en temps et espace

Exactement les memes notations et conventions que pour l’equation d’advection :on integre sur une cellule Ki,j,k :

∂t

Ki,j,k

−→U dV ≃

−→U n+1

i,j,k −−→U n

i,j,k

∆tnVol(Ki,j,k). (9)

Des lors, pour (i ∈ [0;N − 1], j ∈ [0;M − 1], k ∈ [0;O − 1]), on a :

−→U n+1

i,j,k −−→U n

i,j,k

∆tn+

1

∆x∆y∆z[(−→φxni+1/2∆y∆z +

−→φxni−1/2∆y∆z)+ (10)

(−→φyn

j+1/2∆x∆z +−→φyn

j−1/2∆x∆z) + (−→φznk+1/2∆x∆y +

−→φznk−1/2∆x∆y)] = 0.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 12 / 39

Page 20: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Methode de splitting, schema en 3D (2)

Rappel de l’expression des flux φ pour l’advection (selon x)

φni+1/2,j =

F (ui ,j) + F (ui+1,j)

2−→n − sgn(−→c .−→n )

F (ui+1,j)− F (ui ,j)

2−→n (11)

De meme on a ici :

Pour les flux selon x (toujours VFFC)

Se transforme ici en (On n’ecrit pas les j , k pour chaque valeur) :

−→φxni+1/2 =

−→F (

−→U n

i+1) +−→F (

−→U n

i )

2− sign(An

i+1/2)

−→F (

−→U n

i+1)−−→F (

−→U n

i )

2(12)

ou on a pose Ani+1/2 la matrice jacobienne du vecteur

−→F (

−→U n

i+1/2).

=⇒ La difficulte est le calcul de cette matrice signe !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 13 / 39

Page 21: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Diagonalisation de la matrice A

Definition

sign(A) est la matrice semblable a A et dont les valeurs propres sont lessignes des valeurs propres de A ;ie : ker sign(A) = sign(λ1); . . . ; sign(λp), ou sign(x) := 1 si x > 0, := −1 six < 0 et := 0 si x = 0, et kerA = λ1; . . . ;λp.

Theoreme (Calcul de A−→n et sign(A

−→n ))

La matrice A−→n est diagonalisable.

On peut alors ecrire : A−→n = L

−→n .Λ−→n .R

−→n , et sign(A−→n ) =

L−→n .sign(Λ

−→n ).R−→n .

Le papier [GhiPa] nous donne les valeurs des matrices de vecteurs propresa gauche L , a droite R et des valeurs propres Λ.Le calcul ”a la main” n’est pas faisable.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 14 / 39

Page 22: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Valeurs des matrices A

−→n et Λ−→n

Nous avons retrouve les valeurs formelles de ces matrices par une feuille decalcul formelle via Maple.

Notre matrice A−→n vaut

A−→n =

0 −→n 0

K .−→n − (−→W .−→n )−→n

−→W ⊗−→n − k−→n ⊗

−→W + (−→u .−→n )Id k−→w

(K − H)−→W .−→n H−→n − k(

−→W .−→n )

−→W (1 + k)

−→W .−→n

(13)

Valeurs propres Λ−→n selon l’interface de normale −→n

Λ−→n = diag[

−→W .−→n − c ;

−→W .−→n ;

−→W .−→n ;

−→W .−→n ;

−→W .−→n + c] (14)

Notations : k := γ − 1, H := e + 12W

2 + pρ , K := c2 + k(W 2 − H).

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 15 / 39

Page 23: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Calcul du pas de temps ∆tn

On ne detaille pas la demonstration, mais comme pour l’equationd’advection on arrive a (voir [Buf06] ou [DeDu]) :

Condition CFLNotre schema numerique est stable ssi on a :

∀n, ∆tn = CFL.min(∆x ,∆y ,∆z)

cni,j,k +maxi,j,k

|W ni,j,k |

(15)

ou CFL est le nombre de Courant-Friedrich-Levy, tel que 0 ≤ CFL ≤ 1 (commepour l’advection).

En pratique, il vaut mieux prendre CFL = 0.5 ou CFL = 0.6 plutot que d’espereretre stable pour CFL = 0.99.Et etre numeriquement stable pour ≤ 1 et instable des que > 1 est un indicateurde la correction de la simulation.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 16 / 39

Page 24: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique)Difficultes rencontrees pour les simulations en CUDA

Une ”parallelisation” pas triviale depuis notre code sequentiel

Un code sequentiel qu’on avait deja concu comme assez econome, et qui aete delicat a passer en parallele.Beaucoup d’echange de donnees entre les memoires GPU et CPU :

∆tn se calcule comme un maximum sur le vecteur de vitesse−→W : on est

confronte a un probleme delicat d’algorithmique parallele(reduction). Pour le moment, on fait ce calcul en sequentiel sur leCPU (ce qui implique de tripler les echanges de memoire !) ;

Pour l’ecriture des donnees ρ et p a chaque boucle (soit 8NMO octets

par boucle de temps : pour un maillage 100× 100× 100 on a deja des

transferts de l’ordre de la dizaine de megaoctet par etape). Jusqu’a 40%

du temps de la simulation ! ;

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 17 / 39

Page 25: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique)Difficultes rencontrees pour les simulations en CUDA

Une ”parallelisation” pas triviale depuis notre code sequentiel

Un code sequentiel qu’on avait deja concu comme assez econome, et qui aete delicat a passer en parallele.Beaucoup d’echange de donnees entre la memoire vive et morte :

∆tn se calcule comme un maximum sur le vecteur de vitesse−→W : on est

confronte a un probleme delicat d’algorithmique parallele(reduction). Pour le moment, on fait ce calcul en sequentiel sur leCPU (ce qui implique de tripler les echanges de memoire !) ;

Pour l’ecriture des donnees ρ et p a chaque boucle (soit 8NMO octets

par boucle de temps : pour un maillage 100× 100× 100 on a deja des

transferts de l’ordre de la dizaine de megaoctet par etape). Jusqu’a 40%

du temps de la simulation ! ;

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 17 / 39

Page 26: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Differentes conditions aux limites

Dans les equations precedentes, le vecteur des variables conservatives−→U

depend des flux aux interfaces : a gauche (i − 1/2) et a droite (i + 1/2),en bas (j − 1/2) et en haut (j + 1/2), et en arriere (k − 1/2) et en avant(k + 1/2).

Mais ?

Comment calculer les flux aux interfaces extremes ?=⇒ Differents types de conditions aux limites !

Conditions limites periodiques

On choisit−→F (

−→U n

N) =−→F (

−→U n

0) ; et−→F (

−→U n

−1) =−→F (

−→U n

N−1) ; Idem pour j ,Mselon y et k ,O selon z .

En 1D modelise un tube circulaire. En 2D, l’atmosphere. En 3D, rien detres physique !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 18 / 39

Page 27: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Differentes conditions aux limites

Conditions limites absorbantes

On choisit−→F (

−→U n

N) =−→F (

−→U n

N−1) ; et−→F (

−→U n

−1) =−→F (

−→U n

0) ; Idem pour j ,Mselon y et k ,O selon z .

Modelise un tube (en 1D), une surface de lac (en 2D) ou une piscine (en3D) de taille infinie, lorsque les conditions initiales sont assez eloignees desbords.

Conditions limites de mur

Pour calculer les flux aux interfaces extremes, on suppose−→W .−→n = 0.

Il y a plusieurs strategies pour calculer la pression de la cellule interieure(strategie du pauvre, du pas pauvre, et une autre plus explicite).

Modelise un tube (en 1D), une surface de lac (en 2D) ou une piscine (en3D) avec des bords sur lesquelles se reflechissent les ondes etudiees.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 19 / 39

Page 28: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique)Visualisation via GNUPlot : differentes conditions limites

Figure: Affichage en 2D pour Euler compressible (ParaView) : conditionsperiodiques.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 20 / 39

Page 29: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique)Visualisation via GNUPlot : differentes conditions limites

Figure: Affichage en 2D pour Euler compressible (ParaView) : conditionsabsorbantes.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 21 / 39

Page 30: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique)Visualisation via GNUPlot : differentes conditions limites

Figure: Affichage en 2D pour Euler compressible (ParaView) : conditions demur.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 22 / 39

Page 31: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Terme source S(U)

Dans les equations d’Euler presentees plus haut, on peut rajouter un terme

source−→S (

−→U ).

−→S (

−→U ) peut representer la force de gravite

−→S (

−→U ) =

0ρ.−→g

ρ.−→g .−→W

(16)

Cela revient a rajouter la force de gravite dans l’equation du mouvement, et letravail du poids dans l’equation de l’energie.(Rappel : −→g = [0; 0;−g0]

T , g0 = 9.81m.s−2)

Dans notre resolution, on peut ajouter vraisemblablement ce terme danschacune des trois etapes (mais une seule fois en tout). Nous avons choiside le faire dans le splitting en z .

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 23 / 39

Page 32: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Optimisation du code sequentiel et parallelePremiere comparaison des performances (solveur advection)

Les parametres de la comparaison sont d’abord 256× 256 points, puis512× 512, ensuite 1024× 1024 et enfin 2048× 2048 points, et 1024etapes en temps.

Codes Temps mis (256x256) (512x512) (1024x1024) (2048x2048)

C 43s 2m32s 10m41s 40m21sCUDA 37s 39s 42s 45s

Bref, il est immediat de constater que, comme prevu, le calcul paralleliseavec CUDA est le plus rapide, mais surtout peu dependant du nombrede points !Nous precisons qu’ici n’est pas compte le temps de compilation, mais quel’initialisation et les ecritures dans les fichiers .vtk sont comptees (uneetape sur 20 seulement).

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 24 / 39

Page 33: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Optimisation du code sequentiel et paralleleOptimiser la visualisation des donnees produites

GNUplot et VTK+Paraview Ces deux outils necessitent une etapeque l’experience a montree comme etant la plus couteuse en tempsde calcul : l’ecriture des valeurs du vecteur a afficher, une a une,dans un fichier de la memoire morte de l’ordinateur.En effet, de nombreuses simulations ont permis de montrer quejusqu’a 40% du temps pouvait etre depense cette phase de creationdu fichier, ecriture, et fermeture du fichier.

OpenGL Nous nous sommes interesse a un troisieme moyen devisualisation : OpenGL (Open Graphics Library) . C’est unebibliotheque qui permet un affichage en 3D en temps reel.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 25 / 39

Page 34: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Optimisation du code sequentiel et paralleleOptimiser la visualisation des donnees produites

GNUplot et VTK+Paraview Ces deux outils necessitent une etapeque l’experience a montree comme etant la plus couteuse en tempsde calcul : l’ecriture des valeurs du vecteur a afficher, une a une,dans un fichier de la memoire morte de l’ordinateur.En effet, de nombreuses simulations ont permis de montrer quejusqu’a 40% du temps pouvait etre depense cette phase de creationdu fichier, ecriture, et fermeture du fichier.

OpenGL Nous nous sommes interesse a un troisieme moyen devisualisation : OpenGL (Open Graphics Library) . C’est unebibliotheque qui permet un affichage en 3D en temps reel.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 25 / 39

Page 35: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Optimisation du code sequentiel et paralleleComparaison GNUplot vs OpenGL

Code Temps mis (512x512) Temps mis (256x256)

GNUplot 4m59s 3m27sVTK 43s 31sOpenGL 29s 20s

l’affichage interactif avec GNUplot est le plus lent, car il necessitel’impression du triple de donnees, l’appel du sous processus, et letraitement des donnees ;

la mesure pour l’affichage via VTK est legerement faussee, car necontient que le temps pris par l’impression et ne compte pas lavisualisation post-calcul ;

il est rassurant de constater que l’investissement en OpenGL auraapporte un vrai plus sur le plan des performances : plus de 30% degagne !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 26 / 39

Page 36: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Optimisation du code sequentiel et paralleleDifficulte du developpement, du debuggage et donc de l’optimisation en CUDA

Des outils de developpement difficilement utilisables (mauvais contactavec cuda-gdb et nvvp) ;

Des essais de parallelisation plus ”fine” sans resultats satisfaisants(calcul de ∆t, calcul matriciel) ;

Le choix des parametres de parallelisation (THREADS et GRIDS) estdifficule : beaucoup de tatonnement !

Une comparaison pour un maillage 728× 728, 1024 etapes et desconditions de mur.

Code En ecrivant en .vtk Sans ecrire en .vtk

C 46m28s 32m20sCUDA 12m3s 5m19s−→ Un speed-up de pres de 7 !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 27 / 39

Page 37: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Optimisation du code sequentiel et paralleleDifficulte du developpement, du debuggage et donc de l’optimisation en CUDA

Des outils de developpement difficilement utilisables (mauvais contactavec cuda-gdb et nvvp) ;

Des essais de parallelisation plus ”fine” sans resultats satisfaisants(calcul de ∆t, calcul matriciel) ;

Le choix des parametres de parallelisation (THREADS et GRIDS) estdifficule : beaucoup de tatonnement !

Une comparaison pour un maillage 728× 728, 1024 etapes et desconditions de mur.

Code En ecrivant en .vtk Sans ecrire en .vtk

C 46m28s 32m20sCUDA 12m3s 5m19s−→ Un speed-up de pres de 7 !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 27 / 39

Page 38: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Optimisation du code sequentiel et paralleleDifficulte du developpement, du debuggage et donc de l’optimisation en CUDA

Des outils de developpement difficilement utilisables (mauvais contactavec cuda-gdb et nvvp) ;

Des essais de parallelisation plus ”fine” sans resultats satisfaisants(calcul de ∆t, calcul matriciel) ;

Le choix des parametres de parallelisation (THREADS et GRIDS) estdifficule : beaucoup de tatonnement !

Une comparaison pour un maillage 728× 728, 1024 etapes et desconditions de mur.

Code En ecrivant en .vtk Sans ecrire en .vtk

C 46m28s 32m20sCUDA 12m3s 5m19s−→ Un speed-up de pres de 7 !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 27 / 39

Page 39: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

ConclusionUn petit bonus !

OpenGL → affichage interne pendant le calcul ;

OpenGL → interaction !

Pas encore de simulation interactive fonctionnelle, mais nous y etionspresque !L’affichage via OpenGL en CUDA n’a pas fonctionne aussi bien qu’en C.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 28 / 39

Page 40: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

ConclusionUn petit bonus !

OpenGL → affichage interne pendant le calcul ;

OpenGL → interaction !

Pas encore de simulation interactive fonctionnelle, mais nous y etionspresque !L’affichage via OpenGL en CUDA n’a pas fonctionne aussi bien qu’en C.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 28 / 39

Page 41: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Conclusion

Euler C Nous avons realise un solveur volume finis pour l’equationd’Euler compressible en 3D en C ;

Visualisation Nous visualisons les donnees numeriques calculees entemps reel via OpenGL ou en post-mortem via le couple VTK etParaView ;

CUDA Nous avons porte le code 2D sur GPU via CUDA : undeveloppement pas facile et parfois laborieux ;

Optimisation (1) Nous avons deja ameliore les performances de noscodes Euler2D en C et CUDA. Nous gagnons presque 10% en temps decalcul avec cette premiere couche ;

Optimisation (2) L’objectif initial etait d’atteindre un speed-up de100, nous avons reussi a avoir presque 6.

Interactif N’ajoute rien sur le plan mathematique, mais estinteressant sur le plan informatique ... et permet d’ajouter un effetfestif indeniable !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 29 / 39

Page 42: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Conclusion

Euler C Nous avons realise un solveur volume finis pour l’equationd’Euler compressible en 3D en C ;

Visualisation Nous visualisons les donnees numeriques calculees entemps reel via OpenGL ou en post-mortem via le couple VTK etParaView ;

CUDA Nous avons porte le code 2D sur GPU via CUDA : undeveloppement pas facile et parfois laborieux ;

Optimisation (1) Nous avons deja ameliore les performances de noscodes Euler2D en C et CUDA. Nous gagnons presque 10% en temps decalcul avec cette premiere couche ;

Optimisation (2) L’objectif initial etait d’atteindre un speed-up de100, nous avons reussi a avoir presque 6.

Interactif N’ajoute rien sur le plan mathematique, mais estinteressant sur le plan informatique ... et permet d’ajouter un effetfestif indeniable !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 29 / 39

Page 43: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Conclusion

Euler C Nous avons realise un solveur volume finis pour l’equationd’Euler compressible en 3D en C ;

Visualisation Nous visualisons les donnees numeriques calculees entemps reel via OpenGL ou en post-mortem via le couple VTK etParaView ;

CUDA Nous avons porte le code 2D sur GPU via CUDA : undeveloppement pas facile et parfois laborieux ;

Optimisation (1) Nous avons deja ameliore les performances de noscodes Euler2D en C et CUDA. Nous gagnons presque 10% en temps decalcul avec cette premiere couche ;

Optimisation (2) L’objectif initial etait d’atteindre un speed-up de100, nous avons reussi a avoir presque 6.

Interactif N’ajoute rien sur le plan mathematique, mais estinteressant sur le plan informatique ... et permet d’ajouter un effetfestif indeniable !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 29 / 39

Page 44: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Conclusion

Euler C Nous avons realise un solveur volume finis pour l’equationd’Euler compressible en 3D en C ;

Visualisation Nous visualisons les donnees numeriques calculees entemps reel via OpenGL ou en post-mortem via le couple VTK etParaView ;

CUDA Nous avons porte le code 2D sur GPU via CUDA : undeveloppement pas facile et parfois laborieux ;

Optimisation (1) Nous avons deja ameliore les performances de noscodes Euler2D en C et CUDA. Nous gagnons presque 10% en temps decalcul avec cette premiere couche ;

Optimisation (2) L’objectif initial etait d’atteindre un speed-up de100, nous avons reussi a avoir presque 6.

Interactif N’ajoute rien sur le plan mathematique, mais estinteressant sur le plan informatique ... et permet d’ajouter un effetfestif indeniable !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 29 / 39

Page 45: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Conclusion

Euler C Nous avons realise un solveur volume finis pour l’equationd’Euler compressible en 3D en C ;

Visualisation Nous visualisons les donnees numeriques calculees entemps reel via OpenGL ou en post-mortem via le couple VTK etParaView ;

CUDA Nous avons porte le code 2D sur GPU via CUDA : undeveloppement pas facile et parfois laborieux ;

Optimisation (1) Nous avons deja ameliore les performances de noscodes Euler2D en C et CUDA. Nous gagnons presque 10% en temps decalcul avec cette premiere couche ;

Optimisation (2) L’objectif initial etait d’atteindre un speed-up de100, nous avons reussi a avoir presque 6.

Interactif N’ajoute rien sur le plan mathematique, mais estinteressant sur le plan informatique ... et permet d’ajouter un effetfestif indeniable !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 29 / 39

Page 46: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Conclusion

Euler C Nous avons realise un solveur volume finis pour l’equationd’Euler compressible en 3D en C ;

Visualisation Nous visualisons les donnees numeriques calculees entemps reel via OpenGL ou en post-mortem via le couple VTK etParaView ;

CUDA Nous avons porte le code 2D sur GPU via CUDA : undeveloppement pas facile et parfois laborieux ;

Optimisation (1) Nous avons deja ameliore les performances de noscodes Euler2D en C et CUDA. Nous gagnons presque 10% en temps decalcul avec cette premiere couche ;

Optimisation (2) L’objectif initial etait d’atteindre un speed-up de100, nous avons reussi a avoir presque 6.

Interactif N’ajoute rien sur le plan mathematique, mais estinteressant sur le plan informatique ... et permet d’ajouter un effetfestif indeniable !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 29 / 39

Page 47: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

ConclusionFin

Merci pour votre attention.N’hesitez pas a poser vos questions !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 30 / 39

Page 48: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Bibliographie

Livres :

DeDu Systemes hyperboliques de lois de conservation, de Bruno Despres etFrancois Dubois ;

SaKr CUDA by example, de Jason Sanders et Edward Kandrot ;

Ghi99 An overview of the VFFC-method and tools for the simulation oftwo-phase flows de J. M. Ghidaglia ;

GhiPa On Boundary conditions for multidimensional hyperbolic systems ofconservation laws in the finite volume framework de J. M. Ghidagliaet F. Pascal ;

Sites web, articles :

http://www.nvidia.fr/object/what_is_cuda_new_fr.html

Page de NVidia CUDA ;

Buf06 http://ufrmeca.univ-lyon1.fr/~buffat/COURS/AERO_HTML/

courshtml1.html Cours de dynamique des gaz, par Marc BUFFAT ;

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 31 / 39

Page 49: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

AnnexeEquation d’advection 2D

L’equation sous forme differentielle en 2D

∂tu + div(−→c u) = 0 (17)

u : R+ × R2 → R : represente une quantite associee a une particule de

fluide,−→c = (a, b)T : est une vitesse, representant le courant,

On discretise en espace :Nombre de colonne : ncsd ;Nombre de ligne : nlsd ;La valeur de u dans le carre (i , j)est u[(i − 1)ncsd + j ]

... ... ... ... ...

... ... ... ... ...

... ... (i,j) ... ...

... ... ... ... ...

1 2 3 ... ...

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 32 / 39

Page 50: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique) AnnexeVisualisation via GNUPlot : exemple d’un morceau de code

1 Write ( nom graphique , u , N, M) ;2 f p r i n t f ( g nup l o t p t r , ” unse t key \ n s e t pm3d map\ n s e t t ime \ n s e t

x l a b e l ’ x i , i =0..%d ’\ n s e t y l a b e l ’ y j , j =0..%d ’\ n s e tz l a b e l ’ Va l e u r s numer iques de u [ i , j ] ’\ n s e t g r i d x t i c sy t i c s \ n s e t h idden3d \ n s e t nokey\ n s e t t i t l e ’ Besson HechtI s n a r d 2012 − Param : [ c x , c y , t , borne ]=[%f ,%f ,%d,%d ] − i t=%d ’\n” , N, M, a , b , t y p e c o n d i n i t , borne , i t ) ;

3 f p r i n t f ( g nup l o t p t r , ” pause 0 .00005\ n s p l o t \”%s \” wi th l i n e s \n” , nom graph ique ) ; f f l u s h ( g n u p l o t p t r ) ;

4 // Pour e c r i r e l e s donnees , a f i n de l e s a f f i c h e r ”en tempsr e e l ”

5 vo i d Wri te ( cha r ∗nom , f l o a t ∗ f , i n t n , i n t m) 6 i n t i , j ; FILE ∗ f i l e=fopen (nom , ”w” ) ; i n t pasn , pasm ;7 pasn = 1+(n / NOMBRE MAX X) ; pasm = 1+(m / NOMBRE MAX Y) ;8 f o r ( i =0; i<n ; i = i+pasn ) f o r ( j =0; j<m; j = j+pasm) 9 f p r i n t f ( f i l e , ”\ t \ t%f \ t \ t%f \ t \ t%f \n” , ( 0 . 5∗ hx + i ∗hx ) ,

( 0 . 5∗ hy + j ∗hy ) , f [ I2D (n , i , j ) ] ) ;10 f p r i n t f ( f i l e , ”\n” ) ; 11 f f l u s h ( f i l e ) ;

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 33 / 39

Page 51: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique) AnnexeVisualisation via VTK et ParaView : exemple d’un morceau de code C

1 // Pour e c r i r e no t r e ma t r i c e rho ou P dans un f i c h i e r VTK2 h o s t vo i d WriteVtk3D ( cha r ∗nom , doub l e ∗ f , i n t N, i n t M,

i n t O, f l o a t hx , f l o a t hy , f l o a t hz , cha r ∗ nom va r i ab l e ,i n t debug in t )

3 ( . . // pas sage pas i n t e r e s s a n t )4 f p r i n t f ( f i l e , ”# vtk Da t aF i l e Ve r s i o n 3 .0\ n# Va l eu r s

Euler 3D POINTS CUDA\nASCII\nDATASET STRUCTURED POINTS\n” ) ;

5 f p r i n t f ( f i l e , ”DIMENSIONS %d %d %d\n” , N, M, O) ;6 f p r i n t f ( f i l e , ”ORIGIN %f %f %f \n” , 0 .5∗ hx , 0 .5∗ hy , 0 .5∗ hz ) ;7 f p r i n t f ( f i l e , ”SPACING %f %f %f \n” , hx , hy , hz ) ;8 f p r i n t f ( f i l e , ”POINT DATA %d\n” , N∗M∗O) ;9 f p r i n t f ( f i l e , ”SCALARS %s f l o a t \n” , nom va r i a b l e ) ;

10 f p r i n t f ( f i l e , ”LOOKUP TABLE d e f a u l t \n” ) ;11 // L ’ e tape d ’ e c r i t u r e e s t i c i s e q u e n t i e l l e avec VTK !12 f o r ( i =0; i<M; i ++) f o r ( j =0; j<N; j ++) f o r ( l =0; l<O;

l ++)13 f p r i n t f ( f i l e , ”%f \n” , f [ i ∗N∗O + j ∗O + l ] ) ; 14 f f l u s h ( f i l e ) ; f c l o s e ( f i l e ) ;

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 34 / 39

Page 52: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique) AnnexeVisualisation via VTK et ParaView : exemple d’un morceau de code C (2)

Et a la fin de chaque etape de la boucle en temps :

1 // On impr ime Rho2 s p r i n t f ( nom graphique , ” E c r i r e v a l e u r s e u l e r 3D CUDA %

d rho %s . v tk ” , i t , n om c o n d i t i o n s i n i t i a l e s (GET CONDITION INITIALES ) ) ;

3 p r i n t f ( ”Etape %d :\ ten cou r s . . . \ t e c r i t u r e dans l e f i c h i e re x t e r n e <%s> en cou r s [RHO ] . . . \ n” , i t , nom graph ique ) ;

4 WriteVtk3D ( nom graphique , rho , N, M, O, hx , hy , hz , ”Rho” ,GET DEBUG VOIR VTK) ;

=⇒ C’est moins ”simple” !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 35 / 39

Page 53: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique) AnnexeVisualisation via VTK et ParaView : exemple d’un morceau de code C (2)

Et a la fin de chaque etape de la boucle en temps :

1 // On impr ime Rho2 s p r i n t f ( nom graphique , ” E c r i r e v a l e u r s e u l e r 3D CUDA %

d rho %s . v tk ” , i t , n om c o n d i t i o n s i n i t i a l e s (GET CONDITION INITIALES ) ) ;

3 p r i n t f ( ”Etape %d :\ ten cou r s . . . \ t e c r i t u r e dans l e f i c h i e re x t e r n e <%s> en cou r s [RHO ] . . . \ n” , i t , nom graph ique ) ;

4 WriteVtk3D ( nom graphique , rho , N, M, O, hx , hy , hz , ”Rho” ,GET DEBUG VOIR VTK) ;

=⇒ C’est moins ”simple” !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 36 / 39

Page 54: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Valeurs des matrices L

−→n , et R−→n

Nous avons retrouve les valeurs formelles de ces matrices par une feuille decalcul formelle via Maple. Ou on a pose

−→Ω1 et

−→Ω2 une base orthogonale directe

de l’hyperplan de normale −→n .

Notre matrice R−→n (selon la normale −→n ) vaut

R−→n =

1 1 0 0 1−→W − c−→n

−→W

−→Ω1

−→Ω2

−→W + c .−→n

H − (−→W .−→n )c H − c2

k

−→W .

−→Ω1

−→W .

−→Ω2 H + (

−→W .−→n )c

(18)

Notre matrice L−→n (selon la normale −→n ) vaut

L−→n =

12c2 (K +

−→W .−→n c) k

c2(H −W 2) −

−→W .

−→Ω1 −

−→W .

−→Ω2

12c2 (K −

−→W .−→n c)

12c2 (−k

−→W −−→n c) k

c2(−→W )

−→Ω1

−→Ω2

12c2 (−k

−→W +−→n c)

12c2 .k − k

c20 0 1

2c2 .k

(19)L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 37 / 39

Page 55: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Theorie)Valeurs des matrices L

−→n , et R−→n

Nous avons retrouve les valeurs formelles de ces matrices par une feuille decalcul formelle via Maple. Ou on a pose

−→Ω1 et

−→Ω2 une base orthogonale directe

de l’hyperplan de normale −→n .

Notre matrice R−→n (selon la normale −→n ) vaut

R−→n =

1 1 0 0 1−→W − c−→n

−→W

−→Ω1

−→Ω2

−→W + c .−→n

H − (−→W .−→n )c H − c2

k

−→W .

−→Ω1

−→W .

−→Ω2 H + (

−→W .−→n )c

(18)

Notre matrice L−→n (selon la normale −→n ) vaut

L−→n =

12c2 (K +

−→W .−→n c) k

c2(H −W 2) −

−→W .

−→Ω1 −

−→W .

−→Ω2

12c2 (K −

−→W .−→n c)

12c2 (−k

−→W −−→n c) k

c2(−→W )

−→Ω1

−→Ω2

12c2 (−k

−→W +−→n c)

12c2 .k − k

c20 0 1

2c2 .k

(19)L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 37 / 39

Page 56: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique)Difficultes rencontrees pour les simulations en C

Un schema assez complexe

Le schema numerique pour effectuer des simulations numeriques sur cesequations d’Euler est plus complique que celui utilise pour l’equationd’advection.

Il fait intervenir deux douzaines de variables, du calcul matriciel, beaucoupde calculs intermediaires ; et n’est consistant que pour des conditionsinitiales assez reguliere (rien de formel n’a ete fait sur cette observation).

Le schema explicite presente, en pre-calculant les valeurs formelles desmatrices de passages et des valeurs propres, est un algorithme lineairedans le nombre de points (on ne peut pas faire mieux) : de l’ordre des.d2NMO avec une constante s ≤ 50.

=⇒ Pour optimiser les performances de nos resolutions, il faut chercher ducote pratique et non theorique (schema de complexite algorithmiquedeja optimale) !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 38 / 39

Page 57: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique)Difficultes rencontrees pour les simulations en C

Un schema assez complexe

Le schema numerique pour effectuer des simulations numeriques sur cesequations d’Euler est plus complique que celui utilise pour l’equationd’advection.

Il fait intervenir deux douzaines de variables, du calcul matriciel, beaucoupde calculs intermediaires ; et n’est consistant que pour des conditionsinitiales assez reguliere (rien de formel n’a ete fait sur cette observation).

Le schema explicite presente, en pre-calculant les valeurs formelles desmatrices de passages et des valeurs propres, est un algorithme lineairedans le nombre de points (on ne peut pas faire mieux) : de l’ordre des.d2NMO avec une constante s ≤ 50.

=⇒ Pour optimiser les performances de nos resolutions, il faut chercher ducote pratique et non theorique (schema de complexite algorithmiquedeja optimale) !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 38 / 39

Page 58: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique)Difficultes rencontrees pour les simulations en C

Un schema assez complexe

Le schema numerique pour effectuer des simulations numeriques sur cesequations d’Euler est plus complique que celui utilise pour l’equationd’advection.

Il fait intervenir deux douzaines de variables, du calcul matriciel, beaucoupde calculs intermediaires ; et n’est consistant que pour des conditionsinitiales assez reguliere (rien de formel n’a ete fait sur cette observation).

Le schema explicite presente, en pre-calculant les valeurs formelles desmatrices de passages et des valeurs propres, est un algorithme lineairedans le nombre de points (on ne peut pas faire mieux) : de l’ordre des.d2NMO avec une constante s ≤ 50.

=⇒ Pour optimiser les performances de nos resolutions, il faut chercher ducote pratique et non theorique (schema de complexite algorithmiquedeja optimale) !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 38 / 39

Page 59: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique)Difficultes rencontrees pour les simulations en C

Un schema assez complexe

Le schema numerique pour effectuer des simulations numeriques sur cesequations d’Euler est plus complique que celui utilise pour l’equationd’advection.

Il fait intervenir deux douzaines de variables, du calcul matriciel, beaucoupde calculs intermediaires ; et n’est consistant que pour des conditionsinitiales assez reguliere (rien de formel n’a ete fait sur cette observation).

Le schema explicite presente, en pre-calculant les valeurs formelles desmatrices de passages et des valeurs propres, est un algorithme lineairedans le nombre de points (on ne peut pas faire mieux) : de l’ordre des.d2NMO avec une constante s ≤ 50.

=⇒ Pour optimiser les performances de nos resolutions, il faut chercher ducote pratique et non theorique (schema de complexite algorithmiquedeja optimale) !

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 38 / 39

Page 60: Soutenance de Stage - Crans · Soutenance de Stage M´ethodes de volumes finis sur carte graphique nVidia pour Euler compressible L.Besson S.Hecht M.Isnard ENS Cachan 2 juillet 2012

Equations d’Euler (Pratique)Visualisation via VTK et ParaView : exemple pour Euler 3D

Un film pour Euler 3D avec terme source : vue en coupe.

Figure: Affichage en 3D pour Euler compressible (ParaView) : conditionsperiodiques, avec terme source.

L.Besson, S.Hecht, M.Isnard (ENS Cachan) Soutenance de Stage 2 juillet 2012 39 / 39