D´ebits de tˆ aches par noyau

Dans le document The DART-Europe E-theses Portal (Page 126-0)

4.2 Parall´elisation des noyaux

4.3.4 D´ebits de tˆ aches par noyau

a une carte combinatoire (listingsB.2etB.1, page153) : cela permet d’avoir un meilleur scaling.

• larelaxationdedegr´es, le surcout principal provient de la vague de couplage des mailles avec un ratio moyen de 15 %. Ici sa convergence est lin´eaire en la profondeur de recherche δG lors de l’extraction des chemins alternants. Notons que cette ´etape est tr`es irr´eguli`ere; et est asymp-totiquement en O(logn), n´etant le nombre de mailles actives. En pratique cette profondeur vaut approximativement4 avec un ordonnancement statique, et en moyenne la convergence est atteinte au bout de12it´er´es.

• lelissage, le graphe primal est construite au tout d´ebut du noyau, et aucune vague de synchroni-sation n’est requise car la topologie reste inchang´ee. En fait l’unique surcoˆut est relatif `a l’´etape de coloration du graphe pour ce noyau. En pratique, un faible nombre d’it´er´es est requis pour converger (approximativement3-4).

4.3.4 D´ebits de tˆaches par noyau

task rate. Les d´ebits de tˆaches par noyau sont donn´es `a la figure4.22. On peut observer que le raffinement et la relaxation ont de meilleurs d´ebits en termes de d´ebits puisqu’ils sont plus locaux et moins compute-intensive que les deux autres. On obtient un d´ebit quasi-lin´eaire pour chaque noyau

`a l’exception du raffinement : aucun graphe n’est requis pour celui-ci n´eanmoins il n´ecessite plus de synchronisations compar´e aux trois autres. En fait le raffinement implique le voisinage de chaque maille, puisque quand une arˆete est scind´ee alors les deux mailles incidentes sont ´egalement d´ecoup´ees.

N´eanmoins cette dissection est purement locale car la r´ef´erence du point desteinera d´ej`a ´et´e r´esolue dans une vague `a part (page112). Ainsi les mailles peuvent ˆetre trait´ees individuellement, n´eanmoins la r´esolution des r´ef´erences des points requiert plus de synchronisations. Sinon Quand `a la relaxation, elle implique la coquille de chaque arˆete54 `a basculer et donc un voisinage impact´e de taille fixe et minimal. A contrario, les noyaux de simplification et de lissage impliquent le voisinage de taillevariable et fortementd´ependante de l’anisotropie.

104 105 106 107 108

32 2 sockets

64 hyper

1 2 4 8 16

taches/sec

threads Task rate per kernel

HSW - shock : raffinement HSW - shock : simplification HSW - shock : relaxation HSW - shock : lissage

102 103 104 105 106

1 2 4 8 16 32 64

taches/sec

cores Task rate per kernel

KNL - engine : raffinement KNL - engine : simplification KNL - engine : relaxation KNL - engine : lissage

Figure 4.22: D´ebit de tˆaches pour chaque noyau.

54c’est-`a-dire les deux mailles qui lui sont incidentes

c2018.HOBYRAKOTOARIVELO

126 4.4. Conclusion

0.5 1 2 4 8 16 32 64

32 2 sockets 64

hyper

1 2 4 8 16

GFlops

cores

Floating point instructions rate

HSW - shock : raffinement HSW - shock : simplification HSW - shock : relaxation HSW - shock : lissage

Figure 4.23: Taux d’instructions flottantes par seconde(2D).

flops. Le taux d’instructions flottantes trait´ees par seconde (flops) pour les cas-testsplanairessont donn´ees `a la figure4.23. Pour des raisons de limites m´emoire, nous n’avons malheureusement pas pu profiler les cas-tests surfaciques55. On peut observer que tous les noyaux passent globalement bien

`a l’´echelle. En 2D, la plupart des instructions flottantes sont trait´ees durant la phase de filtrage, `a l’exception du lissage. Pour le raffinement et la simplification, elle implique le calcul de distances g´eod´esiques. Pour la relaxation et le lissage par contre, c’est l’´etape o`u les qualit´es des mailles sont calcul´ees et mis en cache dans la structure de donn´ees du maillage.

