This article introduces the problem of parallelization of Dijkstra's algorithm, a well known algorithm for computing single-source shortest path in a graph. Dijkstra's al...Show More
Metadata
Abstract:
This article introduces the problem of parallelization of Dijkstra's algorithm, a well known algorithm for computing single-source shortest path in a graph. Dijkstra's algorithm can be applied to graphs with a various number of vertices and edges. Dijkstra's shortest path algorithm is implemented and presented, and the performances of its parallel and serial execution are compared. The algorithm implementation was parallelized using OpenMP (Open Multi-Processing) and OpenCL (Open Computing Language) standards. Its performances were measured on 4 different configurations, based on dual core and i5 processors. The experimental results prove that the parallel execution of the algorithm has good performances in terms of speed-up ratio, when compared to its serial execution. Finally, the results show that, because of Dijkstra's algorithm in itself is sequential, and difficult to parallelize, average speed-up ratio achieved by parallelization is only 10%. This proves to be a huge disadvantage of this algorithm, because its use is widespread, and enhancing its performance would have great effects in its many uses.
With the development of computer and information technology, the research about graph theory get a wide range of attention, and a variety of graph structures and algorithms have been proposed [2].
Cites in Patents (1)Patent Links Provided by 1790 Analytics
1.
Bell, Dionysius D.; Li, Li; Madduri, Hari H.; McNair, Ryan D., "Automatic serial order starting of resource groups on failover systems based on resource group usage prediction"
Bell, Dionysius D.; Li, Li; Madduri, Hari H.; McNair, Ryan D.
Abstract:
A method for automatically prioritizing startup of resource groups during a migration event. The method may include monitoring resource usage of a first and a second set of applications associated, respectively, with a first and a second resource group executing on a first computing node. The method may additionally include generating respective first and second resource usage models for the first and second resource groups based on resource usage. The method may then include extrapolating, based on the first and second resource usage models, respective first and second resource group usage scores for the first and second resource groups at a second time in response to a migration event, the second time occurring subsequent to the first time. The method may further include determining, based on the extrapolating, a priority order for serially starting the first and second set of applications on a second computing node at the second time.