DSL pour la fouille des réseaux sociaux sur des architectures Multi-coeurs. (DSL (Domain Specific Language) for Social Network Analysis on multicore architectures)

Les reseaux complexes sont des ensembles constitues d’un grand nombre d’entites interconnectees par des liens. Ils sont modelises par des graphes dans lesquels les noeuds representent les entites et les aretes entre les noeuds representent les liens entre ces entites. Ces graphes se caracterisent par un tres grand nombre de sommets et une tres faible densite de liens. Les reseaux sociaux sont des exemples de reseaux complexes ou les entites sont des individus et les liens sont les relations (d’amitie, d’echange de messages) entre ces individus.L’analyse des reseaux complexes est generalement basee sur l’exploration locale du graphe sous-jacent : apres avoir traite un nœud u, les prochains noeuds auxquels l’application fait reference appartiennent au voisinage de u. Etant donne que le graphe sous-jacent est habituellement non structure, les sequences d’acces aux donnees en memoire tendent a avoir une faible localite lorsque qu’on utilise par exemple le stockage de Yale qui est l’un des meilleurs connus. En plus, dans les applications basees sur l’analyse des reseaux le nombre de calculs requis pour chaque noeud peut etre tres variable, ce qui, dans les mises en œuvre paralleles (multithreadees), se traduit par un desequilibre de charges entre les threads.Le travail realise dans cette these etait lie au developpement d’applications d’analyse des reseaux sociaux, qui soient a la fois faciles a ecrire et efficaces. A cet effet, deux pistes ont ete explorees: a)L’exploitation de la structure en communautes pour definir des techniques de stockage qui reduisent les defauts de cache lors de l’analyse des reseaux sociaux; b)La prise en compte de l’heterogeneite des degres des noeuds pour optimiser la mise en oeuvre parallele.La premiere contribution de cette these met en evidence l'exploitation de la structure en communautes des reseaux complexes pour la conception des algorithmes de numerotation des graphes (NumBaCo, CN-order) permettant la reduction des defauts de cache des applications tournant dans ces graphes.Les resultats experimentaux en mode sequentiel sur plusieurs architectures (comme Numa4) ont montre que les defauts de cache et ensuite le temps d'execution etaient effectivement reduits; et que CN-order se sert bien des avantages des autres heuristiques de numerotation (Gorder, Rabbit, NumBaCo) pour produire les meilleurs resultats.La deuxieme contribution de cette these a considere le cas des applications multi-threadees. Dans ce cas, la reduction des defauts de cache n'est pas suffisante pour assurer la diminution du temps d'execution; l'equilibre des charges entre les threads doit etre assure pour eviter que certains threads prennent du retard et ralentissent ainsi toute l'application. Dans ce sens, nous nous sommes servis de la propriete de l'heterogeneite des degres des noeuds pour developper l'heuristique Deg-scheduling. Les resultats experimentaux avec plusieurs threads sur l'architecture Numa4 montrent que Deg-scheduling combine aux heuristiques de numerotation permet d'obtenir de meilleur resultats.La derniere contribution de cette these porte sur l'integration des deux categories d'heuristiques developpees dans les DSLs paralleles d'analyse des graphes. Par exemple, avec le DSL Green-Marl, les performances sont ameliorees a la fois grâce aux heuristiques de numerotation et grâce aux heuristiques d’ordonnancement (temps reduit de 35% grâce aux heuristiques). Mais avec le DSL Galois, les performances sont ameliorees uniquement grâce aux heuristiques de numerotation (reduction de 48%).