Applying Data Structure Succinctness to Graph Numbering For Efficient Graph Analysis
Résumé
Graph algorithms have inherent characteristics, including data-driven computations and poor locality. These characteristics expose graph algorithms to several challenges, because most well studied (parallel) abstractions and implementation are not suitable for them. In previous work
[17, 18, 20], authors show how to use some complex-network properties, including community structure and heterogeneity of node degree, to improve performance, by a proper memory management (Cn-order for cache misses reduction) and an appropriate thread scheduling (comm-degscheduling to ensure load balancing). In recent work [19], Besta et al. proposed log(graph), a graph representation that outperforms existing graph compression algorithms. In this paper, we show that graph numbering heuristics and scheduling heuristics can be improved when they are combined with log(graph) data structure. Experiments were made on multi-core machines. For example, on one node of a multi-core machine (Troll from Grid’5000), we showed that when combining existing heuristic with graph compression, with Pagerank being executing on Live Journal dataset, we can reduce with cn-order: cache-references from 29.94% (without compression) to 39.56% (with compression), cache-misses from 37.87% to 51.90% and hence time from 18.93% to 28.66%.
Domaines
Informatique [cs]Origine | Fichiers produits par l'(les) auteur(s) |
---|