formalisation et automatisation de yao, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content ›...

122
Assimilation YAO Génération directives Parallélisation Conclusion Formalisation et automatisation de YAO, générateur de code pour l’assimilation variationnelle de données Luigi NARDI sous la direction de Fouad BADRAN et Sylvie THIRIA LOCEAN : Laboratoire d’Océanographie et du Climat Expérimentation et Approches Numériques CEDRIC : Centre d’Etude et De Recherche en Informatique du CNAM Luigi Nardi YAO : assimilation de données

Upload: others

Post on 30-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Formalisation et automatisation de YAO,générateur de code pour l’assimilation

variationnelle de données

Luigi NARDI

sous la direction de Fouad BADRAN et Sylvie THIRIA

LOCEAN : Laboratoire d’Océanographie et du ClimatExpérimentation et Approches Numériques

CEDRIC : Centre d’Etude et De Recherche enInformatique du CNAM

Luigi Nardi YAO : assimilation de données

Page 2: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Formalisme de l’assimilation

Modèle numérique direct

M : modèle direct entre deux pas de temps ti , ti+1 ;x(t0) : paramètres de contrôle ;Mi(x(t0)) : état au temps ti à partir de l’état à t0.

t1 t2 t3 tn

. . .

M M M M

x(t0)

Objectif : prédire ou analyser l’évolution d’un phénomènemais . . . les modèles ne sont pas parfaits !

Luigi Nardi YAO : assimilation de données

Page 3: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Formalisme de l’assimilation

Assimilation variationnnelle de données 4D-Var

Trajectoire

tempsx(t0)

Fonction de coût à minimiser : J(x(t0)) Gradient : ∇x(t0)J

Luigi Nardi YAO : assimilation de données

Page 4: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Formalisme de l’assimilation

Assimilation variationnnelle de données 4D-Var

t4

Observations à ti

t1t2

t3

Trajectoire

tempsx(t0)

Fonction de coût à minimiser : J(x(t0)) Gradient : ∇x(t0)J

Luigi Nardi YAO : assimilation de données

Page 5: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Formalisme de l’assimilation

Assimilation variationnnelle de données 4D-Var

t4

Observations à ti

t1

Trajectoire corrigée

t2

t3

Trajectoire

tempsx(t0)

Fonction de coût à minimiser : J(x(t0)) Gradient : ∇x(t0)J

Luigi Nardi YAO : assimilation de données

Page 6: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Formalisme de l’assimilation

Assimilation variationnnelle de données 4D-Var

t4

Observations à ti

t1

Trajectoire corrigée

t2

t3

Trajectoire

tempsx(t0)

Fonction de coût à minimiser : J(x(t0)) Gradient : ∇x(t0)J

Luigi Nardi YAO : assimilation de données

Page 7: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Formalisme de l’assimilation

Formalisme de l’assimilation variationnelle de données

Fonction de coût J :

J(x(t0)) =12

nX

i=1

(y i − yoi )

T R−1i (y i − yo

i ) +12

(x(t0) − xb)T B−1(x(t0) − xb).

y i : sorties du modèle ;

yoi : observations au temps ti ;

Ri et B : matrices de variance-covariance ;

xb : vecteur d’ébauche.

∇x(t0)J =n

X

i=1

MTi (x(t0))

| {z }

adjoint

HTi [R−1

i (y i − yoi )] + B−1(x(t0) − xb).

Hi : opérateur d’observation ;

MTi (x(t0)) : modèle adjoint.

Luigi Nardi YAO : assimilation de données

Page 8: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Formalisme de l’assimilation

Formalisme de l’assimilation variationnelle de données

Fonction de coût J :

J(x(t0)) =12

nX

i=1

(y i − yoi )

T R−1i (y i − yo

i )

| {z }

attache aux donnees

+12

(x(t0) − xb)T B−1(x(t0) − xb).

y i : sorties du modèle ;yo

i : observations au temps ti ;Ri et B : matrices de variance-covariance ;xb : vecteur d’ébauche.

∇x(t0)J =n

X

i=1

MTi (x(t0))

| {z }

adjoint

HTi [R−1

i (y i − yoi )] + B−1(x(t0) − xb).

Hi : opérateur d’observation ;MT

i (x(t0)) : modèle adjoint.Luigi Nardi YAO : assimilation de données

Page 9: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Formalisme de l’assimilation

Formalisme de l’assimilation variationnelle de données

Fonction de coût J :

J(x(t0)) =12

nX

i=1

(y i − yoi )

T R−1i (y i − yo

i ) +12

(x(t0) − xb)T B−1(x(t0) − xb)| {z }

r egularisation

.

y i : sorties du modèle ;yo

i : observations au temps ti ;Ri et B : matrices de variance-covariance ;xb : vecteur d’ébauche.

∇x(t0)J =n

X

i=1

MTi (x(t0))

| {z }

adjoint

HTi [R−1

i (y i − yoi )] + B−1(x(t0) − xb).

Hi : opérateur d’observation ;MT

i (x(t0)) : modèle adjoint.

Luigi Nardi YAO : assimilation de données

Page 10: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Formalisme de l’assimilation

Formalisme de l’assimilation variationnelle de données

Fonction de coût J :

J(x(t0)) =12

nX

i=1

(y i − yoi )

T R−1i (y i − yo

i ) +12

(x(t0) − xb)T B−1(x(t0) − xb).

y i : sorties du modèle ;

yoi : observations au temps ti ;

Ri et B : matrices de variance-covariance ;

xb : vecteur d’ébauche.

∇x(t0)J =n

X

i=1

MTi (x(t0))

| {z }

adjoint

HTi [R−1

i (y i − yoi )] + B−1(x(t0) − xb).

Hi : opérateur d’observation ;

MTi (x(t0)) : modèle adjoint.

Luigi Nardi YAO : assimilation de données

Page 11: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Formalisme de l’assimilation

Résumé assimilation de données

Assimilationde données

Modèledirect

Eq.physique

Espace

Trajectoire

Paramètresde

contrôle

ObservationsFonctionde coût

H, R, B

Adjoint Minimiseur

Luigi Nardi YAO : assimilation de données

Page 12: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Les enjeux informatiques

Implémentation informatique

Programme Programmeadjoint

M

modèle

Contexte de l’assimilation

Luigi Nardi YAO : assimilation de données

Page 13: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Les enjeux informatiques

Pourquoi c’est difficile ?

L’écriture du programme adjoint peut être très lourde ;

difficulté à tester les nouvelles avancées en assimilation dedonnées ;

très grandes tailles en jeu, l’ECMWF utilise pour son systèmeopérationnel de prédiction :

2.5 ∗ 107 observations par jour ;vecteur d’état de taille 1.5 ∗ 109 ;

optimisation performances :

en temps de calcul ;en mémoire allouée (des centaines de To).

Luigi Nardi YAO : assimilation de données

Page 14: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Les enjeux informatiques

Pourquoi c’est difficile ?

L’écriture du programme adjoint peut être très lourde ;

difficulté à tester les nouvelles avancées en assimilation dedonnées ;

très grandes tailles en jeu, l’ECMWF utilise pour son systèmeopérationnel de prédiction :

2.5 ∗ 107 observations par jour ;vecteur d’état de taille 1.5 ∗ 109 ;

optimisation performances :

en temps de calcul ;en mémoire allouée (des centaines de To).

Luigi Nardi YAO : assimilation de données

Page 15: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Les enjeux informatiques

Pourquoi c’est difficile ?

L’écriture du programme adjoint peut être très lourde ;

difficulté à tester les nouvelles avancées en assimilation dedonnées ;

très grandes tailles en jeu, l’ECMWF utilise pour son systèmeopérationnel de prédiction :

2.5 ∗ 107 observations par jour ;vecteur d’état de taille 1.5 ∗ 109 ;

optimisation performances :

en temps de calcul ;en mémoire allouée (des centaines de To).

Luigi Nardi YAO : assimilation de données

Page 16: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Les enjeux informatiques

Pourquoi c’est difficile ?

L’écriture du programme adjoint peut être très lourde ;

difficulté à tester les nouvelles avancées en assimilation dedonnées ;

très grandes tailles en jeu, l’ECMWF utilise pour son systèmeopérationnel de prédiction :

2.5 ∗ 107 observations par jour ;vecteur d’état de taille 1.5 ∗ 109 ;

