• Aucun résultat trouvé

Irr´egularit´e des noyaux

Dans le document The DART-Europe E-theses Portal (Page 102-105)

3.5 Conclusion

4.1.2 Irr´egularit´e des noyaux

surface initiale surface id´eale surface finale

V: tˆaches `a traiter,

B

les tˆaches, leurs conflits et leurs dur´ees varient dynamiquement

B

Figure 4.2: Probl`emes des d´ependances de tˆaches dynamiques.

data-driven. En fait les tˆaches relatives aux noyaux, leurs conflits et leurs dur´ees varient au cours de l’ex´ecution. `A vrai dire, le fait de traiter une tˆache peut g´en´erer ou invalider d’autres : deux tˆaches non conflictuelles `a l’it´er´e courant peuvent ne plus l’ˆetre `a l’it´er´e suivant.

Pour se fixer les id´ees, consid´erons l’exemple de la figure 4.2 : on part d’une surface initiale et on souhaite obtenir une surface adapt´ee qui soit plus proche de la surface id´eale. Ici, l’´evolution de la surface triangul´ee ainsi que le graphe de taches est repr´esent´ee `a chaque it´er´e, et on impose aucune contrainte particuli`ere sur l’entrelacement des noyaux4.

• initialement, une seule tache relative au d´eplacement dep1 est pr´evue;

• une fois trait´ee, cela a engendr´e la cr´eation de cinq autres taches `a l’it´er´e suivant, dont deux pouvant ˆetre imm´ediatement trait´ees (suppr[e1] etrefine[e2]);

4Notons qu’on aurait le mˆeme probl`eme mˆeme si on organisait les noyaux par vagues. Ici on a fait le choix d’entrelacer les noyaux pour illustrer rapidement le probl`eme.

c2018.HOBYRAKOTOARIVELO

102 4.1. Introduction

• le fait d’avoir trait´ee1et e2rend invalide deux taches pr´evuesrefine[e4] etflip[e3] car ces arˆetes ont disparues. Par contre, cela a rendu possible le d´eplacement dep2, et la dur´ee derefine[e5] est pass´ee de2.8 `a2.3car son voisinage a chang´e.

Le traitement s’arrˆete apr`es l’ex´ecution derefine[e5] etmove[p2]. Ici, nous avons bien pu remarquer que les taches disponibles, leurs conflits et leurs dur´ees varient dynamiquement. Ainsi il n’est pas ´evident de trouver un ordonnancement optimal de taches qui garantit l’utilisation maximale et ´equitable des cores.

Parall´elisation des noyaux

Probl´ematique li´ee `a l’irr´egularit´e

1 data-driven : d´ependances de tˆaches non pr´edictibles, 8 nombre de tˆaches et charge par core dynamiques,

8 les tˆaches g´en´er´ees peuvent invalider les tˆaches d´ej`a pr´evues.

2 data-intensive : faible r´eutilisation de donn´ees, 8 p´enalit´es ´elev´ees dˆues aux indirections m´emoire.

maillage layout m´emoire

mise `a jour de la topologie p: point courant,

pourchaque voisinpjdepfaire mettre `a jour les voisins depj

B

faible r´eutilisation de donn´ees en cache

B

Hoby Rakotoarivelo|Soutenance de th`ese, 6 Juillet 2018|SLIDE 28/42

(1)

Parall´elisation des noyaux

Probl´ematique li´ee `a l’irr´egularit´e

1 data-driven : d´ependances de tˆaches non pr´edictibles, 8 nombre de tˆaches et charge par core dynamiques,

8 les tˆaches g´en´er´ees peuvent invalider les tˆaches d´ej`a pr´evues.

2 data-intensive : faible r´eutilisation de donn´ees, 8 p´enalit´es ´elev´ees dˆues aux indirections m´emoire.

maillage layout m´emoire

mise `a jour de la topologie p: point courant,

pourchaque voisinpjdepfaire mettre `a jour les voisins depj

B

faible r´eutilisation de donn´ees en cache

B

Hoby Rakotoarivelo|Soutenance de th`ese, 6 Juillet 2018|SLIDE 28/42

(2)

Parall´elisation des noyaux

Probl´ematique li´ee `a l’irr´egularit´e

1 data-driven : d´ependances de tˆaches non pr´edictibles, 8 nombre de tˆaches et charge par core dynamiques,

8 les tˆaches g´en´er´ees peuvent invalider les tˆaches d´ej`a pr´evues.

2 data-intensive : faible r´eutilisation de donn´ees, 8 p´enalit´es ´elev´ees dˆues aux indirections m´emoire.

maillage layout m´emoire

mise `a jour de la topologie

p: point courant,

pourchaque voisinpjdepfaire mettre `a jour les voisins depj

B

faible r´eutilisation de donn´ees en cache

B

Hoby Rakotoarivelo|Soutenance de th`ese, 6 Juillet 2018|SLIDE 28/42

(3)

Parall´elisation des noyaux

Probl´ematique li´ee `a l’irr´egularit´e

1 data-driven : d´ependances de tˆaches non pr´edictibles, 8 nombre de tˆaches et charge par core dynamiques,

8 les tˆaches g´en´er´ees peuvent invalider les tˆaches d´ej`a pr´evues.

2 data-intensive : faible r´eutilisation de donn´ees, 8 p´enalit´es ´elev´ees dˆues aux indirections m´emoire.

maillage layout m´emoire

mise `a jour de la topologie p: point courant,

