Avancées dans le calcul parallèle SCC
De nouvelles techniques améliorent la performance pour trouver des composants fortement connectés dans de grands graphes.
― 6 min lire
Table des matières
Dans le domaine du traitement des graphes, un des problèmes clés est de calculer les Composantes fortement connexes (CFC). Une CFC est une partie d'un graphe orienté où chaque sommet peut atteindre tous les autres sommets de cette partie. À mesure que les graphes de la vie réelle deviennent plus grands, trouver ces composantes en parallèle devient crucial pour l'efficacité. Cet article parle des avancées dans les implémentations Parallèles pour le problème des CFC.
Contexte
Le traitement des graphes est important dans divers domaines, des réseaux sociaux à la gestion de bases de données. Le problème des CFC nous permet de comprendre la structure de ces graphes et a des applications pour identifier des communautés dans les réseaux et estimer la propagation d'influence.
Les algorithmes traditionnels pour trouver les CFC, comme les algorithmes de Kosaraju et de Tarjan, fonctionnent bien en séquentiel, mais peuvent être lents sur de grands graphes. Le besoin de solutions parallèles vient de la croissance des graphes réels, qui ont souvent des diamètres élevés. Un grand diamètre signifie qu'il y a beaucoup de couches de sommets à traverser, rendant le traitement simultané important.
Défis dans le SCC Parallèle
Les implémentations parallèles pour les CFC rencontrent des défis, surtout pour gérer des graphes avec un diamètre élevé. La plupart des algorithmes parallèles existants peuvent finir par être plus lents que les méthodes séquentielles traditionnelles sur de tels graphes. Ils reposent généralement sur des stratégies comme la recherche en largeur (BFS) qui impliquent plusieurs tours de Synchronisation entre les processeurs, ce qui peut ajouter un surcoût significatif.
Beaucoup d'algorithmes parallèles supposent certaines propriétés sur les graphes, comme avoir un faible diamètre ou contenir une grande CFC. Quand ces suppositions ne tiennent pas, les algorithmes peuvent mal fonctionner.
Solutions Proposées
Pour aborder ces problèmes, nous introduisons de nouvelles techniques pour le calcul parallèle des CFC, en nous concentrant sur un nouvel algorithme de atteignabilité. Cet algorithme améliore la performance en réduisant le nombre de tours de synchronisation nécessaires pendant le traitement.
Contrôle de Granularité Verticale (VGC)
La première technique que nous proposons s'appelle le contrôle de granularité verticale. Cette stratégie permet un plus grand parallélisme en réduisant les barrières de synchronisation. Au lieu de nécessiter que chaque processeur se synchronise pour chaque tour de parcours, le VGC les autorise à travailler plus indépendamment sur de plus grands ensembles de sommets en même temps.
Cette approche permet de visiter un plus grand nombre de sommets en un seul tour, accélérant ainsi le temps de traitement global.
Sac de Hashage Parallèle
La deuxième technique est une structure de données spécialement conçue, connue sous le nom de sac de hashage parallèle. Les structures traditionnelles nécessitent souvent plusieurs scans des arêtes pour gérer les sommets en cours de traitement. Le sac de hashage parallèle permet une gestion de la mémoire plus efficace en se redimensionnant dynamiquement au besoin sans avoir à copier les données.
En utilisant cette structure de données, nous pouvons éviter le surcoût associé à la gestion des sommets dans différents tours et réduire le travail redondant de manière significative.
Mise en Œuvre et Résultats
Nous avons appliqué nos deux techniques proposées à divers ensembles de données de graphes, y compris des réseaux sociaux, des graphes web, et d'autres, et avons testé la performance par rapport aux algorithmes existants.
Notre nouvelle implémentation a surpassé les systèmes à la pointe de la technologie sur la plupart des ensembles de données. Nous avons constaté qu'en moyenne, notre algorithme parallèle était significativement plus rapide que les meilleures solutions parallèles précédentes et dépassait même les méthodes séquentielles traditionnelles sur des graphes à grand diamètre.
Performance sur Différents Types de Graphes
Nous avons évalué notre mise en œuvre en utilisant différents types de graphes :
Réseaux Sociaux : Ces graphes ont souvent des diamètres plus bas, ce qui les rend plus adaptés à un traitement parallèle. Notre méthode a montré des améliorations de vitesse tout en maintenant la précision dans l'identification des CFC.
Graphes Web : Comme les réseaux sociaux, ces graphes impliquent généralement de nombreux sommets interconnectés. Nous avons observé une excellente performance, notre algorithme fonctionnant significativement plus vite que les méthodes existantes.
Graphes en Réseau : Ces structures présentent souvent des défis en raison de leurs diamètres élevés. Nos techniques ont montré des avantages considérables, réduisant le nombre de tours de traitement et permettant un calcul plus rapide.
Applications au-delà des CFC
Les techniques proposées dans cet article vont au-delà des problèmes de CFC. Nous avons également démontré leur efficacité dans d'autres tâches liées aux graphes, telles que la connectivité et les listes d'éléments minimaux.
Dans les problèmes de connectivité, où nous voulons identifier les composantes connectées d'un graphe, nos nouvelles approches ont conduit à une amélioration de la performance par rapport aux algorithmes existants. De même, dans le calcul des listes d'éléments minimaux, qui sont essentielles pour divers algorithmes, notre implémentation a montré une efficacité améliorée.
Travaux Futurs
Bien que nos résultats soient prometteurs, il reste des opportunités pour de futures recherches. Nous visons à affiner nos techniques en explorant leur adaptabilité à encore plus de types de graphes et en trouvant des moyens d'optimiser pour diverses caractéristiques spécifiques à certains ensembles de données.
Le potentiel d'ajuster dynamiquement les paramètres en fonction des propriétés du graphe pourrait donner lieu à des améliorations de performances encore plus grandes. De plus, explorer l'utilisation de nos techniques dans des systèmes distribués et sur des unités de traitement graphique (GPU) pourrait étendre leur utilité et leur efficacité.
Conclusion
Le problème des CFC est un défi fondamental dans le traitement des graphes, avec des implications significatives dans des applications réelles. Nos techniques proposées de contrôle de granularité verticale et de sacs de hashage parallèles offrent une nouvelle approche pour améliorer la performance des algorithmes CFC parallèles.
Avec les demandes croissantes sur les capacités de traitement des graphes, nos méthodes non seulement améliorent les solutions existantes mais ouvrent aussi la voie pour de futures recherches sur les algorithmes parallèles. En continuant à améliorer les outils et méthodes disponibles pour l'analyse de graphes, nous pouvons mieux gérer les complexités présentées par de grands ensembles de données complexes.
Titre: Parallel Strong Connectivity Based on Faster Reachability
Résumé: Computing strongly connected components (SCC) is a fundamental problems in graph processing. As today's real-world graphs are getting larger and larger, parallel SCC is increasingly important. SCC is challenging in the parallel setting and is particularly hard on large-diameter graphs. Many existing parallel SCC implementations can be even slower than Tarjan's sequential algorithm on large-diameter graphs. To tackle this challenge, we propose an efficient parallel SCC implementation using a new parallel reachability algorithm. Our solution is based on a novel idea referred to as vertical granularity control (VGC). It breaks the synchronization barriers to increase parallelism and hide scheduling overhead. To use VGC in our SCC algorithm, we also design an efficient data structure called the \emph{parallel hash bag}. It uses parallel dynamic resizing to avoid redundant work in maintaining frontiers (vertices processed in a round). We implement the parallel SCC algorithm by Blelloch et al.\ (J.\ ACM, 2020) using our new parallel reachability algorithm. We compare our implementation to the state-of-the-art systems, including GBBS, iSpan, Multi-step, and our highly optimized Tarjan's (sequential) algorithm, on 18 graphs, including social, web, $k$-NN, and lattice graphs. On a machine with 96 cores, our implementation is the fastest on 16 out of 18 graphs. On average (geometric means) over all graphs, our SCC is 6.0$\times$ faster than the best previous parallel code (GBBS), 12.8$\times$ faster than Tarjan's sequential algorithms, and 2.7$\times$ faster than the \emph{best existing implementation on each graph}. We believe that our techniques are of independent interest. We also apply our parallel hash bag and VGC scheme to other graph problems, including connectivity and least-element lists (LE-lists).
Auteurs: Letong Wang, Xiaojun Dong, Yan Gu, Yihan Sun
Dernière mise à jour: 2023-05-15 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2303.04934
Source PDF: https://arxiv.org/pdf/2303.04934
Licence: https://creativecommons.org/licenses/by/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.