optimisation performances :

en temps de calcul ;en mémoire allouée (des centaines de To).

Luigi Nardi YAO : assimilation de données

Page 17: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Les enjeux informatiques

Logiciels pour l’assimilation variationnelle

1 Génération du programme adjoint par différentiationautomatique : OpenAD, TAF, TAPENADE ;

2 minimiseurs : M1QN3, M2QN1 ;3 couplage de modèles : OASIS, PALM ;4 performances : ?

YAOpermet de traiter ces points simultanément.

Luigi Nardi YAO : assimilation de données

Page 18: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Les enjeux informatiques

Logiciels pour l’assimilation variationnelle

1 Génération du programme adjoint par différentiationautomatique : OpenAD, TAF, TAPENADE ;

2 minimiseurs : M1QN3, M2QN1 ;3 couplage de modèles : OASIS, PALM ;4 performances : ?

YAOpermet de traiter ces points simultanément.

Luigi Nardi YAO : assimilation de données

Page 19: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Les enjeux informatiques

Logiciels pour l’assimilation variationnelle

1 Génération du programme adjoint par différentiationautomatique : OpenAD, TAF, TAPENADE ;

2 minimiseurs : M1QN3, M2QN1 ;3 couplage de modèles : OASIS, PALM ;4 performances : ?

YAOpermet de traiter ces points simultanément.

Luigi Nardi YAO : assimilation de données

Page 20: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Les enjeux informatiques

Logiciels pour l’assimilation variationnelle

1 Génération du programme adjoint par différentiationautomatique : OpenAD, TAF, TAPENADE ;

2 minimiseurs : M1QN3, M2QN1 ;3 couplage de modèles : OASIS, PALM ;4 performances : ?

YAOpermet de traiter ces points simultanément.

Luigi Nardi YAO : assimilation de données

Page 21: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Les enjeux informatiques

Logiciels pour l’assimilation variationnelle

1 Génération du programme adjoint par différentiationautomatique : OpenAD, TAF, TAPENADE ;

2 minimiseurs : M1QN3, M2QN1 ;3 couplage de modèles : OASIS, PALM ;4 performances : ?

YAOpermet de traiter ces points simultanément.

Luigi Nardi YAO : assimilation de données

Page 22: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Les enjeux informatiques

Contribution de la thèse

Un travail de recherche en informatique a été entrepris dans lecadre du logiciel YAO.

Objectif à moyen terme : établir les bases permettant de faireévoluer YAO vers une plateforme générale et opérationnellepour l’assimilation de données 4D-Var.

Reformalisation des spécifications de YAO ;

automatisation de tâches ;

parallélisation automatique.

Luigi Nardi YAO : assimilation de données

Page 23: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Les enjeux informatiques

Contribution de la thèse

Un travail de recherche en informatique a été entrepris dans lecadre du logiciel YAO.

Objectif à moyen terme : établir les bases permettant de faireévoluer YAO vers une plateforme générale et opérationnellepour l’assimilation de données 4D-Var.

Reformalisation des spécifications de YAO ;

automatisation de tâches ;

parallélisation automatique.

Luigi Nardi YAO : assimilation de données

Page 24: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Les enjeux informatiques

Sommaire

1 Assimilation de donnéesFormalisme de l’assimilationLes enjeux informatiques

2 YAO

3 Génération automatique des directives order

4 Parallélisation automatique

5 Conclusion et perspectives

Luigi Nardi YAO : assimilation de données

Page 25: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Sommaire

1 Assimilation de données

2 YAOGraphe modulaireApplication

3 Génération automatique des directives order

4 Parallélisation automatique

5 Conclusion et perspectives

Luigi Nardi YAO : assimilation de données

Page 26: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Graphe modulaire

Graphe modulaire : “divide et impera”

module : entité de calcul quireprésente une fonction ;

connexion de base : transmission dedonnées entre modules.

Luigi Nardi YAO : assimilation de données

Page 27: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Graphe modulaire

Graphe modulaire : “divide et impera”

module : entité de calcul quireprésente une fonction ;

connexion de base : transmission dedonnées entre modules.

xq2

xp1

xp2

yp1

yp2

xl1

xl2yl2

yl1

Fp

xq1 Fq

yq1

yq2

xr1

xr2

xr3

yr1

yr2

Fr

Fl

Luigi Nardi YAO : assimilation de données

Page 28: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Graphe modulaire

Graphe modulaire : “divide et impera”

module : entité de calcul quireprésente une fonction ;

connexion de base : transmission dedonnées entre modules.

xq2

xp1

xp2

yp1

yp2

xl1

xl2yl2

yl1

Fp

xq1 Fq

yq1

yq2

xr1

xr2

xr3

yr1

yr2

Fr

Fl

modèle direct <=> graphemodulaire

Luigi Nardi YAO : assimilation de données

Page 29: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Graphe modulaire

Réplication du graphe

Le même graphe est répété pour chaque point de grille etchaque pas de temps.

F1

F2

F4

F3

F5

Luigi Nardi YAO : assimilation de données

Page 30: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Graphe modulaire

Réplication du graphe

Le même graphe est répété pour chaque point de grille etchaque pas de temps.

F1

F2

F4

F3

F5

Luigi Nardi YAO : assimilation de données

Page 31: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Graphe modulaire

Modèle direct

En passe avant on calcule le modèle direct :procédure forward .

x

F1

F2

F3

y2 = F2(x2)

y3 = F3(x3)

x1,2

x1,1

x1,3

x2,3

x2,2

x2,1

y3,2

y3,1

x3,1

x3,2

y2,1

y2,2

y1,1

y1 = F1(x1)

y

Luigi Nardi YAO : assimilation de données

Page 32: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Graphe modulaire

Modèle direct

En passe avant on calcule le modèle direct :procédure forward .

x

F1

F2

F3

y2 = F2(x2)

y3 = F3(x3)

x1,2

x1,1

x1,3

x2,3

x2,2

x2,1

y3,2

y3,1

x3,1

x3,2

y2,1

y2,2

y1,1

y1 = F1(x1)

y

Luigi Nardi YAO : assimilation de données

Page 33: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Graphe modulaire

Modèle adjoint

En passe arrière on calcule le modèle adjoint :procédure backward .

∇x(t0)J

F1

F2

F3

y2 = F2(x2)

y1 = F1(x1)

y3 = F3(x3)

x1,2

x1,1

x1,3

x2,3

x2,2

x2,1

y3,2

y3,1

x3,1

x3,2

y2,1

y2,2

y1,1

dx2,i =∂y2,j

∂x2,i

dx1,i =∂y1,j

∂x1,i

dy2,2

dy2,1

dy3,1

dy3,2

dx3,i =∂y3,j

∂x3,i

dy1,1∑

∇y iJ

Luigi Nardi YAO : assimilation de données

Page 34: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Graphe modulaire

Modèle adjoint

En passe arrière on calcule le modèle adjoint :procédure backward .

∇x(t0)J

F1

F2

F3

y2 = F2(x2)

y1 = F1(x1)

y3 = F3(x3)

x1,2

x1,1

x1,3

x2,3

x2,2

x2,1

y3,2

y3,1

x3,1

x3,2

y2,1

y2,2

y1,1

dx2,i =∂y2,j

∂x2,i

dx1,i =∂y1,j

∂x1,i

dy2,2

dy2,1

dy3,1

dy3,2

dx3,i =∂y3,j

∂x3,i

dy1,1∑

∇y iJ

Luigi Nardi YAO : assimilation de données

Page 35: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Application

Le modèle numérique 2D Shallow-water

Variables de la dynamique :

uijt = uijt−2+2∆t

−g∗

∆x

h

hi+1jt−1 − hijt−1

i

+f

4

h

vijt−1 + vij+1t−1 + vi+1jt−1 + vi+1j+1t−1

i

− γ · uijt−2

!

vijt = vijt−2+2∆t

−g∗

∆y

h

hijt−1 − hij−1t−1

i

f

4

h

ui−1j−1t−1 + ui−1jt−1 + uij−1t−1 + uijt−1

i

− γ · vijt−2

!

hijt = hijt−2 − 2∆t · H„ uijt−1 − ui−1jt−1

∆x+

vij+1t−1 − vijt−1

∆y

«

Filtre d’Asselin :

uijt = uijt−1 + α(uijt−1 − 2uijt−1 + uijt )

