Accelerating finding euler circuit on CPU-GPGPU heterogeneous architecture

GPU (Graphic Processing Unit) provides a large computational performance at a very low price. Algorithms with regular data access map well to the SIMD architecture of current GPU, while irregular algorithms on discrete data structures like graphs are hard to map. In this paper, we transform the prior algorithm, design special data structures, and present an optimized CPU-GPU implementation for finding Euler circuit on a randomly generated Eulerian graph. It can deal with a graph of 4096 vertices and 1.7 million edges in about 1 second, which has a speed up of about 50 times over the best sequential CPU implementation.

[1]  Naga K. Govindaraju,et al.  Fast scan algorithms on graphics processors , 2008, ICS '08.

[2]  P. J. Narayanan,et al.  A fast GPU algorithm for graph connectivity , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum (IPDPSW).

[3]  P J Narayanan,et al.  Fast minimum spanning tree for large graphs on the GPU , 2009, High Performance Graphics.

[4]  Joseph T. Kider,et al.  All-pairs shortest-paths for large graphs on the GPU , 2008, GH '08.

[5]  Baruch Awerbuch,et al.  Finding euler circuits in logarithmic parallel time , 1984, STOC '84.

[6]  P. J. Narayanan,et al.  Accelerating Large Graph Algorithms on the GPU Using CUDA , 2007, HiPC.

[7]  Jayme Luiz Szwarcfiter,et al.  On Finding Euler Tours in Parallel , 1993, Parallel Process. Lett..

[8]  P. J. Narayanan,et al.  CUDA cuts: Fast graph cuts on the GPU , 2008, 2008 IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops.

[9]  P. Pevzner,et al.  An Eulerian path approach to DNA fragment assembly , 2001, Proceedings of the National Academy of Sciences of the United States of America.

[10]  Mikkel Thorup,et al.  Near-optimal fully-dynamic graph connectivity , 2000, STOC '00.