52

Traitement des données massives (INF442, A8)

Embed Size (px)

Citation preview

Page 1: Traitement des données massives (INF442, A8)

INF442 : Traitement des Données Massives

A8 : Algorithmique parallèle sur les graphes

Frank Nielsen

nielsen�lix.polyte hnique.fr

X2013

3 juin 2015

Frank Nielsen 1

Page 2: Traitement des données massives (INF442, A8)

Plan

◮programme pour le ontr�le é rit (CC) :

10 juin 2015, 9h-12h

◮les graphes :

◮les grands graphes : déte tion de sous-graphes denses

◮les petits graphes : déte tion de (sous-)isomorphismes

◮exposé invité : le �HPC Cloud�

par M. Patri e Calégari (PhD, Atos/Bull)

Frank Nielsen 2

Page 3: Traitement des données massives (INF442, A8)

Révisions pour le ontr�le é rit

◮loi d'a élération (Amdahl) pour les programmes parallèles

◮regroupement : les k-moyennes et la manipulation de sa fon tion de oût

Varian e/ entroïde d'un groupe

oût = somme des varian es des groupes ...

◮les algorithmes parallèles seront é rit en pseudo- ode MPI

(opérations redu e, s atter, gather).

◮Pseudo-syntaxe MPI et pas de syntaxe C++.

Programme = 20 lignes au maximum

◮topologie de l'hyper ube, ode de Gray, distan e de Hamming et routage.

Il n'a aura pas de C++, ni de lassi� ation, ni d'algorithmes sur les

matri es, ni de MapRedu e, et ni de sous-ensembles ÷urs.

Frank Nielsen 3

Page 4: Traitement des données massives (INF442, A8)

Révisions : le ode de Gray

Frank Nielsen 4

Page 5: Traitement des données massives (INF442, A8)

Constru tion ré ursive du ode de Gray

Constru tion ré ursive :

◮ ode de Gray à 1 bit ( as terminal) : G (1) = (0, 1)

◮ ode de Gray à d bits :

G (d) = (0G (d − 1), 1G r (d − 1))

ave G r (·) le ode de Gray dans l'ordre inverse ( = ode ré�e hi)

Par exemple,

◮ G (2) = (0G (1), 1G r (1)) = (00, 01, 11, 10)

◮ G (3) = (0G (2), 1G r (2)) = (000, 001, 011, 010, 110, 111, 101, 100)

◮ G(4) = (0G(3), 1G r (3)) =

(0000, 0001, 0011, 0010, 0110, 0111, 0101, 0100, 1100, 1101, 1111, 1110, 1010, 1011, 1001, 1000)

◮et .

Frank Nielsen 1. ode de Gray 5

Page 6: Traitement des données massives (INF442, A8)

Illustration de la onstru tion ré ursive du ode de Gray

0

1

0

1

1

0

00

01

11

10

00

01

11

10

10

11

01

00

000

001

011

010

110

111

101

100

G(1)

miroir prefixe

G(2) G(3)

miroir prefixe

Frank Nielsen 1. ode de Gray 6

Page 7: Traitement des données massives (INF442, A8)

Hyper ube et ode de Gray

0D 1D 2D 3D 4D

∅ 0

1

00

01

10

11

001 011

000 010

101 111

100 110

0001 0011

0000 0010

0101 0111

0100 0110

1001 1011

1000 1010

1101 1111

1100 1110

Deux opies (pré�xe 0 et pré�xe 1) de Hd−1

(Gd−1

) que l'on relie entre elles

ave les paires de n÷uds orrespondants

Frank Nielsen 1. ode de Gray 7

Page 8: Traitement des données massives (INF442, A8)

Code C++ simple : gray ode442. pp

// inverse l'ordre d'un ode

s t r i n g ∗ Mi r o i r ( s t r i n g ∗ s , i n t nb )