vijt = vijt−1 + α(vijt−1 − 2vijt−1 + vijt )

hijt = hijt−1 + α(hijt−1 − 2hijt−1 + hijt )

u,v : vitesses horizontales.

h : hauteur de l’eau.

Luigi Nardi YAO : assimilation de données

Page 36: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Application

Le modèle numérique 2D Shallow-water

Variables de la dynamique :

uijt = uijt−2+2∆t

−g∗

∆x

h

hi+1jt−1 − hijt−1

i

+f

4

h

vijt−1 + vij+1t−1 + vi+1jt−1 + vi+1j+1t−1

i

− γ · uijt−2

!

vijt = vijt−2+2∆t

−g∗

∆y

h

hijt−1 − hij−1t−1

i

f

4

h

ui−1j−1t−1 + ui−1jt−1 + uij−1t−1 + uijt−1

i

− γ · vijt−2

!

hijt = hijt−2 − 2∆t · H„ uijt−1 − ui−1jt−1

∆x+

vij+1t−1 − vijt−1

∆y

«

Filtre d’Asselin :

uijt = uijt−1 + α(uijt−1 − 2uijt−1 + uijt )

vijt = vijt−1 + α(vijt−1 − 2vijt−1 + vijt )

hijt = hijt−1 + α(hijt−1 − 2hijt−1 + hijt )

u,v : vitesses horizontales.

h : hauteur de l’eau.

Luigi Nardi YAO : assimilation de données

Page 37: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Application

Langage de description YAO

trajectory 100space 50 50

module H input 3 output 1module Û input 3 output 1module V input 3 output 1module H input 5 output 1module U input 7 output 1module V input 7 output 1

ctin H from H i j t-1ctin H from H i j t-1ctin H from H i j tctin Û from Û i j t-1ctin Û from U i j t-1ctin Û from U i j tctin V from V i j t-1ctin V from V i j t-1ctin V from V i j tctin H from H i j t-1ctin H from U i j t-1......

order YA1order YA2

H U V H Û V

Luigi Nardi YAO : assimilation de données

Page 38: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Application

Langage de description YAO

trajectory 100space 50 50

module H input 3 output 1module Û input 3 output 1module V input 3 output 1module H input 5 output 1module U input 7 output 1module V input 7 output 1

ctin H from H i j t-1ctin H from H i j t-1ctin H from H i j tctin Û from Û i j t-1ctin Û from U i j t-1ctin Û from U i j tctin V from V i j t-1ctin V from V i j t-1ctin V from V i j tctin H from H i j t-1ctin H from U i j t-1......

order YA1order YA2

H U V H Û V

Luigi Nardi YAO : assimilation de données

Page 39: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Application

Langage de description YAO

trajectory 100space 50 50

module H input 3 output 1module Û input 3 output 1module V input 3 output 1module H input 5 output 1module U input 7 output 1module V input 7 output 1

ctin H from H i j t-1ctin H from H i j t-1ctin H from H i j tctin Û from Û i j t-1ctin Û from U i j t-1ctin Û from U i j tctin V from V i j t-1ctin V from V i j t-1ctin V from V i j tctin H from H i j t-1ctin H from U i j t-1......

order YA1order YA2

H U V H Û V

Luigi Nardi YAO : assimilation de données

Page 40: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Application

Langage de description YAO

trajectory 100space 50 50

module H input 3 output 1module Û input 3 output 1module V input 3 output 1module H input 5 output 1module U input 7 output 1module V input 7 output 1

ctin H from H i j t-1ctin H from H i j t-1ctin H from H i j tctin Û from Û i j t-1ctin Û from U i j t-1ctin Û from U i j tctin V from V i j t-1ctin V from V i j t-1ctin V from V i j tctin H from H i j t-1ctin H from U i j t-1......

order YA1order YA2

H U V H Û V

hijt = hijt−1+α(hijt−1−2hijt−1+hijt)

Hijt−1

Hijt−1 Hijt

Hijt

Luigi Nardi YAO : assimilation de données

Page 41: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Application

Langage de description YAO

trajectory 100space 50 50

module H input 3 output 1module Û input 3 output 1module V input 3 output 1module H input 5 output 1module U input 7 output 1module V input 7 output 1

ctin H from H i j t-1ctin H from H i j t-1ctin H from H i j tctin Û from Û i j t-1ctin Û from U i j t-1ctin Û from U i j tctin V from V i j t-1ctin V from V i j t-1ctin V from V i j tctin H from H i j t-1ctin H from U i j t-1......

order YA1order YA2

H U V H Û V

hijt = hijt−1+α(hijt−1−2hijt−1+hijt)

Hijt−1

Hijt−1 Hijt

Hijt

Luigi Nardi YAO : assimilation de données

Page 42: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Application

Applications YAO

Testé avec succès sur plusieurs modèles en océanographie :Acoustique marine : inversion variationnelle du profil de la vitesse duson et récupération de paramètres géoacoustiques (célérité, densité,atténuation, . . . ) ;

ISBA : assimilation variationnelle de données dans le modèlehydrologique d’interface sol - végétation - atmosphère ;

NEMO (Nucleus for European Modelling of the Ocean) : modèle adjointde la configuration GYRE.

NeuroVaria : inversion variationnelle des mesures multi-spectralessatellitaires de la couleur de l’océan pour la restitution de lachlorophylle-a ;

PISCES : assimilation de données variationnelle sur la couleur del’océan dans un modèle biogéochimique ;

Shallow-water : assimilation variationnelle de données sur le modèle2D Shallow-water ;

Luigi Nardi YAO : assimilation de données

Page 43: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Sommaire

1 Assimilation de données

2 YAO

3 Génération automatique des directives orderDirectives ctin et orderAlgorithme de générationFusion de directives

4 Parallélisation automatique

5 Conclusion et perspectives

Luigi Nardi YAO : assimilation de données

Page 44: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Directives ctin et order

Directive ctin

Connexion de base entre deux modules :

ctin Fd from Fs i + di [j + dj [k + dk ]] t + dt .

Fs(i + di , j + dj , k + dk︸ ︷︷ ︸

I′

, t + dt︸ ︷︷ ︸

t ′

) → Fd(i , j , k︸ ︷︷ ︸

I

, t︸︷︷︸

t

)

Vecteur distance 3D : I′ − I = (di , dj , dk ).

Luigi Nardi YAO : assimilation de données

Page 45: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Directives ctin et order

Directive order

Parcours de la grille par des boucles imbriquées :

order sensAxe listeInstructions.sensAxe est l’axe à parcourir et son sens :

YA1 : axe i traversée ascendante ;

YB2 : axe j traversée descendante.

listeInstructions est une suite d’instructions :

fonctions de base ;

une nouvelle directive order.

1: order YA12: F13: order YB24: F2 F3

for i = 1 à Ni doF1(i)for j = Nj à 1 do

F2(i, j)F3(i, j)

end forend for

Luigi Nardi YAO : assimilation de données

Page 46: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Directives ctin et order

Directive order

Parcours de la grille par des boucles imbriquées :

order sensAxe listeInstructions.sensAxe est l’axe à parcourir et son sens :

YA1 : axe i traversée ascendante ;

YB2 : axe j traversée descendante.

listeInstructions est une suite d’instructions :

fonctions de base ;

une nouvelle directive order.

1: order YA12: F13: order YB24: F2 F3

for i = 1 à Ni doF1(i)for j = Nj à 1 do

F2(i, j)F3(i, j)

end forend for

Luigi Nardi YAO : assimilation de données

Page 47: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Directives ctin et order

Directive order

Parcours de la grille par des boucles imbriquées :

order sensAxe listeInstructions.sensAxe est l’axe à parcourir et son sens :

YA1 : axe i traversée ascendante ;

YB2 : axe j traversée descendante.

listeInstructions est une suite d’instructions :

fonctions de base ;

une nouvelle directive order.

1: order YA12: F13: order YB24: F2 F3

for i = 1 à Ni doF1(i)for j = Nj à 1 do

F2(i, j)F3(i, j)

end forend for

Luigi Nardi YAO : assimilation de données

Page 48: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Directives ctin et order

Directive order

Parcours de la grille par des boucles imbriquées :

order sensAxe listeInstructions.sensAxe est l’axe à parcourir et son sens :

YA1 : axe i traversée ascendante ;