Dans notre cas, l’intensit´e arithm´etique56 reste constant relativement au nombre de cores. Ainsi les transferts de donn´ees impliqu´es par notre sch´ema de synchronisation n’a pas d’impact significatif sur le taux de flops57, mˆeme `a nombre de threads ´elev´e. Enfin le lissage passe beaucoup mieux `a l’´echelle que les trois autres noyaux car il a une intensit´e arithm´etique plus ´elev´ee. En fait lorsqu’un point est d´eplac´e, sa position ainsi que son tenseur m´etrique sont interpol´es `a partir de ses voisins, puis ils sont r´eajust´es it´erativement 58 de sorte `a rester `a l’int´erieur de l’enveloppe convexe de son voisinage discret. Ainsi il implique une meilleure r´eutilisation de donn´ees d´ej`a en cache.

4.4 CONCLUSION

En r´esum´e, nous avons propos´e une approche de parall´elisation des noyaux adaptatifs en vue de leur portages sur les architectures multicore et manycore. Elle tient compte des contraintes induites par l’aspectdata-driven et data-intensive des noyaux, ainsi que celles du hardware59. Elle est adapt´e auxplanaireetsurfacique, et toutes ses briques internes sontlock-free. Elle repose sur trois aspects :

• une extraction du parall´elisme amorphe pour chaque noyau. Afin d’alimenter suffisamment les cores, nous ne consid´erons que les conflits li´es `a laconformit´e de la topologie, ce qui maximise le nombre de tˆaches extraites. Pour cela les tˆaches et les voisinages impact´es sont formul´ees par un graphe propre `a chaque noyau, `a l’exception du raffinement qui est enti`erement local.

• uneapproche de restructuration des acc`es-m´emoireirr´eguliers pour att´enuer la latence. Pour cela,

55Les donn´ees interm´ediaires g´en´er´ees par le profiler implique une empreinte m´emoire ´enorme.

56L’intensit´e arithm´etiqueest le ratio du nombre d’instructions flottantes sur le nombre d’acc`es-m´emoire

57du moins sur les machines avec des capacit´e de caches normales.

58jusqu’`a un certain seuil

59faible fr´equence et m´emoire par core, puis coˆuts ´elev´es et in´egaux des acc`es-m´emoire

c2018.HOBYRAKOTOARIVELO

les noyaux sont structur´es en vagues synchrones afin de r´eduire la fr´equence d’´echanges de donn´ees et de coalescer les acc`es en m´emoire partag´ee. Elle concilie les contraintes li´es `a la localit´e m´emoire60 et g´en´ericit´e pour la portabilit´e des performances.

les emplacements des mailles sont r´esolues en amont au moment de leur cr´eation afin d’´eviter les recopies de donn´ees locales et pour pr´eserver au mieux la proximit´e de mailles voisines.

les r´eductions de donn´ees se font de mani`ere asynchrone61 ounuma-aware62selon le cas.

• unesynchronisation `a grain finpour les mises `a jour du graphe d’incidence. Elle est effectivement peu coˆuteuse, et minimise les transferts et copies de donn´ees compar´e au sch´ema derokos.

La solution propos´ee a ´et´e impl´ement´ee en C++11 et OpenMP4 sous forme d’une biblioth`eque baptis´eetrigen. Pour montrer l’efficacit´e, nous avons effectu´e une campagne de benchmarks sur des cas-tests planaires et surfaciques sur deux machines multicore dual-socket(HSW, SKL)et une machine manycore dual-memory (KNL) (page 118). Le scaling obtenu et les ratios de tˆaches extraites ont montr´e que nos briques d´edi´ees `a l’extraction de stables de points ainsi qu’au couplage de mailles sont r´eellement adapt´ees `a notre contexte (page 121). Un bon scaling des noyaux est obtenu `a nombre de cores ´elev´e, en d´epit de la saturation fr´equente des caches sur le noeud manycore, ou des effets numasur les noeuds multicore (page 123). De plus les surcoˆuts induits par la parall´elisation restent faible, voire n´egligeable dans certains cas : ils n’exc`edent pas15%du temps de restitution tous noyaux confondus (page124). Ces constats sont confort´es par les d´ebits de tˆaches trait´ees par seconde pour chaque noyau (page125) ainsi que l’´evolution desflops pour les cas-tests planaires (page126).

∗ ∗ ∗

60saturation fr´equente des caches de capacit´e limit´ees, latence importante des acc`es enram

61pour la mise `a jour des listes d’incidence par exemple.

62pour la r´ecup´eration des points ou mailles actives lors du filtrage par exemple.

c2018.HOBYRAKOTOARIVELO

CONCLUSION