{ s t r i n g ∗ r e s ;

r e s=new s t r i n g [ nb ℄ ;

i n t i ;

f o r ( i =0; i <nb ; i ++)

{ r e s [ i ℄= s [ nb−1− i ℄ ; // i i, on re opie

}

r e t u r n r e s ;

}

// algorithme ré ursif pour le ode de Gray

s t r i n g ∗ GrayCode ( i n t dim )

{ s t r i n g ∗ r e s ;

i n t i ;

i n t a rd=1<<(dim−1) ; // veut dire 2

dim−1

, plus rapide que Math.pow(2, dim− 1)

i f ( dim==1)

{ r e s=new s t r i n g [ 2 ℄ ; r e s [0℄= "0" ; r e s [1℄= "1" ;

} e l s e

{

s t r i n g ∗GC=GrayCode ( dim−1) ;

s t r i n g ∗ GC r e f l e h i=M i r o i r (GC , ard ) ;

r e s=new s t r i n g [2∗ ard ℄ ;

// pre�xe

f o r ( i =0; i < ard ; i++)

{ r e s [ i ℄="0"+GC[ i ℄ ;

r e s [ i+ ard ℄="1"+GC r e f l e h i [ i ℄ ;

}

}

r e t u r n r e s ;

}

Frank Nielsen 1. ode de Gray 8

Page 9: Traitement des données massives (INF442, A8)

Code C++ simple : gray ode442. pp

#i n l u d e <ios t ream >

#i n l u d e <s t r i n g . h>

us i ng namespa e s t d ;

s t r i n g ∗ Mi r o i r ( s t r i n g ∗ s , i n t nb )

. . .

s t r i n g ∗ GrayCode ( i n t dim )

. . .

v o i d p r i n tCode ( s t r i n g ∗ ode , i n t nb )

{

i n t i ;

f o r ( i =0; i <nb ; i ++)

{

out<< ode [ i ℄<<end l ;

}

}

i n t main ( )

{

i n t i , dim=4;

out << " INF442 : ode de Gray en d imens ion "<<dim <<"\n" ;

s t r i n g ∗ GC=GrayCode ( dim ) ;

p r i n tCode (GC , 1<<dim ) ; // veut dire 2

dim

}

Frank Nielsen 1. ode de Gray 9

Page 10: Traitement des données massives (INF442, A8)

Convertir ode binaire ⇔ ode de Gray

code binaire

code de Gray

0 b0b1b2b3

g0g1g2g3

bit extra a 0(ne fait pas partie du code)

gi = 0 ⇔ bi+1 XOR bi = 0

Le bit du ode de Gray gi est à zéro si et seulement si les bits

adja ents de la représentation binaire oin ident (XOR, OU Ex lusif)

Frank Nielsen 1. ode de Gray 10

Page 11: Traitement des données massives (INF442, A8)

Exemple de onversions : binaire → Gray

code binaire

code de Gray

0 0 1 1 0

code binaire

code de Gray

0 0 1 1 0

1 0 10

Conversion (0110)b → (0101)g

XOR XOR XORXOR

XOR

?

al uls dire ts sans as ade (bits gi peuvent être al ulés en parallèle, CREW)

Frank Nielsen 1. ode de Gray 11

Page 12: Traitement des données massives (INF442, A8)

Exemple de onversions : Gray → binaire

code binaire

code de Gray

0

1 10

code binaire

code de Gray

0

Conversion (1011)g → (1101)b

XOR XOR XORXOR

XOR

1

1 10 1

1 01 1

?

Cal ul du bit binaire de poids fort vers le bit de poids faible, as ade ...

Frank Nielsen 1. ode de Gray 12

Page 13: Traitement des données massives (INF442, A8)

Les grands graphes : trouver

un sous-ensemble dense

le noyau

la plus grande ommunauté

...

Frank Nielsen 1. ode de Gray 13

Page 14: Traitement des données massives (INF442, A8)

Rappel sur la notation de graphes

◮ G = (V ,E ) un graphe à |V | = n n÷uds et |E | = m arêtes . Graphe

non-orienté.

◮Arête (vi , vj ) = paire de n÷uds

◮arête orientée = ar , digraph : dire ted graph

◮graphe sans y le : a y li graph

◮graphe à poids (sur les arêtes et/ou les n÷uds)

◮matri e d'in iden e ME du graphe V = {xi} :

e = (xi , xj ) ∈ E ⇔ ME [i ][j] = 1

(et 0 autrement)

◮graphe planaire (qui peut être plongé = dessiné dans le plan sans

interse tion des arêtes) : m = |E | ≤ 3(n − 2) pour n = |V | > 2.

◮graphe dense, graphe épars, graphe petits mondes (= haque n÷ud relié

à n'importe quel autre n÷ud par une ourte haine)

Frank Nielsen 2.graphes-1.notations 14

Page 15: Traitement des données massives (INF442, A8)

Les graphes : simples, utiles mais parfois di� iles à analyser

le théorème des 4 ouleurs : un problème intuitif mais preuves omplexes :

n÷ud = départements. une arête pour deux régions onnexes

Frank Nielsen 2.graphes-1.notations 15

Page 16: Traitement des données massives (INF442, A8)

Les graphes et les réseaux so iaux

◮une personne (= n÷ud) a une liste d'amis (= arêtes).

◮1,3 milliards d'utilisateurs FB (2013), 3 milliards d'hommes onne tés

(<50%). Aujourd'hui, en ore la moitié de la population mondiale reste a

onne ter

FB API : https://developers.fa ebook. om/do s/graph-api

Frank Nielsen 2.graphes-1.notations 16

Page 17: Traitement des données massives (INF442, A8)

Frank Nielsen 2.graphes-1.notations 17

Page 18: Traitement des données massives (INF442, A8)

Sous-graphe le plus dense

◮sous-graphe G ′ = (V ′,E ′) ⊆ G : V ′ ⊆ V , e = (vi , vj) ∈ E appartient à

E ′ssi. vi ∈ V ′

et vj ∈ V ′

◮on her he le sous-graphe V ′ ⊆ V qui maximise la densité ρ :

ρ(V ′) =|E (V ′)||V ′|

où E (V ′) = {(u, v) ∈ E : u, v ∈ V ′}◮

pour la lique G = Kn, on a ρ = ρ(V ) = n(n−1)2n

= n−1

2

◮Problème d'optimisation :

ρ∗ = max

V ′⊆Vρ(V ′)

Frank Nielsen 2.graphes-2.Heuristique pour le sous-graphe le plus dense 18

Page 19: Traitement des données massives (INF442, A8)

Exemple de densité de sous graphes

ρ = 1, 454... ρ = 1, 8

Frank Nielsen 2.graphes-2.Heuristique pour le sous-graphe le plus dense 19

Page 20: Traitement des données massives (INF442, A8)

Appli ations du al ul de sous-graphe le plus dense

Très utile en analyse de graphes

notamment pour les graphes des réseaux so iaux !

Trouver le sous-graphe le plus dense intervient dans :

◮la déte tion de ommunauté

◮la ompression de graphes

◮et .

Les réseaux sont pervasifs dans notre quotidien :

◮résaux de ommuni ations

◮réseaux de itations s ienti�ques

◮réseaux de ollaborations

◮réseaux d'intéra tion de protéines

◮réseaux d'information

◮réseaux �nan iers

◮et .

Frank Nielsen 2.graphes-2.Heuristique pour le sous-graphe le plus dense 20

Page 21: Traitement des données massives (INF442, A8)

Complexité du al ul de sous-graphe le plus dense

◮temps polynomial par résolution de programmes linéaires (LP)

◮devient NP-dur si on impose |V ′| = k

Notons V ∗une solution optimale de densité optimale ρ∗ :

ρ∗ = ρ(V ∗) =

|E (V ∗)||V ∗|

nous allons donner une heuristique qui al ule une 2-approximation :

V ′′, ρ(V ′′) ≥ 1

2

ρ∗

Frank Nielsen 2.graphes-2.Heuristique pour le sous-graphe le plus dense 21

Page 22: Traitement des données massives (INF442, A8)

Heuristique de al ul d'un sous-graphe dense

Heuristique itérative de Charikar (Prin eton U, 2000) :

◮enlever le n÷ud de plus faible degré ainsi que toutes ses arêtes

in identes, mettre à jour les degrés des autres n÷uds, al uler la densité

du graphe obtenu, et re ommen er jusqu'à épuisement des n÷uds

◮solution = garder le graphe le plus dense parmi es n = |V | itérations

Garanti de trouver une 2-approximation ( f. preuve poly opié)

Frank Nielsen 2.graphes-3.Heuristique séquentielle 22

Page 23: Traitement des données massives (INF442, A8)

Frank Nielsen 2.graphes-3.Heuristique séquentielle 23

Page 24: Traitement des données massives (INF442, A8)

Frank Nielsen 2.graphes-3.Heuristique séquentielle 24

Page 25: Traitement des données massives (INF442, A8)

Frank Nielsen 2.graphes-3.Heuristique séquentielle 25

Page 26: Traitement des données massives (INF442, A8)

Frank Nielsen 2.graphes-3.Heuristique séquentielle 26

Page 27: Traitement des données massives (INF442, A8)

Data: Un graphe non-orienté G = (V ,E )

Result: Retourne un sous-ensemble S ⊆ V des sommets qui induit le graphe

restreint G|S qui donne une 2-approximation du sous-graphe le plus

dense de G .

S ← V ;

S ← V ;

while S 6= ∅ dos ← arg mins∈S degS(s);

S ← S\{s};if ρ(S) > ρ(S) then

S ← S

end

end

return S

⇒ 2-approximation S du sous-graphe le plus dense de G = (V ,E ).Frank Nielsen 2.graphes-3.Heuristique séquentielle 27

Page 28: Traitement des données massives (INF442, A8)

Démo

Frank Nielsen 2.graphes-3.Heuristique séquentielle 28

Page 29: Traitement des données massives (INF442, A8)

Complexité de l'heuristique

Sur le modèle RAM.

Trouver le sommet de degré minimum, e�a er, al uler la densité, et

re ommen er ainsi jusqu'à obtenir le graphe vide

Implémentation naïve : O(n2) (par exemple en utilisant la matri e d'in iden e)

◮temps O((n +m) log n) en utilisant un tas (arbre binaire dont les lefs

des n÷uds sont supérieures aux lefs des �ls, f. �le de priorité)

◮temps O((n +m)) en maintenant une liste par degré ( f. poly opié)

Mais ette heuristique est di� ilement parallélisable omme telle !

Frank Nielsen 2.graphes-3.Heuristique séquentielle 29

Page 30: Traitement des données massives (INF442, A8)

Une heuristique fa ilement parallélisable

Nouvelle heuristique :

◮enlever tous les n÷uds de degré plus petit que (1+ ǫ) fois la moyenne

des degrés (ave ǫ ≥ 0)

◮on enléve don for ément les n÷uds de degré minimal à haque tour

Moyenne des degrés ...

d =

v∈V d(v)

|V | = 2

|E ||V | = 2ρ

... est égale a deux fois la densité ρ :

d(G ) = 2ρ(G )

Frank Nielsen 2.graphes-4.heuristique parallèle 30

Page 31: Traitement des données massives (INF442, A8)

Algorithm 1: Heuristique gloutonne (parallèle) par blo s pour trouver une

approximation S du sous-graphe le plus dense.

Data: Un graphe G = (V ,E ) et ǫ > 0

S ← V ;

S ← V ;

while S 6= ∅ doA(S)← {s ∈ S | degS(s) ≤ 2(1+ ǫ)ρ(S)};S ← S\A(S);if ρ(S) > ρ(S) then

S ← S

end

end

return S

rappel : d(G ) = 2ρ(G )

Frank Nielsen 2.graphes-4.heuristique parallèle 31

Page 32: Traitement des données massives (INF442, A8)

Frank Nielsen 2.graphes-4.heuristique parallèle 32

Page 33: Traitement des données massives (INF442, A8)

Frank Nielsen 2.graphes-4.heuristique parallèle 33

Page 34: Traitement des données massives (INF442, A8)

Démo

Frank Nielsen 2.graphes-4.heuristique parallèle 34

Page 35: Traitement des données massives (INF442, A8)

Performan e de l'heuristique

◮on prouve que l'on fait O(1

ǫlog n) itérations.

Quelques dizaines d'itérations pour des graphes à 1 milliard de n÷uds ...

◮on montre qu'on obtient une (2+ ǫ)-approximation :

ρ∗ ≥ ρ(V ′) ≥ ρ∗

2+ ǫ

◮ ette heuristique s'implémente en plusieurs étapes de MapRedu e ( f.

poly opié)

⇒ f. poly opié

Frank Nielsen 2.graphes-4.heuristique parallèle 35

Page 36: Traitement des données massives (INF442, A8)

Tester l'isomorphisme de

(petits) graphes

Equilibrage de harge

Frank Nielsen 2.graphes-4.heuristique parallèle 36

Page 37: Traitement des données massives (INF442, A8)

Est- e le même graphe ?

Graphe identique ? = stru ture identique ?

... omment puis-je m'en persuader ?

Frank Nielsen 3.isomorphismes de graphes 37

Page 38: Traitement des données massives (INF442, A8)

Isomorphisme de graphes

◮ G1

= (V1

,E1

) et G2

= (V2

,E2

) deux graphes, ave n1

= |V1

| etm

1

= |E1

| et n2

= |V2

| et m2

= |E2

|◮

Est- e que G1

= G2

?

◮une ondition né essaire est d'avoir n

1

= n2

= n et m1

= m2

= m mais

e n'est bien sûr pas une ondition su�sante !

◮En pratique, on étiquette arbitrairement les n÷uds de V

1

et de V2

ave

des entiers entre 1 et n, et on her he une permutation

σ : [n] = {1, ..., n} → [n] telle que le n÷ud vi ∈ V1

orrespond au n÷ud

vσ(i) ∈ V

2

◮Une fois σ trouvée, on renumérote les n÷uds de V

2

en faisant i ← σ(i)

◮Notation quand deux graphes sont isomorphes ( ongruents) :

G1

∼= G2

Frank Nielsen 3.isomorphismes de graphes 38

Page 39: Traitement des données massives (INF442, A8)

Isomorphisme de graphes : dé�nition générale

Isomorphisme : omparer la stru ture des graphes ( ongruen e)

G1

∼= G2

: ∃f : V1

→ V2

, (v , v ′) ∈ V1

⇔ (f (v), f (v ′)) ∈ V2

f : fon tion sur les étiquettes : i i, entiers/lettres

Frank Nielsen 3.isomorphismes de graphes 39

Page 40: Traitement des données massives (INF442, A8)

1

2

3

4

5

6

7

8

1 5

638

2 7 4

Frank Nielsen 3.isomorphismes de graphes 40

Page 41: Traitement des données massives (INF442, A8)

Sous-isomorphisme de graphes

G1

est sous-isomorphe de G2

si et seulement si il existe G ′1

⊆ G1

tel que

G ′1

∼= G2

⇒ re onnaissan e de motifs dans les graphes (pattern mat hing)

Frank Nielsen 3.isomorphismes de graphes-1.Sous-isomorphisme 41

Page 42: Traitement des données massives (INF442, A8)

Appli ation : Re her he de motifs stru turaux identiques

◮isomorphisme de graphe très étudié en himie depuis les années 1950 ...

◮est- e qu'un motif himique se trouve déjà répertorié dans une base de

données ?

Par exemple, trouver un motif ARN (base azotées A, C, G, U) dans des

bruns d'ARN ...

◮en oder une molé ule par un graphe anonique (plusieurs standards

existent omme SMILES, InChI)

◮puis tester l'isomorphisme de sous-graphe (graph data mining)

Frank Nielsen 3.isomorphismes de graphes-1.Sous-isomorphisme 42

Page 43: Traitement des données massives (INF442, A8)

Complexité : pas en ore résolu !

Le problème de tester l'isomorphisme de graphe :

◮appartient à la lasse de omplexité NP (véri�able en temps polynomial) :

étant donné σ, on véri�e que σ(V1

) = V2

et σ(E1

) = E2

◮appartient à la lasse P (temps polynomial) pour ertaines familles de

graphes : les arbres, les graphes planaires, et .

◮une uriosité dans le as général :

Dans P ? ou dans NP- omplet ? ou alors ni dans l'un ni dans l'autre ?

◮Meilleur algorithme (Luks, 1983) :

2

O(√

n log n)

... pouvez-vous faire mieux ? ou alors montrer une borne inférieure

exponentielle ?

Frank Nielsen 3.isomorphismes de graphes-2.Complexité 43

Page 44: Traitement des données massives (INF442, A8)

Remarque : l'ordinateur ne voit pas ...

les graphes ne sont pas dessinés en mémoire ... l'÷il humain (+ erveau !) est

remarquable pour ses apa ités de re onnaissan e de motifs !

graphe, autre dessin du graphe, + permutation sur les étiquettes

Frank Nielsen 3.isomorphismes de graphes-2.Complexité 44

Page 45: Traitement des données massives (INF442, A8)

Algorithme naïf pour l'isomorphisme : tester tout !

◮ I1

la matri e binaire d'in iden e de G1

, et I2

la matri e d'in iden e de G2

(espa e mémoire n2)

◮pour toutes les n! permutations σ, on teste si I

1

= Iσ2

(temps

quadratique)

O(n2n!)

Formule de Stirling n! ≃√2πn

(

ne

)n

10! = 3, 628, 800

Frank Nielsen 3.isomorphismes de graphes-3.Algorithmes énumératifs 45

Page 46: Traitement des données massives (INF442, A8)

Algorithmes énumératifs : appariements progressifs

◮on augmente itérativement un appariement partiel des sommets M

(mat hing). Exploration ré ursive, de type Depth First Sear h (DFS)

◮les paires de sommets asso iés sont hoisies de façon à respe ter

ertaines onditions (par exemple, avoir le même degré, même base

azotée, et .)

◮on élimine les hemins de re her he qui n'aboutissent pas à un

appariemment omplet des sommets : élagage, pruning

◮lorsqu'on arrive à une impasse, on supprime la dernière hypothèse : on

fait mar he arrière = ba ktra king

◮l'algorithme s'arrête lorsqu'il a trouvé une solution (ave un erti� at σ

d'appariemment) qui prouve l'existen e de l'isomorphisme ou lorsque

tous les appariemments possibles ont été testés de façon infru tueuse.

Dans le pire des as, les algorithmes énumératifs sont exponentiels !

Frank Nielsen 3.isomorphismes de graphes-3.Algorithmes énumératifs 46

Page 47: Traitement des données massives (INF442, A8)

Un algorithme ré ursif pour le test d'isomorphisme

TesteIsomorphisme(g ,M,G ,H) :for all hi ∈ Hv do

if g 6∈ M and hi 6∈ M then

M ′ ← M ∪ (g , hi ) ;

Soit g ′ ∈ G{gi | (gi , x) ∈ M} ;M ′′ = TesteIsomorphisme(g ′,M ′,G ,H);

if |M ′′| = |G | thenreturn M ′′

end

end

return ∅end

On appelle ette pro édure initialement ave M = ∅ et g ∈ G :

TesteIsomorphisme(g ,M,G ,H)Complexité : O(d

max

!n)

Frank Nielsen 3.isomorphismes de graphes-3.Algorithmes énumératifs 47

Page 48: Traitement des données massives (INF442, A8)

Parallélisation des algorithmes énumératifs (en MPI)

◮soit un luster à P = n pro esseurs (petits graphes à n sommets)

◮parallélisation triviale : initialement pour le sommet v

(1)1

est appareillé au

sommet v(j)2

ave j ∈ {1, ...,P = n} sur le pro esseur Pj . On véri�e

d'abord que les degrés oïn ident ...

◮le travail sur haque pro esseur (de haque pro essus) dépend don de la

stru ture des graphes. Les pro essus ne �nissent pas en même temps.

Workload di�érent

◮ omment équilibrer la harge de travail ?

⇒ utiliser une ar hite ture maître/serviteurs ave des ommuni ations

non-bloquantes (MPI_Isend et MPI_Ire v)

Frank Nielsen 3.isomorphismes de graphes-4.parallélisation en MPI 48

Page 49: Traitement des données massives (INF442, A8)

Ar hite ture maître/serviteurs et équilibrage de harges

équilibrage de harges : load-balan ing = harge de travail sur haque

pro essus semblable

Un problème plus général sur les lusters : ordonnan ement de tâ hes ,

dé�nir un graphe de dépendan e ( omme le Make�le pour la ompilation) et

équilibrer les harges (beau oup de problèmes d'ordonnan ement sont

NP-durs).

Frank Nielsen 3.isomorphismes de graphes-4.parallélisation en MPI 49

Page 50: Traitement des données massives (INF442, A8)

Résumé A8

�X déte tion de sous-graphes denses

�X déte tion de (sous)-isomorphises de graphes (équilibrage de harge)

lire le hapitre 11 du poly opié

Frank Nielsen 4.Résumé 50

Page 51: Traitement des données massives (INF442, A8)

Voilà !

Mer i à tous

pour ette première édition

d'INF442 !

Vous en avez été les

pionniers !

Frank Nielsen 5.That is all folks ! 51

Page 52: Traitement des données massives (INF442, A8)

Toute l'équipe espère avoir

réussi à vous enseigner un

on entré de

◮C++

◮ al ul haute performan e sur un luster ave MPI

◮algorithmique parallèle distribuée

◮s ien e des données

On aimerait bien vous revoir

en 3A !

Frank Nielsen 5.That is all folks ! 52