YB2 : axe j traversée descendante.

listeInstructions est une suite d’instructions :

fonctions de base ;

une nouvelle directive order.

1: order YA12: F13: order YB24: F2 F3

for i = 1 à Ni doF1(i)for j = Nj à 1 do

F2(i, j)F3(i, j)

end forend for

Luigi Nardi YAO : assimilation de données

Page 49: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Directives ctin et order

Cohérence des ctin vis-à-vis du parcours choisi

order YA1order YA2

F1 F2

1, 1 2 , 1 3 , 1 4 , 1 5 , 1 6 , 1 7 , 1

1 , 2 2 , 2 3 , 2 4 , 2 5 , 2 6 , 2 7, 2

1 , 3 2 , 3 3 , 3 4 , 3 5 , 3 6, 3 7 , 3

1 , 4 2 , 4 4 , 43, 4 5 , 4 6, 4 7 , 4

1 , 5 2 , 5 3 , 5 4, 5 5 , 5 6 , 5 7, 5

1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6

1 , 7 2 , 7 3 , 7 4 , 7 5 , 7 6 , 7 7 , 7

i 1 i 2 i 3 i 4 i 5 i 6 i 7

j 1

j2

j3

j4

j5

j6

j7

order YB2order YB1

F1 F2

1, 1 2 , 1 3 , 1 4 , 1 5 , 1 6 , 1 7 , 1

1 , 2 2 , 2 3 , 2 4 , 2 5 , 2 6 , 2 7, 2

1 , 3 2 , 3 3 , 3 4 , 3 5 , 3 6, 3 7 , 3

1 , 4 2 , 4 4 , 43, 4 5 , 4 6, 4 7 , 4

1 , 5 2 , 5 3 , 5 4, 5 5 , 5 6 , 5 7, 5

1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6

1 , 7 2 , 7 3 , 7 4 , 7 5 , 7 6 , 7 7 , 7

i 1 i 2 i 3 i 4 i 5 i 6 i 7

j1

j2

j3

j4

j5

j6

j 7

En gris les points de grille calculés et en blanc ceux à calculer.

Luigi Nardi YAO : assimilation de données

Page 50: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Directives ctin et order

Cohérence des ctin vis-à-vis du parcours choisi

order YA1order YA2

F1 F2

1, 1 2 , 1 3 , 1 4 , 1 5 , 1 6 , 1 7 , 1

1 , 2 2 , 2 3 , 2 4 , 2 5 , 2 6 , 2 7, 2

1 , 3 2 , 3 3 , 3 4 , 3 5 , 3 6, 3 7 , 3

1 , 4 2 , 4 4 , 43, 4 5 , 4 6, 4 7 , 4

1 , 5 2 , 5 3 , 5 4, 5 5 , 5 6 , 5 7, 5

1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6

1 , 7 2 , 7 3 , 7 4 , 7 5 , 7 6 , 7 7 , 7

i 1 i 2 i 3 i 4 i 5 i 6 i 7

j 1

j2

j3

j4

j5

j6

j7

order YB2order YB1

F1 F2

1, 1 2, 1 3, 1 4, 1 5, 1 6, 1 7, 1

1, 2 2, 2 3, 2 4, 2 5, 2 6, 2 7, 2

1, 3 2, 3 3, 3 4, 3 5, 3 6, 3 7, 3

1, 4 2, 4 4, 43, 4 5, 4 6, 4 7, 4

1, 5 2, 5 3, 5 4, 5 5, 5 6, 5 7, 5

1, 6 2, 6 3, 6 4, 6 5, 6 6, 6 7, 6

1, 7 2, 7 3, 7 4, 7 5, 7 6, 7 7, 7

i 1 i 2 i 3 i 4 i 5 i 6 i 7

j1

j2

j3

j4

j5

j6

j 7

On s’intéresse aux signes et pas à la norme du vecteurdistance.

Luigi Nardi YAO : assimilation de données

Page 51: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Directives ctin et order

Blocs de directives order

order YA1F1

order YA2F2 F3

order YA2order YA1

F4

order YB3F5

order YA3F6

order YB2order YB3

order YA1F7

Un bloc est composé d’uneou de plusieurs directivesorder imbriquées.

Chaque bloc est relatif à uneboucle extérieure.

Tous les blocs sont dans laboucle du temps.

Luigi Nardi YAO : assimilation de données

Page 52: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Génération automatique de directives order

Objectif : générer des blocs de directives order qui permettentla propagation du calcul dans le graphe modulaire.

Luigi Nardi YAO : assimilation de données

Page 53: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Graphes de dépendance

F1(i − 1, j, t) → F1(i, j, t)F1(i + 1, j, t) → F2(i, j, t)F2(i, j, t) → F1(i, j, t)F2(i, j − 1, t) → F4(i, j, t)F2(i, j − 1, t − 1) → F3(i, j, t)F3(i, j − 1, t) → F3(i, j, t)F3(i, j + 1, t) → F4(i, j, t)F4(i, j − 1, t − 1) → F2(i, j, t)

Module F

Module F

Module F

Module F

i=1 i=2

j=1

j=21

2

3

4

Luigi Nardi YAO : assimilation de données

Page 54: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Graphes de dépendance

F1(i − 1, j, t) → F1(i, j, t)F1(i + 1, j, t) → F2(i, j, t)F2(i, j, t) → F1(i, j, t)F2(i, j − 1, t) → F4(i, j, t)F2(i, j − 1, t − 1) → F3(i, j, t)F3(i, j − 1, t) → F3(i, j, t)F3(i, j + 1, t) → F4(i, j, t)F4(i, j − 1, t − 1) → F2(i, j, t)

Module F

Module F

Module F

Module F

i=1 i=2

j=1

j=21

2

3

4

+1,0,0F1 F2

F30,-1,0

F40,-1,0

-1,0,0

0,+1,0

0,0,0 0,-1,-1

0,-1,-1

Luigi Nardi YAO : assimilation de données

Page 55: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Graphes de dépendance

F1(i − 1, j, t) → F1(i, j, t)F1(i + 1, j, t) → F2(i, j, t)F2(i, j, t) → F1(i, j, t)F2(i, j − 1, t) → F4(i, j, t)F2(i, j − 1, t − 1) → F3(i, j, t)F3(i, j − 1, t) → F3(i, j, t)F3(i, j + 1, t) → F4(i, j, t)F4(i, j − 1, t − 1) → F2(i, j, t)

Module F

Module F

Module F

Module F

i=1 i=2

j=1

j=21

2

3

4

+1,0,0F1 F2

F30,-1,0

F40,-1,0

-1,0,0

0,+1,0

0,0,0 0,-1,-1

0,-1,-1

Graphe de Dépendance Réduit GDR :

issu directement des ctin ;

circuits et boucles ;

pas de coordonnée temporelle.

Luigi Nardi YAO : assimilation de données

Page 56: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Graphes de dépendance

F1(i − 1, j, t) → F1(i, j, t)F1(i + 1, j, t) → F2(i, j, t)F2(i, j, t) → F1(i, j, t)F2(i, j − 1, t) → F4(i, j, t)F2(i, j − 1, t − 1) → F3(i, j, t)F3(i, j − 1, t) → F3(i, j, t)F3(i, j + 1, t) → F4(i, j, t)F4(i, j − 1, t − 1) → F2(i, j, t)

Module F

Module F

Module F

Module F

i=1 i=2

j=1

j=21

2

3

4

+,0F1 F2

F30,-

F40,-

-,0

0,+

0,0

Graphe de Dépendance Réduit GDR :

issu directement des ctin ;

circuits et boucles ;

pas de coordonnée temporelle.

Luigi Nardi YAO : assimilation de données

Page 57: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Notions de la théorie des graphes

Définition

Une Composante Fortement Connexe (CFC) Xd’un graphe orienté G est un sous-graphemaximal de G tel que pour tout couple desommets Fu et Fv dans ce sous-graphe, il existeun chemin de Fu à Fv et un chemin de Fv à Fu .

0,0F

-,- 0,-

-,-

0,0

0,+

+,+

1F2

F3

F6 F7

+,+

F4

-,-

F5

-,+

Définition

Le graphe réduit est défini de la manière suivante :

les sommets sont les X de G ;

pour tout arc (Fu , Fv ) de G telle que Fu et Fv sontdans deux composantes distinctes Xu et Xv , onajoute un arc de Xu à Xv .

