suggesting that the algorithm is well suited for paral-
lelization. The existing tree parallelization for MCTS
uses a shared search tree and runs the iterations in par-
allel. However, the shared search tree has potential
race conditions. In this paper, we have presented a
new lock-free algorithm that has no race conditions. It
showed better scalability and playout-speedup when
compared to other synchronization methods. Cur-
rently, we have used the default sequential consis-
tency memory ordering for all atomic operations be-
cause that is the most convenient way to explain the
intricacies. For future work, we will look at reduc-
ing a selected set of the ordering constraints to the
relaxed-memory ordering.
ACKNOWLEDGEMENTS
This work is supported in part by the ERC Advanced
Grant no. 320651, “HEPGAME.”
REFERENCES
Arneson, B., Hayward, R. B., and Henderson, P. (2010).
Monte Carlo Tree Search in Hex. IEEE Transac-
tions on Computational Intelligence and AI in Games,
2(4):251–258.
Baudiˇs, P. and Gailly, J.-l. (2011). Pachi: State of the Art
Open Source Go Program. In Advances in Computer
Games 13, pages 24–38.
Browne, C. B., Powley, E., Whitehouse, D., Lucas, S. M.,
Cowling, P. I., Rohlfshagen, P., Tavener, S., Perez, D.,
Samothrakis, S., and Colton, S. (2012). A Survey of
Monte Carlo Tree Search Methods. Computational
Intelligence and AI in Games, IEEE Transactions on,
4(1):1–43.
Chaslot, G., Winands, M., and van den Herik, J. (2008a).
Parallel Monte-Carlo Tree Search. In the 6th Interna-
tioal Conference on Computers and Games, volume
5131, pages 60–71. Springer Berlin Heidelberg.
Chaslot, G. M. J. B., Winands, M. H. M., van den Herik, J.,
Uiterwijk, J. W. H. M., and Bouzy, B. (2008b). Pro-
gressive strategies for Monte-Carlo tree search. New
Mathematics and Natural Computation, 4(03):343–
357.
Coulom, R. (2006). Efficient Selectivity and Backup Op-
erators in Monte-Carlo Tree Search. In Proceed-
ings of the 5th International Conference on Comput-
ers and Games, volume 4630 of CG’06, pages 72–83.
Springer-Verlag.
Enzenberger, M. and M¨uller, M. (2010). A lock-free mul-
tithreaded Monte-Carlo tree search algorithm. Ad-
vances in Computer Games, 6048:14–20.
Enzenberger, M., Muller, M., Arneson, B., and Segal, R.
(2010). FuegoAn Open-Source Framework for Board
Games and Go Engine Based on Monte Carlo Tree
Search. IEEE Transactions on Computational Intelli-
gence and AI in Games, 2(4):259–270.
Galil, Z. and Italiano, G. F. (1991). Data Structures and
Algorithms for Disjoint Set Union Problems. ACM
Comput. Surv., 23(3):319–344.
Goodfellow, I., Bengio, Y., and Courville, A. (2016). Deep
Learning. Adaptive Computation and Machine Learn-
ing Series. MIT Press.
Kocsis, L. and Szepesv´ari, C. (2006). Bandit based Monte-
Carlo Planning Levente. In F¨urnkranz, J., Scheffer, T.,
and Spiliopoulou, M., editors, ECML’06 Proceedings
of the 17th European conference on Machine Learn-
ing, volume 4212 of Lecture Notes in Computer Sci-
ence, pages 282–293. Springer Berlin Heidelberg.
Kuipers, J., Plaat, A., Vermaseren, J., and van den Herik, J.
(2013). Improving Multivariate Horner Schemes with
Monte Carlo Tree Search. Computer Physics Commu-
nications, 184(11):2391–2395.
McCool, M., Reinders, J., and Robison, A. (2012). Struc-
tured Parallel Programming: Patterns for Efficient
Computation. Elsevier.
Mirsoleimani, S. A., Plaat, A., van den Herik, J., and Ver-
maseren, J. (2015). Parallel Monte Carlo Tree Search
from Multi-core to Many-core Processors. In ISPA
2015 : The 13th IEEE International Symposium on
Parallel and Distributed Processing with Applications
(ISPA), pages 77–83, Helsinki.
Reinders, J. (2007). Intel threading building blocks: out-
fitting C++ for multi-core processor parallelism. ”
O’Reilly Media, Inc.”.
Robison, A. D. (2013). Composable Parallel Patterns with
Intel Cilk Plus. Computing in Science & Engineering,
15(2):66–71.
Weisstein, E. W. (2017). Game of hex. From MathWorld—
A Wolfram Web Resource.
Williams, A. (2012). C++ Concurrency in Action: Prac-
tical Multithreading. Manning Pubs Co Series. Man-
ning.