Le but de cette th`ese fut de pr´esenter une mani`ere de concevoir des algorithmes num´eriques irr´eguliers sp´ecifiquement adapt´ee aux acc´el´erateurs ou processeurs manycore sur un cas concret. La particularit´e de cette approche, c’est qu’elle ne repose pas que sur une parall´elisation : le choix et la construction mˆeme des noyaux num´eriques est guid´e par les contraintes hardware. D’o`u le terme

”co-design” dans l’intitul´e. `A cette fin nous avons pris les noyaux d’adaptation anisotrope de maillages impliqu´es dans les simulations en m´ecanique des fluides num´erique comme cas d’´etude.

Approche et contributions

en bref. En fait on vise `a acc´el´erer la phase d’adaptation de la boucle num´erique adaptative d´ecrite

`

a la page11sur des architectures multicore et manycore. Nous avons vu cela soulevait deux types de contraintes relatives :

• `a l’irr´egularit´e des noyaux: ils sont caract´eris´es par un parall´elisme amorphe due aux conflits de tˆaches dynamiques et non pr´evisibles d’une part, et une faible r´eutilisation des donn´ees d’autre part. En fait il n’est pas trivial d’exposer un parall´elisme constant et maximal `a tout instant de leur ex´ecution car le nombre de tˆaches varie dynamiquement et le fait de traiter une tˆache peut invalider d’autres d´ej`a pr´evues. De plus leurs instructions sont domin´ees par des acc`es-m´emoire avec une tendance `a une saturation fr´equente des caches. Ainsi ils ne passent pas ais´ement `a l’´echelle surtout sous contrainte m´emoire.

• au hardware : les machines manycore int`egrent un nombre cons´equent de cores avec un tr`es faible rendement (ghz,gflops,gb) par core; tandis que les machines multicore disposent d’une hi´erarchie m´emoire63 `a profonde impliquant une latence d’acc`es de donn´ees in´egales (numa).

Pour passer `a l’´echelle, il faudrait exposer un parall´elisme tr`es fin et tr`es ´elev´e pour tirer profit du nombre cons´equent de cores faiblement cadenc´es d’une part, et exposer une forte localit´e et un fort taux de r´eutilisation de donn´ees pour maximiser le rendement des caches.

Ainsi la r´eelle difficult´e ´etait de concilier ces deux contraintes antagonistes. Pour cela, nous l’avons abord´ee par une approche deco-designnum´erique-parall`ele : nous avons d’abord con¸cu des noyaux adaptatifs sensibles `a la localit´e m´emoire d’une part, puis nous avons propos´e une parall´elisation tenant compte de leurs aspectsdata-drivenet data-intensived’autre part.

design. En fait cette contrainte de localit´e est loin d’ˆetre triviale puisqu’elle impose de ne recourir qu’`a des noyaux tr`es basiques : pas de cavit´e dynamique, pas de plongement via un atlas, pas de s´equence dynamique d’op´erations. Pour converger rapidement en erreur et en qualit´e des mailles n´eanmoins, il aurait fallu recourir `a des noyaux dynamiques tels que ceux dans [120, 123, 97, 135, 136]. Ainsi la vraie difficult´e ´etait de proposer des noyaux qui soient aussi efficients que les noyaux de r´ef´erence tout en impactant un voisinage statique le plus restreint possible. Afin d’exposer une localit´e maximale, nous n’appliquons que des patterns de modification basiques d´ecrits `a la figure3.2.

Pour rester pr´ecis et efficients n´eanmoins, nous nous appuyons sur desbriques g´eom´etriques avanc´ees.

A cette fin, nous avons propos´e`

• une projection de points bas´ee sur le calcul de g´eod´esiques pour le placement pr´ecis des points sur la surface id´eale lors de leur cr´eation ou d´eplacement (page64),

• une relocalisation de points mixte diffusion-optimisation qui am´eliore la qualit´e des mailles tout en minimisant la d´eformation de la surface (page70).

• un transport optimal de tenseurs m´etriques qui pr´eserve leurs directions principales lors du d´eplacement d’un point ou durant la gradation (page87).

L’efficacit´e de chaque contribution a ´et´e soit formellement prouv´ee soit ´evalu´ee num´eriquement (page91).