X-,+

X

X1,2,3

X

-,- -,-

6,7

4

5

Le graphe réduit est toujours acyclique.

Luigi Nardi YAO : assimilation de données

Page 58: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Notions de la théorie des graphes

Définition

Une Composante Fortement Connexe (CFC) Xd’un graphe orienté G est un sous-graphemaximal de G tel que pour tout couple desommets Fu et Fv dans ce sous-graphe, il existeun chemin de Fu à Fv et un chemin de Fv à Fu .

0,0F

-,- 0,-

-,-

0,0

0,+

+,+

1F2

F3

F6 F7

+,+

F4

-,-

F5

-,+

Définition

Le graphe réduit est défini de la manière suivante :

les sommets sont les X de G ;

pour tout arc (Fu , Fv ) de G telle que Fu et Fv sontdans deux composantes distinctes Xu et Xv , onajoute un arc de Xu à Xv .

X-,+

X

X1,2,3

X

-,- -,-

6,7

4

5

Le graphe réduit est toujours acyclique.

Luigi Nardi YAO : assimilation de données

Page 59: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Notions de la théorie des graphes

Définition

Une Composante Fortement Connexe (CFC) Xd’un graphe orienté G est un sous-graphemaximal de G tel que pour tout couple desommets Fu et Fv dans ce sous-graphe, il existeun chemin de Fu à Fv et un chemin de Fv à Fu .

0,0F

-,- 0,-

-,-

0,0

0,+

+,+

1F2

F3

F6 F7

+,+

F4

-,-

F5

-,+

Définition

Le graphe réduit est défini de la manière suivante :

les sommets sont les X de G ;

pour tout arc (Fu , Fv ) de G telle que Fu et Fv sontdans deux composantes distinctes Xu et Xv , onajoute un arc de Xu à Xv .

X-,+

X

X1,2,3

X

-,- -,-

6,7

4

5

Le graphe réduit est toujours acyclique.

Luigi Nardi YAO : assimilation de données

Page 60: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Notions de la théorie des graphes

Définition

Une Composante Fortement Connexe (CFC) Xd’un graphe orienté G est un sous-graphemaximal de G tel que pour tout couple desommets Fu et Fv dans ce sous-graphe, il existeun chemin de Fu à Fv et un chemin de Fv à Fu .

0,0F

-,- 0,-

-,-

0,0

0,+

+,+

1F2

F3

F6 F7

+,+

F4

-,-

F5

-,+

Définition

Le graphe réduit est défini de la manière suivante :

les sommets sont les X de G ;

pour tout arc (Fu , Fv ) de G telle que Fu et Fv sontdans deux composantes distinctes Xu et Xv , onajoute un arc de Xu à Xv .

X-,+

X

X1,2,3

X

-,- -,-

6,7

4

5

Le graphe réduit est toujours acyclique.

Luigi Nardi YAO : assimilation de données

Page 61: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Notions de la théorie des graphes

Définition

Une Composante Fortement Connexe (CFC) Xd’un graphe orienté G est un sous-graphemaximal de G tel que pour tout couple desommets Fu et Fv dans ce sous-graphe, il existeun chemin de Fu à Fv et un chemin de Fv à Fu .

0,0F

-,- 0,-

-,-

0,0

0,+

+,+

1F2

F3

F6 F7

+,+

F4

-,-

F5

-,+

Définition

Le graphe réduit est défini de la manière suivante :

les sommets sont les X de G ;

pour tout arc (Fu , Fv ) de G telle que Fu et Fv sontdans deux composantes distinctes Xu et Xv , onajoute un arc de Xu à Xv .

X-,+

X

X1,2,3

X

-,- -,-

6,7

4

5

Le graphe réduit est toujours acyclique.

Luigi Nardi YAO : assimilation de données

Page 62: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Notions de la théorie des graphes

Définition

Une Composante Fortement Connexe (CFC) Xd’un graphe orienté G est un sous-graphemaximal de G tel que pour tout couple desommets Fu et Fv dans ce sous-graphe, il existeun chemin de Fu à Fv et un chemin de Fv à Fu .

0,0F

-,- 0,-

-,-

0,0

0,+

+,+

1F2

F3

F6 F7

+,+

F4

-,-

F5

-,+

Définition

Le graphe réduit est défini de la manière suivante :

les sommets sont les X de G ;

pour tout arc (Fu , Fv ) de G telle que Fu et Fv sontdans deux composantes distinctes Xu et Xv , onajoute un arc de Xu à Xv .

X-,+

X

X1,2,3

X

-,- -,-

6,7

4

5

Le graphe réduit est toujours acyclique.

Luigi Nardi YAO : assimilation de données

Page 63: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Notions de la théorie des graphes

Définition

Une Composante Fortement Connexe (CFC) Xd’un graphe orienté G est un sous-graphemaximal de G tel que pour tout couple desommets Fu et Fv dans ce sous-graphe, il existeun chemin de Fu à Fv et un chemin de Fv à Fu .

0,0F

-,- 0,-

-,-

0,0

0,+

+,+

1F2

F3

F6 F7

+,+

F4

-,-

F5

-,+

Définition

Le graphe réduit est défini de la manière suivante :

les sommets sont les X de G ;

pour tout arc (Fu , Fv ) de G telle que Fu et Fv sontdans deux composantes distinctes Xu et Xv , onajoute un arc de Xu à Xv .

X-,+

X

X1,2,3

X

-,- -,-

6,7

4

5

Le graphe réduit est toujours acyclique.

Luigi Nardi YAO : assimilation de données

Page 64: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Notions de la théorie des graphes

Définition

Une Composante Fortement Connexe (CFC) Xd’un graphe orienté G est un sous-graphemaximal de G tel que pour tout couple desommets Fu et Fv dans ce sous-graphe, il existeun chemin de Fu à Fv et un chemin de Fv à Fu .

0,0F

-,- 0,-

-,-

0,0

0,+

+,+

1F2

F3

F6 F7

+,+

F4

-,-

F5

-,+

Définition

Le graphe réduit est défini de la manière suivante :

les sommets sont les X de G ;

pour tout arc (Fu , Fv ) de G telle que Fu et Fv sontdans deux composantes distinctes Xu et Xv , onajoute un arc de Xu à Xv .

X-,+

X

X1,2,3

X

-,- -,-

6,7

4

5

Le graphe réduit est toujours acyclique.

Luigi Nardi YAO : assimilation de données

Page 65: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Anomalies dans les ctin

Peut-on toujours générer des directives order par rapport auxdirectives ctin ?

Définition

Des directives ctin particulières présentent une anomalie s’iln’est pas possible de parcourir le graphe modulaire par unsystème de boucles imbriquées.

Luigi Nardi YAO : assimilation de données

Page 66: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Types d’anomalies

Anomalie structurelle : le graphe modulaire générécontient des circuits ;

anomalie non structurelle : le graphe modulaire est sanscircuit mais sa structure ne permet pas de lui associer unordre topologique sous la forme de boucles imbriquées.

Luigi Nardi YAO : assimilation de données

Page 67: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Types d’anomalies

Anomalie structurelle : le graphe modulaire générécontient des circuits ;

anomalie non structurelle : le graphe modulaire est sanscircuit mais sa structure ne permet pas de lui associer unordre topologique sous la forme de boucles imbriquées.

Luigi Nardi YAO : assimilation de données

Page 68: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Appartenance des fonctions à une CFC

Résultat

Si X est une CFC du GDR, alors toutes les fonctions de basede X doivent appartenir à un même bloc de directives order.

0,0F

-,- 0,-

-,-

0,0

0,+

+,+

1F2

F3

F6 F7

+,+

F4

-,-

F5

-,+

Luigi Nardi YAO : assimilation de données

Page 69: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Signe commun dans une CFC

Signe commun

Etant donné un ensemble d’arcs du GDR, un axe l a un signecommun (ou un même signe) si ses distances dl sont toutes≤ 0 ou ≥ 0.

Résultat

Soit X une CFC. Si on considère les arcs de X, il doit exister aumoins un axe l avec distances dl de même signe.

-,-F

-,+ -,-

1 F2

F3

Luigi Nardi YAO : assimilation de données

Page 70: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Sous-espaces affines I

j

k

i

F1

F2 F3

0 ,- ,+

0 ,0,0