pourchaque voisinpjdepfaire mettre `a jour les voisins depj

B

faible r´eutilisation de donn´ees en cache

B

Hoby Rakotoarivelo|Soutenance de th`ese, 6 Juillet 2018|SLIDE 28/42

Figure 4.3: Probl`eme des indirections m´emoire fr´equentes.

c2018.HOBYRAKOTOARIVELO

data-intensive. En fait les instructions des noyaux sont domin´es par les acc`es-m´emoire, et qu’on ait une faible r´eutilisation de donn´ees d´ej`a acc´ed´ees en plus. En d’autres termes, on passe notre temps

`

a acc´eder aux donn´ees, et sur des donn´ees diff´erentes5. De plus, il n’est pas ais´e de pr´eserver un layout de donn´ees qui soitcache-friendlypuisque l’insertion ou de suppression de donn´ees ne peuvent pas ˆetre inf´er´ees.6. Pour se fixer les id´ees, consid´erons l’exemple de la figure4.3. Il consiste `a la mise `a jour des donn´ees du voisinage d’un point7. Il s’agit d’un cas simplifi´e avec un seul core, un cache, uneram locale et une distante.

• initialement, le cache associ´e au core est vide, et au moment o`u on traite le premier voisin on va rapatrier un premier bloc de donn´ees depuis laramlocale vers le cache.

• en fait, seule une partie des donn´ees rapatri´ee en cache est utilis´ee par le core.

• au moment de traiter le second voisin, on est donc oblig´e de purger le cache puisqu’il est d´ej`a plein, puis de rapatrier un autre bloc de donn´ees depuis laram. Et l`a encore, on ne va utiliser qu’une partie des donn´ees fraichement mises en cache.

• enfin, quant au dernier voisin, on va refaire le mˆeme traitement sauf que cette fois la donn´ee rapatri´ee provient de laramdistante : les transferts de donn´ees vont ˆetre encore plus coˆuteux.

L’exemple consid´er´e est un peu extrˆeme mais c’est assez repr´esentatif des instructions de nos noyaux : en effet, on passe souvent plus de temps `a faire des requˆetes topologiques qu’`a faire du calcul utile.

Et pire, on ne r´eutilise que tr`es peu les donn´ees d´ej`a acc´ed´ees. Ainsi il est imp´eratif de restructurer les acc`es-m´emoire de mani`ere `a att´enuer la latence induite. Or la difficult´e est que les motifs d’acc`es-m´emoire ne sont pas pr´evisibles car elles d´ependent des donn´ees8.

4.1.3 D´emarche et contributions

travaux connexes. En bref, il faudrait exposer des tˆaches tr`es fines et des acc`es structur´es aux donn´ees pour passer `a l’´echelle sur nos machines cibles. Or les travaux existants en remaillage par-all`ele implique un parall´elisme `a gros grain pour la plupart [13]. Ils s’appuient sur un partitionnement de dmaine9 et une migration de mailles pour le r´e´equilibrage dynamique de charges. Ainsi l’effort porte essentiellement sur la gestion des interfaces des sous-domaines en vue de r´eduire le coˆut des synchronisations, et sur la recherche d’heuristiques pour le r´e´equilibrage [102]. Des approches `a grain fin existent mais impliquent souvent un unique noyau [169], ou traitent les noyaux de mani`ere iden-tique [199] sans tirer profit de leurs sp´ecificit´es. Dans ce cadre, deux approches ont particuli`erement suscit´e notre int´erˆet :

• celle defreitag[210], qui est la premi`ere approchelock-freeen adaptation parall`ele de maillages.

Ici les op´erations (raffinement,basculeetlissage) sont exprim´ees sous forme de graphe, et un stable est extrait pour ´eviter les conflits, et pour assurer que les donn´ees d’incidence restent coh´erentes apr`es leur mise `a jour. Ici le point critique r´eside dans l’extraction des tˆaches puisqu’elle implique un voisinage dedistance deux`a chaque fois. Un tel choix r´eduit de mani`ere significative le nombre de tˆaches pouvant ˆetre trait´ees simultan´ement10.

• celle derokos[199] qui est une extension de celle defreitagau cas anisotrope. Il fournit un noyau de simplification en plus, et n’utilise qu’un unique graphe pour tous les noyaux. Pour

´eviter le recours `a un voisinage de distance deux, il utilise un sch´ema de mise `a jourdiff´er´eedes donn´ees d’incidence afin de garantir leur consistance. Elle ne tire n´eanmoins pas profit de la sp´ecificit´e des noyaux, et ne tient pas compte du fait qu’ils soientdata-intensive.

La d´emarche que nous avons adopt´ee est une extension de ces deux travaux, mais en tenant compte des sp´ecificit´es des noyaux et des contraintes hardware.

5Ainsi on utilise tr`es peu les donn´ees qui sont d´ej`a en cache, et on est oblig´e de rapatrier les donn´ees depuis laram : cela induit une latence beaucoup plus ´elev´e et ralentit donc l’algorithme.

6En d’autres termes, les patterns d’acc`es-m´emoire ne sont pas pr´evisibles.

7Notons qu’une telle requˆete est repr´esentative des instructions des noyaux, typiquement lasimplification.

8Ce qui n’est pas le cas des primitives relatives aux matrices creuses par exemple

9en vue de l’ex´ecution des noyaux s´equentiels sur chaque sous-domaine

10oudegr´e de parall´elisme

c2018.HOBYRAKOTOARIVELO

Dans le document The DART-Europe E-theses Portal (Page 102-105)