Une partie de ces travaux ont ´et´e publi´es dans un article[RL18]et pr´esent´ee oralement `a un congr`es[LR18]. portage. En choisissant avec parcimonie les briques des noyaux, la contrainte de localit´e fut par-tiellement r´esolue. En fait la seconde difficult´e a ´et´e de trouver une mani`ere de parall´eliser les noyaux

63cache multiples, m´emoire locale et ´eventuellement distante

c2018.HOBYRAKOTOARIVELO

qui tienne compte de leurs aspectsdata-drivenetdata-intensiveainsi que les contrainteshardware. Pour cela nous avons propos´ee une approchelock-freeadapt´ee `a la fois aux noyaux planaires et surfaciques et qui s’appuie sur trois aspects :

• uneextraction du parall´elisme amorphe pour chaque noyau bas´ee sur une formulation des tˆaches et des voisinages impact´es en graphes, `a l’exception du raffinement qui est enti`erement local.

Pour un parall´elisme maximal, nous ne consid´erons que les conflits li´es `a la conformit´e de la topologie (page105). `A cette fin, nous avons con¸cu deux algorithmes lock-free et massivement multithread pour le calcul de stables et le couplage de mailles (pages107et109); `a partir d’une

´etude exp´erimentale approfondie des approches r´ecentes [204–206] (annexeB).

• une approche de restructuration des acc`es-m´emoire irr´eguliers pour att´enuer la latence. Pour cela, les noyaux sont structur´es en vagues synchrones afin de r´eduire la fr´equence d’´echanges de donn´ees et de coalescer les acc`es en m´emoire partag´ee (page111). Afin d’´eviter les recopies de donn´ees locales et pour pr´eserver au mieux la proximit´e m´emoire de mailles voisines, les em-placements des mailles sont r´esolues en amont au moment de leur cr´eation (page112). Enfin, les r´eductions de donn´ees se font de mani`ere asynchrone64ounuma-aware65selon le cas (page113).

• une synchronisation `a grain fin pour les mises `a jour du graphe d’incidence qui minimise les transferts et copies de donn´ees compar´e `a l’´etat de l’art [199,167] (page114).

Pour montrer son efficacit´e, nous avons men´e une campagne de benchmarks sur des cas-tests `a la fois planaires et surfaciques sur deux machines dual-socket multicore et une machine dual-memory many-core (page117). Une partie des r´esultats obtenus ont ´et´e publi´es dans trois actes de conf´erence[RLP16, RLP+17, RL18].

Table 4.4: Publications.

[RLP16]. Fine-grained locality-aware parallel scheme for anisotropic mesh adaptation.

Hoby Rakotoarivelo, Franck Ledoux and Franck Pommereau.

25thInternational Meshing Roundtable, 2016, Washington DC, USA.

[RLP+17]. Scalable fine-grained metric-based remeshing algorithm for manycore-NUMA

architectures. Hoby Rakotoarivelo, Franck Ledoux, Franck Pommereau and Nicolas Le-Goff. Euro-Par: 23rd International Conference on Parallel and Distributed Computing, 2017, Santiago de Compostella, Spain. [30% of acceptation]

[RL18]Accurate manycore-accelerated manifold surface remesh kernels.

Hoby Rakotoarivelo and Franck Ledoux.

27th International Meshing Roundtable, 2018, Albuquerque NM, USA.

[LR18]Parallel surface mesh adaptation for manycore architectures.

Franck Ledoux and Hoby Rakotoarivelo. Communication orale `a MeshTrends 13thWorld Congress in Computational Mechanics, 2018, New-York NY, USA.

Travaux annexes

Notons qu’une bonne partie du temps de th`ese a ´et´e d´edi´ee `a l’impl´ementation des algorithmes en vue de leur ´evaluation exp´erimentale. Cela a donn´e lieu au d´eveloppement d’une biblioth`eque baptis´ee trigen, bientˆot en open-source. En fait nous avons initialement ´etudi´e et impl´ement´e des noyaux anisotropesplanaires, avant de les ´etendre ausurfacique. La sortie des r´esultats a n´ecessit´e :

• 7 854lignes de code enplanaireet12 037lignes de code ensurfacique66;

• le d´eploiement et le profiling sur deux types d’architectures;

• l’impl´ementation d’algorithmes de graphes [204–206] massivement multithread enC++vue d’une

´etude comparative (annexeB);

64pour la mise `a jour des listes d’incidence par exemple.

65pour la r´ecup´eration des points ou mailles actives lors du filtrage par exemple.

66elles sont estim´ees par l’outil open-sourcesloccountdisponible `ahttps://www.dwheeler.com/sloccount/.

c2018.HOBYRAKOTOARIVELO