0 ,0,00 ,0,0

- ,+, -

Luigi Nardi YAO : assimilation de données

Page 71: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Sous-espaces affines II

j

k

i

F1

F2 F3

0 ,- ,+

0 ,0,0

0 ,0,00 ,0,0

- ,+, -

Luigi Nardi YAO : assimilation de données

Page 72: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Sous-espaces affines III

j

k

i

F1

F2 F3

- ,+

0,0

0,00,0

Luigi Nardi YAO : assimilation de données

Page 73: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Sous-espaces affines IV

j

k

i

F1

F2 F3

- ,+

0,0

0,00,0

Luigi Nardi YAO : assimilation de données

Page 74: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Sous-espaces affines V

j

k

i

F1

F2 F3

0

00

Luigi Nardi YAO : assimilation de données

Page 75: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Algorithme de traitement d’un axe

chercher les CFC ;

ordonnancer les CFC du graphe réduit selon un ordretopologique ;en suivant cet ordre pour chaque CFC X :

chercher un axe lX avec les distances dlX de signecommun ;générer une directive order en fonction de cet axe ;transformer le graphe correspondant à X .

Luigi Nardi YAO : assimilation de données

Page 76: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Exemple de génération

-,-

F0,-

0,+

1

F2 F30,0

Luigi Nardi YAO : assimilation de données

Page 77: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Exemple de génération

-,-

F0,-

0,+

1

F2 F30,0

F

+

1

F2 F3

0

order YA1

-

Luigi Nardi YAO : assimilation de données

Page 78: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Exemple de génération

-,-

F0,-

0,+

1

F2 F30,0

F

+

1

F2 F3

0

order YA1

-

F

+

1

F2 F3

0

order YA1order YX2

Luigi Nardi YAO : assimilation de données

Page 79: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Exemple de génération

-,-

F0,-

0,+

1

F2 F30,0

F

+

1

F2 F3

0

order YA1

-

F

+

1

F2 F3

0

order YA1order YX2

F

+

1

F2 F3

0

order YA1order YX2

Luigi Nardi YAO : assimilation de données

Page 80: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Exemple de génération

-,-

F0,-

0,+

1

F2 F30,0

F

+

1

F2 F3

0

order YA1

-

F

+

1

F2 F3

0

order YA1order YX2

F

+

1

F2 F3

0

order YA1order YX2

F1

F2 F3

order YA1order YX2

order YB2

Luigi Nardi YAO : assimilation de données

Page 81: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Exemple de génération

-,-

F0,-

0,+

1

F2 F30,0

F

+

1

F2 F3

0

order YA1

-

F

+

1

F2 F3

0

order YA1order YX2

F

+

1

F2 F3

0

order YA1order YX2

F1

F2 F3

order YA1order YX2

order YB2

F1

F3F2

order YA1order YX2

order YB2

Luigi Nardi YAO : assimilation de données

Page 82: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Algorithme testé sur plusieurs applications.

Les blocs réalisent une partition de l’ensemble des fonctions de base.

GDR

axe 1

axe 2

axe 3

X1

X2

X3

X1,1

X1,2

X2,1 X

3,1X

3,2

X1,1,1 X

1,2,1 X1,2,2

X2,1,1 X

3,1,1X

3,1,2X

3,2,1

F1

F3

F4

F2

F5

F6

F9

F7

F8

Peut-on faire une fusion des blocs générés ?

Luigi Nardi YAO : assimilation de données

Page 83: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Algorithme de génération

Algorithme testé sur plusieurs applications.

Les blocs réalisent une partition de l’ensemble des fonctions de base.

GDR

axe 1

axe 2

axe 3

X1

X2

X3

X1,1

X1,2

X2,1 X

3,1X

3,2

X1,1,1 X

1,2,1 X1,2,2

X2,1,1 X

3,1,1X

3,1,2X

3,2,1

F1

F3

F4

F2

F5

F6

F9

F7

F8

Peut-on faire une fusion des blocs générés ?

Luigi Nardi YAO : assimilation de données

Page 84: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Fusion de directives

Arguments pour la fusion de blocs I

Liste de boucles possibles

Etant donné un ensemble d’arcs du GDR on lui associe uneliste L d’éléments (axe, signe).

Exemple 1

L’axe i de l’ensemble des arcs a des di = 0 :L = ((i , 0), (i ,−), (i ,+)).

Exemple 2

Les axes i et j de l’ensemble ont des di et des dj qui sont ≤ 0 (avecau moins un di et un dj < 0) :

L = ((i ,−), (j ,−)).

Luigi Nardi YAO : assimilation de données

Page 85: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Fusion de directives

Arguments pour la fusion de blocs II

On considère le graphe réduit avec sommets Xi :

à chaque Xi on associe la liste Li correspondant ausous-ensemble d’arcs qui ont été réduits ;

étant donné Xu et Xv , si l’ensemble d’arcs de Xu vers Xv est nonvide :

on lui associe sa liste Lu,v ;on considère un arc Lu → Lv valué par Lu,v .

((i,−),(j,−))(i,−)

((i,0),(i,−),(i,+))

Luigi Nardi YAO : assimilation de données

Page 86: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Fusion de directives

Graphe réduit par niveaux

Afin de bien mener le processus de fusion on organise legraphe réduit par niveaux.

X4

X2

X1

X7

X5

X6

X3

La fusion de Xu et Xv peut se faire si :1 il n’y a pas d’arc et Lu ∩ Lv 6= ∅ ;2 il y a un arc Xu → Xv et Lu ∩ Lu,v ∩ Lv 6= ∅ ;3 Xu et Xv ne sont pas dans deux niveaux voisins et il n’y a

pas de chemin entre eux (en suivant les points 1 et 2).

Luigi Nardi YAO : assimilation de données

Page 87: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Fusion de directives

Graphe réduit par niveaux

Afin de bien mener le processus de fusion on organise legraphe réduit par niveaux.

X4

X2

X1

X7

X5

X6

X3

La fusion de Xu et Xv peut se faire si :1 il n’y a pas d’arc et Lu ∩ Lv 6= ∅ ;2 il y a un arc Xu → Xv et Lu ∩ Lu,v ∩ Lv 6= ∅ ;3 Xu et Xv ne sont pas dans deux niveaux voisins et il n’y a

pas de chemin entre eux (en suivant les points 1 et 2).

Luigi Nardi YAO : assimilation de données

Page 88: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Fusion de directives

Graphe réduit par niveaux

Afin de bien mener le processus de fusion on organise legraphe réduit par niveaux.

X4

X2

X1

X7

X5

X6

X3

La fusion de Xu et Xv peut se faire si :1 il n’y a pas d’arc et Lu ∩ Lv 6= ∅ ;2 il y a un arc Xu → Xv et Lu ∩ Lu,v ∩ Lv 6= ∅ ;3 Xu et Xv ne sont pas dans deux niveaux voisins et il n’y a

pas de chemin entre eux (en suivant les points 1 et 2).

Luigi Nardi YAO : assimilation de données

Page 89: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Fusion de directives

Graphe réduit par niveaux

Afin de bien mener le processus de fusion on organise legraphe réduit par niveaux.

X4

X2

X1

X7

X5

X6

X3

La fusion de Xu et Xv peut se faire si :1 il n’y a pas d’arc et Lu ∩ Lv 6= ∅ ;2 il y a un arc Xu → Xv et Lu ∩ Lu,v ∩ Lv 6= ∅ ;3 Xu et Xv ne sont pas dans deux niveaux voisins et il n’y a

pas de chemin entre eux (en suivant les points 1 et 2).

Luigi Nardi YAO : assimilation de données

Page 90: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Fusion de directives

Génération de directives order : conclusion

L’écriture d’une application YAO devient plus simple pour l’utilisateur.

Possibilité d’optimiser le code généré selon certains critères à définirselon le langage utilisé et le modèle machine.

Modèle machine

Contient les informations de type : nombrede registres, nombre de mémoires cache(L1, L2, L3) et leur taille, taille de lamémoire RAM, type d’architecture (32 ou 64bits), etc..

Une fusion très importante des boucles :

réduit immédiatement le surcoût dûau fonctionnement des boucles ;

pourrait empêcher un fonctionnementoptimal de la hiérarchie mémoire.

Est-il possible d’exploiter cette génération automatique pour du calculhaute performance ?

Luigi Nardi YAO : assimilation de données

