A Lock-Free Multithreaded Monte-Carlo Tree Search Algorithm

  • Markus Enzenberger
  • Martin Müller
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6048)


With the recent success of Monte-Carlo tree search algorithms in Go and other games, and the increasing number of cores in standard CPUs, the efficient parallelization of the search has become an important issue. We present a new lock-free parallel algorithm for Monte-Carlo tree search which takes advantage of the memory model of the IA-32 and Intel-64 CPU architectures and intentionally ignores rare faulty updates of node values. We show that this algorithm significantly improves the scalability of the Fuego Go program.


Memory Model Board Size Memory Array Heuristic Evaluation Number Thread 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Coulom, R.: Efficient selectivity and backup operators in Monte-Carlo tree search. In: van den Herik, H.J., Ciancarini, P., Donkers, H. (eds.) CG 2006. LNCS, vol. 4630, pp. 72–83. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  2. 2.
    Gelly, S.: A Contribution to Reinforcement Learning; Application to Computer-Go. PhD thesis, Université Paris-Sud (2007)Google Scholar
  3. 3.
    Cazenave, T., Jouandeau, N.: A parallel Monte-Carlo tree search algorithm. In: van den Herik, J., Xu, X., Ma, Z., Winands, M. (eds.) CG 2008. LNCS, vol. 5131, pp. 72–80. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  4. 4.
    Cazenave, T., Jouandeau, N.: On the parallelization of UCT. In: Computer Games Workshop, Amsterdam, pp. 93–101 (2007)Google Scholar
  5. 5.
    Chaslot, G., Winands, M., van den Herik, J.: Parallel Monte-Carlo tree search. In: van den Herik, H.J., Xu, X., Ma, Z., Winands, M.H.M. (eds.) CG 2008. LNCS, vol. 5131, pp. 60–71. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  6. 6.
    Gelly, S., Hoock, J., Rimmel, A., Teytaud, O., Kalemkarian, Y.: On the parallelization of Monte-Carlo planning. In: Icinco, Madeira, Portugal, pp. 198–203 (2008)Google Scholar
  7. 7.
    Kato, H., Takeuchi, I.: Parallel Monte-Carlo Tree Search with simulation servers. In: 13th Game Programming Workshop, GPW 2008 (2008)Google Scholar
  8. 8.
    Coulom, R.: Lockless hash table and other parallel search ideas (2008),, (Date retrieved: April 28, 2009)
  9. 9.
    Enzenberger, M., Müller, M.: Fuego – an open-source framework for board games and Go engine based on Monte-Carlo tree search. Technical Report TR09-08, University of Alberta, Edmonton, 22 pages (2009)Google Scholar
  10. 10.
    Dailey, D.: Computer Go Server (2008), (Date retrieved: January 19, 2009)
  11. 11.
    Arneson, B., Hayward, R., Henderson, P.: Wolve 2008 wins Hex tournament. ICCA Journal 32(1), 49–54 (2009)Google Scholar
  12. 12.
    Intel Corporation: Intel 64 and IA-32 Architectures Software Developer’s Manual – Volume 3A: System Programming Guide, Part 1, Order Number: 253668-029US (2008)Google Scholar
  13. 13.
    Enzenberger, M.: GoGui (2009), (Date retrieved: January 2, 2009)
  14. 14.
    Free Software Foundation: GNU Go (2009), (Date retrieved: January 2, 2009)

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Markus Enzenberger
    • 1
  • Martin Müller
    • 1
  1. 1.Department of Computing ScienceUniversity of Alberta 

Personalised recommendations