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 our previous work [21, 22, 24], we 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) and an appropriate thread scheduling (comm-deg-scheduling). In recent work [23], Besta et al. proposed log(graph), a graph representation that outperforms existing graph compression algorithms. In this paper, we show that our graph numbering heuristic and our 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 our previously proposed heuristics 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) |
---|