Page 91: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Fusion de directives

Génération de directives order : conclusion

L’écriture d’une application YAO devient plus simple pour l’utilisateur.

Possibilité d’optimiser le code généré selon certains critères à définirselon le langage utilisé et le modèle machine.

Modèle machine

Contient les informations de type : nombrede registres, nombre de mémoires cache(L1, L2, L3) et leur taille, taille de lamémoire RAM, type d’architecture (32 ou 64bits), etc..

Une fusion très importante des boucles :

réduit immédiatement le surcoût dûau fonctionnement des boucles ;

pourrait empêcher un fonctionnementoptimal de la hiérarchie mémoire.

Est-il possible d’exploiter cette génération automatique pour du calculhaute performance ?

Luigi Nardi YAO : assimilation de données

Page 92: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Fusion de directives

Génération de directives order : conclusion

L’écriture d’une application YAO devient plus simple pour l’utilisateur.

Possibilité d’optimiser le code généré selon certains critères à définirselon le langage utilisé et le modèle machine.

Modèle machine

Contient les informations de type : nombrede registres, nombre de mémoires cache(L1, L2, L3) et leur taille, taille de lamémoire RAM, type d’architecture (32 ou 64bits), etc..

Une fusion très importante des boucles :

réduit immédiatement le surcoût dûau fonctionnement des boucles ;

pourrait empêcher un fonctionnementoptimal de la hiérarchie mémoire.

Est-il possible d’exploiter cette génération automatique pour du calculhaute performance ?

Luigi Nardi YAO : assimilation de données

Page 93: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Sommaire

1 Assimilation de données

2 YAO

3 Génération automatique des directives order

4 Parallélisation automatiqueMéthode de parallélisationMesures de performance

5 Conclusion et perspectives

Luigi Nardi YAO : assimilation de données

Page 94: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Notions de base en parallélisme

Système à mémoire partagée

Désigne un système composé d’une mémoire accédée par différentes unitésde traitement au sein d’un même ordinateur.

Thread

Est un processus.Les sous-tâches d’un programme parallèle sont souvent appelées threads.

Data race condition

Les threads accèdent (lecture/écriture) à des variables qu’ils partagent entreeux, ce qui peut causer un phénomène de corruption de données.

Speedup

L’accélération est le rapport entre les temps d’exécution des programmesséquentiel et parallèle. Loi théorique speedup maximum : Amdahl.

Luigi Nardi YAO : assimilation de données

Page 95: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Extraction automatique de parallélisme

Objectif :générer automatiquement un code parallèle

pour architectures à mémoire partagée.

Mais. . .le code généré par YAO dépend du modèle numérique.

Tous les codes générés ont la même structure ;

le GDR nous donne les dépendances.

Luigi Nardi YAO : assimilation de données

Page 96: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Extraction automatique de parallélisme

Objectif :générer automatiquement un code parallèle

pour architectures à mémoire partagée.

Mais. . .le code généré par YAO dépend du modèle numérique.

Tous les codes générés ont la même structure ;

le GDR nous donne les dépendances.

Luigi Nardi YAO : assimilation de données

Page 97: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Extraction automatique de parallélisme

Objectif :générer automatiquement un code parallèle

pour architectures à mémoire partagée.

Mais. . .le code généré par YAO dépend du modèle numérique.

Tous les codes générés ont la même structure ;

le GDR nous donne les dépendances.

Luigi Nardi YAO : assimilation de données

Page 98: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Décomposition de domaine

F2F1

F3 F4

0,+

,+

0,0

+,00,+

j

30 1 2 4 5i

L’espace est partitionné logiquement : décomposition de domaine.Chaque thread Ti exécute la même tâche sur son propre sous-espace.

Problèmes : race conditions.

Objectif : maximiser le nombre de fonctions de base exécutées en parallèle.

Luigi Nardi YAO : assimilation de données

Page 99: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Décomposition de domaine

F2F1

F3 F4

0,+

,+

0,0

+,00,+

j

30 1 2 4 5

T T T1 2 3

i

L’espace est partitionné logiquement : décomposition de domaine.Chaque thread Ti exécute la même tâche sur son propre sous-espace.

Problèmes : race conditions.

Objectif : maximiser le nombre de fonctions de base exécutées en parallèle.

Luigi Nardi YAO : assimilation de données

Page 100: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Décomposition de domaine

F2F1

F3 F4

2 4

0,+

,+

0,0

3

5 +,00,+

1

j

30 1 2 4 5

T T T1 2 3

52

3

4

1

i

L’espace est partitionné logiquement : décomposition de domaine.Chaque thread Ti exécute la même tâche sur son propre sous-espace.

Problèmes : race conditions.

Objectif : maximiser le nombre de fonctions de base exécutées en parallèle.

Luigi Nardi YAO : assimilation de données

Page 101: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Décomposition de domaine

F2F1

F3 F4

2 4

0,+

,+

0,0

3

5 +,00,+

1

j

30 1 2 4 5

T T T1 2 3

52

3

4

1

i

L’espace est partitionné logiquement : décomposition de domaine.Chaque thread Ti exécute la même tâche sur son propre sous-espace.

Problèmes : race conditions.

Objectif : maximiser le nombre de fonctions de base exécutées en parallèle.

Luigi Nardi YAO : assimilation de données

Page 102: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Décomposition de domaine

F2F1

F3 F4

2 4

0,+

,+

0,0

3

5 +,00,+

1

j

30 1 2 4 5

T T T1 2 3

52

3

4

1

i

L’espace est partitionné logiquement : décomposition de domaine.Chaque thread Ti exécute la même tâche sur son propre sous-espace.

Problèmes : race conditions.

Objectif : maximiser le nombre de fonctions de base exécutées en parallèle.

Luigi Nardi YAO : assimilation de données

Page 103: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Synchronisation

CFC parallélisable

Pour chaque CFC X du graphe GDR on considère tous les arcs quiont pour extrémités deux fonctions de base faisant partie de X . S’ilexiste au moins un arc avec signe dl 6= 0 on considère que X n’estpas parallélisable selon l’axe l .

Un bloc, caractérisé par une boucle extérieure l , est parallélisable sitous les dl sont nuls.

Cela revient à considérer la liste de boucles possibles définie lors dela génération des directives order. Si cette liste ne contient pas decouple (l , 0) la CFC ne sera pas parallélisable.

Luigi Nardi YAO : assimilation de données

Page 104: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Synchronisation

CFC parallélisable

Pour chaque CFC X du graphe GDR on considère tous les arcs quiont pour extrémités deux fonctions de base faisant partie de X . S’ilexiste au moins un arc avec signe dl 6= 0 on considère que X n’estpas parallélisable selon l’axe l .

Un bloc, caractérisé par une boucle extérieure l , est parallélisable sitous les dl sont nuls.

Cela revient à considérer la liste de boucles possibles définie lors dela génération des directives order. Si cette liste ne contient pas decouple (l , 0) la CFC ne sera pas parallélisable.

Luigi Nardi YAO : assimilation de données

Page 105: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Algorithme de parallélisation

Chercher les CFC Xi ;pour chaque Xi :

déterminer la liste Li ;chercher un axe li dans la liste Li pour lequel les distancesdli = 0 ;s’il en existe au moins un, marquer Xi commeparallélisable. Sinon marquer Xi comme non parallélisable.

Cet algorithme permet d’extraire le plus haut degré de parallélisme.

Cette forte décomposition n’est pas la meilleure solution en terme deperformance.

Luigi Nardi YAO : assimilation de données

Page 106: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Algorithme de parallélisation

Chercher les CFC Xi ;pour chaque Xi :

déterminer la liste Li ;chercher un axe li dans la liste Li pour lequel les distancesdli = 0 ;s’il en existe au moins un, marquer Xi commeparallélisable. Sinon marquer Xi comme non parallélisable.

Cet algorithme permet d’extraire le plus haut degré de parallélisme.

Cette forte décomposition n’est pas la meilleure solution en terme deperformance.

Luigi Nardi YAO : assimilation de données

Page 107: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Algorithme de parallélisation

Chercher les CFC Xi ;pour chaque Xi :

déterminer la liste Li ;chercher un axe li dans la liste Li pour lequel les distancesdli = 0 ;s’il en existe au moins un, marquer Xi commeparallélisable. Sinon marquer Xi comme non parallélisable.

