Improving Hash Distributed A* for Shared Memory Architectures Using Abstraction

  • Victoria Sanz
  • Armando De Giusti
  • Marcelo Naiouf
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10048)


The A* algorithm is generally used to solve combinatorial optimization problems, but it requires high computing power and a large amount of memory, hence, efficient parallel A* algorithms are needed. In this sense, Hash Distributed A* (HDA*) parallelizes A* by applying a decentralized strategy and a hash-based node distribution scheme. However, this distribution scheme results in frequent node transfers among processors. In this paper, we present Optimized AHDA*, a version of HDA* for shared memory architectures, that uses an abstraction-based node distribution scheme and a technique to group several nodes before transferring them to the corresponding thread. Both methods reduce the amount of node transfers and mitigate communication and contention. We assess the effect of each technique on algorithm performance. Finally, we evaluate the scalability of the proposed algorithm, when it is run on a multicore machine, using the 15-puzzle as a case study.


HDA* for shared memory architectures Abstraction-based node distribution scheme Hash-based node distribution scheme Scalability Combinatorial optimization problems 


  1. 1.
    Hart, P., et al.: A formal basis for the heuristic determination of minimum cost paths. IEEE Trans. Syst. Sci. Cybern. 4(2), 100–107 (1968)CrossRefGoogle Scholar
  2. 2.
    Russel, S., Norvig, P.: Artificial Intelligence: A Modern Approach, 2nd edn. Prentice Hall, New Jersey (2003)Google Scholar
  3. 3.
    Kishimoto, A., et al.: Evaluation of a simple, scalable, parallel best-first search strategy. Artifi. Intell. 195, 222–248 (2013)MathSciNetCrossRefzbMATHGoogle Scholar
  4. 4.
    Burns, E., et al.: Best-first heuristic search for multicore machines. J. Artif. Intell. Res. 39(1), 689–743 (2010)MathSciNetzbMATHGoogle Scholar
  5. 5.
    Sanz, V., et al.: On the optimization of HDA* for multicore machines. performance analysis. In: Proceedings of PDPTA 2014, pp. 625–631. CSREA Press, Georgia (2014)Google Scholar
  6. 6.
    Sanz, V., et al.: Performance tuning of the HDA* algorithm for multicore machines. In: Computer Science and Technology Series 2015, EDULP, La Plata (2015, in press)Google Scholar
  7. 7.
    Kumar, V., et al.: Parallel best-first search of state-space graphs: a summary of results. In: Proceedings of AAAI 1988, pp. 122–127. AAAI Press, California (1988)Google Scholar
  8. 8.
    Zobrist, A.: A new hashing method with application for game playing. Technical report 88, Computer Sciences Department, University of Wisconsin, Madison (1968)Google Scholar
  9. 9.
    Gue, K., et al.: GridStore: a puzzle-based storage system with decentralized control. IEEE Trans. Autom. Sci. Eng. 11(2), 429–438 (2014)CrossRefGoogle Scholar
  10. 10.
    Zhou, R., et al.: System and method for parallel graph searching utilizing parallel edge partitioning. Patent No. US 2011/0313984 A1, USA (2011)Google Scholar
  11. 11.
    Korf, R.: Depth-first Iterative-Deepening: an optimal admissible tree search. Artif. Intell. 27(1), 97–109 (1985)MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Brüngger, A.: Solving hard combinatorial optimization problems in parallel: two cases studies. Ph.D. thesis, ETH Zurich, Diss. ETH No. 12358 (1998)Google Scholar

Copyright information

© Springer International Publishing AG 2016

Authors and Affiliations

  • Victoria Sanz
    • 1
    • 2
  • Armando De Giusti
    • 1
    • 2
  • Marcelo Naiouf
    • 1
  1. 1.III-LIDI, School of Computer SciencesNational University of La PlataLa PlataArgentina
  2. 2.CONICET, Ministry of Science, Technology and Productive InnovationBuenos AiresArgentina

Personalised recommendations