Parallel implementation of force algorithms for graph visualization - Zhansultan, Abenov (2022)
In this paper we select some graph generate-and-render algorithms and evaluate their performance. The experimental results ground our proposal of a parallelized version of an algorithm (the Force Atlas 2) and the corresponding performance analysis. Our work resorts to graph visualization tools such as D3.js, jgraph, NetworkX, Gephi, and sigma.js. We analyze how to use those tools, their advantages and disadvantages and compare their performance. Since each of those tools use their own algorithms, we also conducted a comparative review of graph visualization algorithms. We reviewed algorithms such as FA (Force Atlas), FA2 (Force Atlas 2), FR (Fruchterman & Reingold), LinLog and Dijkstra (Dijkstra's algorithm). The different algorithms were experimentally compared on the same data. The experiments enabled to build a performance ranked perspective. The fastest algorithm was chosen, and experiments were carried out to optimize the rate of generation of graph coordinates by introducing parallel computations during the generation of graph coordinates. During the experiments, the best visualization algorithm for Force Atlas 2 graphs was identified and selected. This algorithm was parallelized, and we achieved a relevant speedup ratio around 26.7% and parallel efficiency around 30%.