Cet algorithme permet d’extraire le plus haut degré de parallélisme.

Cette forte décomposition n’est pas la meilleure solution en terme deperformance.

Luigi Nardi YAO : assimilation de données

Page 108: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthode de parallélisation

Fusion dans la parallélisation automatique

La fusion dans le cadre de la parallélisation se faitsimultanément à la fusion de la génération des directives order.

Les principes de la fusion dans la génération de directivesorder restent valables. On ajoute des contraintessupplémentaires dans l’analyse du graphe réduit :

deux sommets non parallélisables peuvent être fusionnés ;

deux sommets parallélisables peuvent être fusionnés si lesommet résultant est parallélisable ;

deux sommets parallélisable et non parallélisable ne sontjamais fusionnés.

Luigi Nardi YAO : assimilation de données

Page 109: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Mesures de performance

Exemple de l’acoustique marine I

1 F20,0

F3

23 F4

45F7

0,−1

F8

0,+1

6−1,+1−1,−1−1,0

0,−

0,0

0,0

0,0

0,00,0

0,0

0,+1

0,+

1F1

F9F5

F6

3

2 6

5

4

1L4 = ((i,−), (i, +), (i, 0), (j,−))L5 = ((i,−))

Luigi Nardi YAO : assimilation de données

Page 110: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Mesures de performance

Exemple de l’acoustique marine II

1 4 652,3

5 61,2,3,4

L1−4 = ((i,−), (i, +), (i, 0), (j,−))L5 = ((i,−))

Luigi Nardi YAO : assimilation de données

Page 111: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Mesures de performance

Performance acoustique marine

3 espaces 2D de tailles : 512 x 8192, 1024 x 65536, 2048 x 98304.

0 5 10 15 20 250

20

40

60

80

100

120

140

Cores

Tim

e (s

econ

ds)

512x81921024x655362048x98304

Procs : 4 AMD Opteron 2,3 GHz (6176 SE) dodéca-cœursRAM : 256 GoCaches L1 : 12 x 128 ko, L2 : 12 x 512 ko, L3 : 2 x 6 Mo

0 5 10 15 20 251

1.1

1.2

1.3

1.4

1.5

1.6

1.7

Cores

Spe

edup

512x8192 real512x8192 Amdahl1024x65536 real1024x65536 Amdahl2048x98304 real2048x98304 Amdahl

speedup théorique maximumspeedup réél

Luigi Nardi YAO : assimilation de données

Page 112: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Mesures de performance

Performances Shallow-water

3 espaces 2D de tailles : 6144 x 6144, 10240 x 10240, 12288 x 12288.

0 5 10 15 20 25 30 35 40 45 500

10

20

30

40

50

60

70

80

90

Cores

Tim

e (s

econ

ds)

6144x614410240x1024012288x12288

Procs : 4 AMD Opteron 2,3 GHz (6176 SE) dodéca-cœursRAM : 256 GoCaches L1 : 12 x 128 ko, L2 : 12 x 512 ko, L3 : 2 x 6 Mo

0 5 10 15 20 25 30 35 40 45 500

2

4

6

8

10

12

14

16

18

Cores

Spe

edup

6144x614410240x1024012288x12288

Pas de speedup théorique maximum

Luigi Nardi YAO : assimilation de données

Page 113: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Sommaire

1 Assimilation de données

2 YAO

3 Génération automatique des directives order

4 Parallélisation automatique

5 Conclusion et perspectives

Luigi Nardi YAO : assimilation de données

Page 114: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Conclusion

Les simulations ont montré l’efficacité en terme de performance.

Les algorithmes proposés donnent la possibilité d’optimiser le code ensuivant des critères donnés, en fonction du langage de programmation et dumodèle machine.

Le travail de reformalisation, de synthèse et de développement algorithmiqued’automatisation de tâches a permis :

de donner des réponses immédiates et opérationnelles (YAO est souslicence CeCILL) ;

de faire le lien avec des domaines actuels de recherche eninformatique.

Luigi Nardi YAO : assimilation de données

Page 115: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Conclusion

Les simulations ont montré l’efficacité en terme de performance.

Les algorithmes proposés donnent la possibilité d’optimiser le code ensuivant des critères donnés, en fonction du langage de programmation et dumodèle machine.

Le travail de reformalisation, de synthèse et de développement algorithmiqued’automatisation de tâches a permis :

de donner des réponses immédiates et opérationnelles (YAO est souslicence CeCILL) ;

de faire le lien avec des domaines actuels de recherche eninformatique.

Luigi Nardi YAO : assimilation de données

Page 116: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthodes avancées en optimisation automatique

La parallélisation correspond au cas où les espaces sont représentéspar des parallélépipèdes rectangles (dans le cas d’espaces 3D)définis par des contraintes du type 1 ≤ i ≤ Ni .

Ce travail doit être étendu en se basant sur des modèlespolyédriques qui considèrent l’espace de calcul sous la forme depolyèdre convexe (défini par des inéquations linéaires).

Envisager le passage à l’échelle des architectures parallèles àmémoire distribuée.

Luigi Nardi YAO : assimilation de données

Page 117: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthodes avancées en optimisation automatique

La parallélisation correspond au cas où les espaces sont représentéspar des parallélépipèdes rectangles (dans le cas d’espaces 3D)définis par des contraintes du type 1 ≤ i ≤ Ni .

Ce travail doit être étendu en se basant sur des modèlespolyédriques qui considèrent l’espace de calcul sous la forme depolyèdre convexe (défini par des inéquations linéaires).

Envisager le passage à l’échelle des architectures parallèles àmémoire distribuée.

Luigi Nardi YAO : assimilation de données

Page 118: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Méthodes avancées en optimisation automatique

La parallélisation correspond au cas où les espaces sont représentéspar des parallélépipèdes rectangles (dans le cas d’espaces 3D)définis par des contraintes du type 1 ≤ i ≤ Ni .

Ce travail doit être étendu en se basant sur des modèlespolyédriques qui considèrent l’espace de calcul sous la forme depolyèdre convexe (défini par des inéquations linéaires).

Envisager le passage à l’échelle des architectures parallèles àmémoire distribuée.

Luigi Nardi YAO : assimilation de données

Page 119: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Evolution à court terme

Formalisation

Introduction des opérateurs entre espaces différents afin de pouvoirtraiter le couplage de modèle et les problèmes de changementd’échelle de discrétisation ;

reformalisation des ctin entre deux espaces de dimensions différentes.

Opérationnel

Introduction de technique dite du checkpointing et sa gestionautomatique par YAO pour le traitement d’applications de tailleimportante ;

introduction de la bibliothèque CADNA pour la précision numérique.

YAO s’étend aussi à la seule utilisation du modèle direct.

Luigi Nardi YAO : assimilation de données

Page 120: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Evolution à court terme

Formalisation

Introduction des opérateurs entre espaces différents afin de pouvoirtraiter le couplage de modèle et les problèmes de changementd’échelle de discrétisation ;

reformalisation des ctin entre deux espaces de dimensions différentes.

Opérationnel

Introduction de technique dite du checkpointing et sa gestionautomatique par YAO pour le traitement d’applications de tailleimportante ;

introduction de la bibliothèque CADNA pour la précision numérique.

YAO s’étend aussi à la seule utilisation du modèle direct.

Luigi Nardi YAO : assimilation de données

Page 121: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Assimilation YAO Génération directives Parallélisation Conclusion

Evolution à court terme

Formalisation

Introduction des opérateurs entre espaces différents afin de pouvoirtraiter le couplage de modèle et les problèmes de changementd’échelle de discrétisation ;

reformalisation des ctin entre deux espaces de dimensions différentes.

Opérationnel

Introduction de technique dite du checkpointing et sa gestionautomatique par YAO pour le traitement d’applications de tailleimportante ;

introduction de la bibliothèque CADNA pour la précision numérique.

YAO s’étend aussi à la seule utilisation du modèle direct.

Luigi Nardi YAO : assimilation de données

Page 122: Formalisation et automatisation de YAO, g ateur de …wp.doc.ic.ac.uk › lnardi › wp-content › uploads › sites › 68 › 2014 › ...Assimilation YAO Génération directives

Annexe

Questions

YAO home page :email :

http://www.locean-ipsl.upmc.fr/∼[email protected]

Luigi Nardi YAO : assimilation de données