Accelerating graph algorithms with priority queue processor - Heng Sun, Ch'ng; Eik Wee, Chew; Shaikh-Husin, Nasir; Hani, Mohamed Khalil (School of Postgraduate Studies, UTM, 2006)
Graphs are a pervasive data structure in computer science, and algorithms working with them are fundamental to the field. Of the various graph algorithms, techniques for searching a graph are the heart of graph algorithms. Many graph algorithms are organized as simple elaborations of basic graph searching algorithms. For the searching of a graph, Priority Queue is used to maintain the tentative search result and choice of priority queue implementation would significantly affect the run-time and memory consumption of a graph algorithm. In this work, we demonstrate how to accelerate graph algorithms using priority queue processor. Dijkstra’s algorithm is chosen as the target implementation, as many state-of-the-art graph algorithms use Dijkstra’s algorithm at the heart of their computational engine. Assuming embedded hardware-software codesign, results show that our priority queue processor performs better than software implementation, and the run-time complexity of Dijkstra’s algorithm is reduced from O(n lg n) in software implementation to O(n) with our priority queue processor.