Parallel Ripple Search – Scalable and Efficient Pathfinding for Multi-core Architectures
Game developers are often faced with very demanding requirements on huge numbers of agents moving naturally through increasingly large and detailed virtual worlds. With the advent of multi-core architectures, new approaches to accelerate expensive pathfinding operations are worth being investigated. Traditional single-processor pathfinding strategies, such as A* and its derivatives, have been long praised for their flexibility. We implemented several parallel versions of such algorithms to analyze their intrinsic behavior, concluding that they either have a large overhead, yield far from optimal paths, do not scale up to many cores, or are cache unfriendly. In this paper we propose Parallel Ripple Search, a novel parallel pathfinding algorithm that largely solves these limitations. It utilizes a high-level graph to assign local search areas to CPU cores at ’equidistant’ intervals. These cores then use A* flooding behavior to expand towards each other, yielding good ’guesstimate points’ at border touch on. The process does not rely on expensive parallel programming synchronization locks, but instead relies on the opportunistic use of node collisions among cooperating cores, exploiting the multi-core’s shared memory architecture. As a result, all cores effectively run at full speed until enough way-points are found. We show that this approach is a fast, practical and scalable solution, and that it flexibly handles dynamic obstacles in a natural way.
KeywordsGoal Node Optimal Path Anchor Node Path Segment Start Node
Unable to display preview. Download preview PDF.
- 1.Amato, N.: Randomized Motion Planning. Texas, USA (2004), http://parasol.tamu.edu/~amato/Courses/padova04/lectures/L8.prms.pdf
- 2.Björnsson, Y., Enzenberger, M., Holte, R., Schaeffer, J.: Fringe Search: Beating A* at Pathfinding on Game Maps. In: Proceedings of IEEE Symposium on Computational Intelligence and Games, Essex, pp. 125–132 (2005), http://www.cs.ualberta.ca/~games/pathfind/publications/cig2005.pdf
- 3.Bleiweiss, A.: GPU Accelerated Pathfinding. In: Proceedings of Eurographics 2008 (2008)Google Scholar
- 4.Botea, A., Muller, M., Schaeffer, J.: Near Optimal Hierarchical Path-Finding (HPA*). Department of Computing Science, University of Alberta (2006)Google Scholar
- 5.Brand, S.: Efficient obstacle avoidance using autonomously generated navigation meshes. MSc Thesis, Delft University of Technology,The Netherlands (2009)Google Scholar
- 6.Buluç, A., Gilbert, J.R., Budak, C.: Solving Path Problems on the GPU. Parallel Computing (2009), doi:10.0106/j.parco.2009.12.002Google Scholar
- 7.Cohen, D., Dallas, M.: Implementation of Parallel Path Finding in a Shared Memory Architecture. Department of Computer Science Rensselaer Polytechnic Institute, Troy, NY (2010), http://www.cs.rpi.edu/~dallam/Parallel.pdf
- 8.Cvetanovic, Z., Nofsinger, C.: Parallel Astar Search on Message-Passing Architectures. System Sciences. In: Proceedings of the Twenty-Third Annual Hawaii Conference, vol. 1, pp. 92–90 (1990)Google Scholar
- 9.Patel, A.J. (2004) Variations of A*. Amit’s Game Programming Site, http://www.dc.fi.udc.es/lidia/mariano/demos/amits/theory.stanford.edu/~amitp/gameprogramming/variations.html
- 10.Sniedovich, M.: Dijkstra’s Algorithm. The University of Melbourne, Australia, http://www.ms.unimelb.edu.au/~moshe/620-261/dijkstra/dijkstra.html
- 11.Nohra, J., Champandard, A.J.: The Secrets of Parallel Pathfinding on Modern Computer Hardware. In: Intel Software Network, Intel Corp. (2010)Google Scholar
- 12.Sturtevant, N.R., Geisberger, R.: A Comparison of High-Level Approaches for Speeding Up Pathfinding. In: Proceedings of the Conference on Artificial Intelligence and Interactive Digital Entertainment, AIIDE 2010 (2010)Google Scholar