Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Amato, N.: Randomized Motion Planning. Texas, USA (2004), http://parasol.tamu.edu/~amato/Courses/padova04/lectures/L8.prms.pdf
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
Bleiweiss, A.: GPU Accelerated Pathfinding. In: Proceedings of Eurographics 2008 (2008)
Botea, A., Muller, M., Schaeffer, J.: Near Optimal Hierarchical Path-Finding (HPA*). Department of Computing Science, University of Alberta (2006)
Brand, S.: Efficient obstacle avoidance using autonomously generated navigation meshes. MSc Thesis, Delft University of Technology,The Netherlands (2009)
Buluç, A., Gilbert, J.R., Budak, C.: Solving Path Problems on the GPU. Parallel Computing (2009), doi:10.0106/j.parco.2009.12.002
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
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)
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
Sniedovich, M.: Dijkstra’s Algorithm. The University of Melbourne, Australia, http://www.ms.unimelb.edu.au/~moshe/620-261/dijkstra/dijkstra.html
Nohra, J., Champandard, A.J.: The Secrets of Parallel Pathfinding on Modern Computer Hardware. In: Intel Software Network, Intel Corp. (2010)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Brand, S., Bidarra, R. (2011). Parallel Ripple Search – Scalable and Efficient Pathfinding for Multi-core Architectures. In: Allbeck, J.M., Faloutsos, P. (eds) Motion in Games. MIG 2011. Lecture Notes in Computer Science, vol 7060. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-25090-3_25
Download citation
DOI: https://doi.org/10.1007/978-3-642-25090-3_25
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-25089-7
Online ISBN: 978-3-642-25090-3
eBook Packages: Computer ScienceComputer Science (R0)