130 4.4. Limites et perspectives

• l’int´egration du sch´ema de synchronisation depragmatic[167] danstrigenpour une comparaison empirique (page115);

• la g´en´eration de cas-tests et fine-tuning sur des instances de matricesRMAT[207] et deCAO;

• le post-traitment semi-automatis´e pour la sortie de r´esultats par des scriptsPythonetgnuplot;

• et le plus fun : ledebugging.

Limites et perspectives

Notons que l’approche que nous avons propos´ee est modulaire : ainsi son efficacit´e repose sur celles des briques algorithmiques qui la composent. Bien que certaines aient ´et´e formellement prouv´ees67, leur design fut guid´e par leur efficacit´e r´eelle et empirique, en vue de concilier les contraintes induites par l’irr´egularit´e des noyaux avec celles induites par le hardware, tout en ´etant aussi pr´ecis et efficient68 que les noyaux de r´ef´erence. En fait les contributions pr´esent´ees sont des pr´emices `a plusieurs pistes d’am´eliorations.

Deux pistes sont pr´evues `a court-terme :

• lafinalisationde trigenen vue d’une int´egration `a un framework orient´e composants. En fait c’est pr´evu dans mon travail dans le cadre d’un postdoc auCMLA69 `a l’ENS cachan.

• lav´erification formelle des briques critiques lock-free notamment les algorithmes sugg´er´es pour l’extraction des tˆaches ainsi que nos sch´emas de synchronisations bas´es sur les primitives atom-iques. En fait un pi`ege classique des algorithmes lock-free r´eside dans la possibilit´e delivelock : ici le but serait de v´erifier formellement le caract`ere wait-free70 de ces briques par le biais d’un r´eseau de Petri par exemple. En fait nous avons d´ej`a initi´e ce travail, et ce mˆeme si au-cune r´ef´erence n’y est faite dans la th`ese. Le probl`eme auquel nous nous sommes heurt´e est qu’entrelacer les ´etapes de formalisation et d’optimisation des noyaux est difficile dans la dur´ee car les diff´erentes mises `a jour remettaient en cause le mod`ele formel propos´e.

A moyen terme, deux pistes sont envisag´ees :`

• uneanalyse approfondie des briquesnotamment les noyaux de relaxation et de lissage. Nous avons vu que l’´egalisation efficiente des degr´es n’est pas un probl`eme trivial en raison des nombreux minima locaux. En fait nous avons sugg´er´e une heuristique gloutonne assez efficiente en pra-tique mais qui n’est pas garanti de converger. Pour le lissage, la routine d’optimisation implique une ´etape de projection explicite `a chaque it´er´e. Une piste int´eressante serait d’int´egrer di-rectement la contrainte de projection dans la formulation du probl`eme `a l’aide dulagrangien puis de r´esoudre le probl`eme d’optimisation sans contrainte `a l’aide de l’algorithme d’uzawa : ce serait int´eressant de comparer leur efficacit´e en termes de convergence. Enfin il serait

´egalement int´eressant d’analyser plus finement les algorithmes d´edi´es `a l’extraction des tˆaches en vue d’exposer leurs ratios d’approximation et leur complexit´e parall`ele. Cela permet de car-act´eriser th´eoriquement leur efficience en termes de ratio entre qualit´e de la solution extraite et surcoˆut induit.

• une parall´elisation `a grain multipled´edi´ee aux clusters de noeuds manycore71. Ainsi l’approche de restructuration par vagues synchrones que nous avons initi´ee peut adapt´ee afin de tenir compte de la hi´erarchie m´emoire par le biais dubridging-model multi-bsp[170]. Il fournit un mod`ele de coˆut des vagues synchrones qui pourrait ˆetre utilis´e pour ler´e´equilibrage dynamique etnuma-aware des charges entre les nœuds de calcul. In fine, la structure de l’algorithme reste inchang´ee n´eanmoins chaque brique doit ˆetre mise `a jour afin de supporter la communication intra-noeud et inter-noeud72des processus tout en gardant le mˆeme profil de performances. Enfin une comparaison des noyaux avec leur version task-based avec r´e´equilibrage par vol de tˆaches

67notamment le transport parall`ele de tenseurs m´etriques ainsi la preuve d’´equivalence des seuils de gradation.

67notamment le transport parall`ele de tenseurs m´etriques ainsi la preuve d’´equivalence des seuils de gradation.

Dans le document The DART-Europe E-theses Portal (Page 126-0)