Changes

Jump to: navigation, search

Parallel Search

2,953 bytes added, 22:39, 28 December 2020
no edit summary
''see Main page: [[Shared Hash Table]]''
This technique is a very simple approach to [[SMP]]. The implementation requires little more than starting additional processors. Processors are simply fed the root position at the beginning of the search, and each searches the same tree with the only communication being the [[Transposition Table|transposition table]]. The gains come from the effect of nondeterminism. Each processor will finish the various subtrees in varying amounts of time, and as the search continues, these effects grow making the search trees diverge. The speedup is then based on how many nodes the main processor is able to skip from transposition table entries. Many programs used this if a "quick and dirty" approach to SMP is needed. It had the reputation of little speedup on a mere 2 processors, and to scale quite badly after this.
<span id="Lazy"></span>
==Lazy SMP==
'''1983'''
* [[Raphael Finkel]], [[John Philip Fishburn]] ('''1983'''). ''Improved Speedup Bounds for Parallel Alpha-Beta Search''. [[IEEE#TPAMI|IEEE Transactions on Pattern Analysis and Machine Intelligence]], Vol. 5, No. 1, pp. 89 - 92
* [[Clyde Kruskal]] ('''1983'''). ''[httphttps://ieeexplore.ieee.org/xpldocument/freeabs_all.jsp1676138?arnumber=1676138 Searching, Merging, and Sorting in Parallel Computation]''. [[IEEE#TOC|IEEE Transactions on Computers]], Vol. C-32, No 10
* [[Gary Lindstrom]] ('''1983'''). ''The Key Node Method: A Highly-Parallel Alpha-Beta Algorithm''. Technical Report UUCCS 83-101, [https://en.wikipedia.org/wiki/University_of_Utah University of Utah], [http://content.lib.utah.edu/utils/getfile/collection/uspace/id/3706/filename/image pdf]
'''1984'''
* [[Lionel Moser]] ('''1984'''). ''An Experiment in Distributed Game Tree Searching'', M.Sc. thesis, [[University of Waterloo]] <ref>[[Jonathan Schaeffer]] ('''1985'''). ''[[Lionel Moser]]: An Experiment in Distributed Game Tree Searching.'' [[ICGA Journal#8_2|ICCA Journal, Vol. 8, No. 2]] (Review)</ref> <ref>[httphttps://www.cs.uwaterloo.ca/~alopez-o/divulge/chimp.html An Introduction to Computer Chess] by [http://www.cs.uwaterloo.ca/~alopez-o/ [Alejandro López-Ortiz]], 1993</ref>
==1985 ...==
* [[Tony Marsland]], [[Fred Popowich]] ('''1985'''). ''Parallel Game-Tree Search.'' [[IEEE#TPAMI|IEEE Transactions on Pattern Analysis and Machine Intelligence]], Vol. 7, No. 4, pp. 442-452. [http://webdocs.cs.ualberta.ca/~tony/OldPapers/parallel.pdf 1984 pdf] (Draft)
* [[Baruch Awerbuch]] ('''1985'''). ''[http://www.sciencedirect.com/science/article/pii/0020019085900833 A New Distributed Depth-First Search Algorithm]''. [https://en.wikipedia.org/wiki/Information_Processing_Letters Information Processing Letters], Vol. 20, No. 3
* [[Monroe Newborn]] ('''1985'''). ''A Parallel Search Chess Program''. Proceedings of the ACM Annual Conference, pp. 272-277. Denver, Co.
* [[Clyde Kruskal]], [https://en.wikipedia.org/wiki/Alan_Weiss_%28mathematician%29 [Mathematician#AWeiss|Alan Weiss]] ('''1985'''). ''Allocating Independent Subtasks on Parallel Processors''. [https://en.wikipedia.org/wiki/IEEE_Transactions_on_Software_Engineering [IEEE#SE|IEEE Transactions on Software Engineering]], Vol. 11, No. 10
* [http://www.informatik.uni-trier.de/~ley/pers/hd/l/Leifker:Daniel_B=.html Daniel B. Leifker], [[Laveen Kanal|Laveen N. Kanal]] ('''1985'''). ''[http://dl.acm.org/citation.cfm?id=1623687 A Hybrid SSS*/Alpha-Beta Algorithm for Parallel Search of Game Trees]''. [http://www.informatik.uni-trier.de/~ley/db/conf/ijcai/ijcai85.html#LeifkerK85 IJCAI'85] » [[SSS* and Dual*]]
'''1986'''
==1990 ...==
* [[Rainer Feldmann]], [[Peter Mysliwietz]], [[Burkhard Monien]] ('''1991''') ''A Fully Distributed Chess Program''. [[Advances in Computer Chess 6]], [http://www.top-5000.nl/ps/A%20fully%20distribuited%20chess%20program.pdf pdf]
* [[Clyde Kruskal]], [[Mathematician#LRudolph|Larry Rudolph]], [[Mathematician#MSnir|Marc Snir]] ('''1990'''). ''[https://www.sciencedirect.com/science/article/pii/030439759090192K A Complexity Theory of Efficient Parallel Algorithms]''. [https://en.wikipedia.org/wiki/Theoretical_Computer_Science_%28journal%29 Theoretical Computer Science], Vol. 71
* [[Clyde Kruskal]], [[Mathematician#LRudolph|Larry Rudolph]], [[Mathematician#MSnir|Marc Snir]] ('''1990'''). ''[https://link.springer.com/article/10.1007/BF01840376 Efficient Parallel Algorithms for Graph Problems]''. [https://en.wikipedia.org/wiki/Algorithmica Algorithmica], Vol. 5, No. 1
'''1992'''
* [[Jaleh Rezaie]], [[Raphael Finkel]] ('''1992'''). ''[https://www.researchgate.net/publication/2813087_A_comparison_of_some_parallel_game-tree_search_algorithms_Revised_version A comparison of some parallel game-tree search algorithms]''. [https://en.wikipedia.org/wiki/University_of_Kentucky University of Kentucky]
==1995 ...==
* [[Bradley Kuszmaul|Bradley C. Kuszmaul]] ('''1995'''). ''The StarTech Massively Parallel Chess Program''. [http://supertech.csail.mit.edu/papers/startech.pdf pdf]
* [[Henri Bal]] and , [[Victor Allis]] ('''1995'''). ''Parallel Retrograde Analysis on a Distributed System''. Supercomputing ’95, San Diego, CA.
* [[Jean-Christophe Weill]] ('''1995'''). ''Programmes d'Échecs de Championnat: Architecture Logicielle Synthèse de Fonctions d'Évaluations, Parallélisme de Recherche''. Ph.D. Thesis. Université Paris 8, Saint-Denis, [http://www.recherche.enac.fr/%7Eweill/publications/phdJCW.ps.gz zipped ps] (French)
* [[Holger Hopp]], [[Peter Sanders]] ('''1995'''). ''Parallel Game Tree Search on SIMD Machines''. [http://www.informatik.uni-trier.de/~ley/db/conf/irregular/irregular95.html#HoppS95 IRREGULAR 1995], from [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.16.6343 CiteSeerX]
* [[Tony Marsland]] and , [[Yaoqing Gao]] ('''1995'''). ''Speculative Parallelism Improves Search?'' Technical Report 95-05, Department of Computing Science, [[University of Alberta]], [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.2187 CiteSeerX]
'''1996'''
* [[Jean-Christophe Weill]] ('''1996'''). ''The ABDADA Distributed Minimax Search Agorithm''. Proceedings of the 1996 ACM Computer Science Conference, pp. 131-138. ACM, New York, N.Y, reprinted [[ICGA Journal#19_1|ICCA Journal, Vol. 19, No. 1]], [http://www.recherche.enac.fr/%7Eweill/publications/acm.ps.gz zipped postscript]
* [[Andrew Tridgell]] ('''1997'''). ''KnightCap — a parallel chess program on the AP1000+''. [ftp://us6.samba.org/pub/tridge/knightcap_pcw97.ps.gz zipped ps] » [[KnightCap]]
* [[Mark Brockington]], [[Jonathan Schaeffer]] ('''1997'''). ''APHID Game-Tree Search''. [[Advances in Computer Chess 8]]
* [[David Sturgill]] and , [[Alberto Maria Segre]] ('''1997'''). ''[http://www.springerlink.com/content/j11186905500t384/ Nagging: A Distributed, Adversarial Search-Pruning Technique Applied to First-Order Inference]''. [https://en.wikipedia.org/wiki/Journal_of_Automated_Reasoning Journal of Automated Reasoning], Vol. 19, No. 3 <ref>[https://en.wikipedia.org/wiki/Nagging Nagging from Wikipedia]</ref>
'''1998'''
* [[Mark Brockington]] ('''1998'''). ''Asynchronous Parallel Game-Tree Search''. Ph.D. Thesis, [[University of Alberta]], [http://games.cs.ualberta.ca/articles/mgb_thesis.ps.gz zipped postscript]
'''2001'''
* [[John Romein]] ('''2001'''). ''Multigame - An Environment for Distributed Game-Tree Search''. Ph.D. thesis, [https://en.wikipedia.org/wiki/Vrije_Universiteit Vrije Universiteit], supervisor [[Henri Bal]], [http://dare.ubvu.vu.nl/bitstream/1871/11305/1/5429.pdf pdf]
* [[Yaron Shoham]], [[Sivan Toledo]] ('''2001'''). ''Parallel randomized best-first minimax search''. School of Computer Science, [https://en.wikipedia.org/wiki/Tel_Aviv_University Tel-Aviv University], [http://www.tau.ac.il/%7Estoledo/Pubs/rbf-ai-revised.pdf pdf]
* [[Valavan Manohararajah]] ('''2001'''). ''Parallel Alpha-Beta Search on Shared Memory Multiprocessors''. Masters Thesis, [http://www.top-5000.nl/ps/Parallel%20Alpha-Beta%20Search%20on%20Shared%20Memory%20Multiprocessors.pdf pdf]
* [http://www.zib.de/schintke/ Florian Schintke], [http://pc2.uni-paderborn.de/people/jens-simon/ Jens Simon], [[Alexander Reinefeld]] ('''2001'''). ''A Cache Simulator for Shared Memory Systems''. International Conference on Computational Science ICCS 2001, San Francisco, CA, Springer LNCS 2074, vol. 2, pp. 569-578. [http://www.zib.de/reinefeld/Publications/ldasim-lncs.ps.gz zipped ps]
'''2002'''
* [[Yaron Shoham]], [[Sivan Toledo]] ('''2002'''). ''[https://www.sciencedirect.com/science/article/pii/S0004370202001959 Parallel Randomized Best-First Minimax Search]''. [https://en.wikipedia.org/wiki/Artificial_Intelligence_(journal) Artificial Intelligence], Vol. 137, Nos. 1-2
* [[Akihiro Kishimoto]], [[Jonathan Schaeffer]]. ('''2002'''). ''Distributed Game-Tree Search Using Transposition Table Driven Work Scheduling'', In Proc. of 31st International Conference on Parallel Processing (ICPP'02), pages 323-330, IEEE Computer Society Press. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.132.8604&rep=rep1&type=pdf pdf] via [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.132.8604 CiteSeerX]
* [[Akihiro Kishimoto]], [[Jonathan Schaeffer]]. ('''2002'''). ''Transposition Table Driven Work Scheduling in Distributed Game-Tree Search'' (Best Paper Prize), In Proc. of Fifteenth Canadian Conference on Artificial Intelligence (AI'2002), volume 2338 of Lecture Notes in Artificial Intelligence (LNAI), pages 56-68, [http://www.springerlink.com/content/47b3crn04egmmx8l/ Springer]
* [[John Romein]], [[Henri Bal]], [[Jonathan Schaeffer]], [[Aske Plaat]] ('''2002'''). ''A Performance Analysis of Transposition-Table-Driven Scheduling in Distributed Search''. IEEE Transactions on Parallel and Distributed Systems, Vol. 13, No. 5, pp. 447–459. [http://www.cs.vu.nl/~bal/Papers/tds.pdf pdf] » [[Transposition Table]] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=47700 Transposition driven scheduling] by [[Daniel Shawul]], [[CCC]], April 04, 2013</ref>
* [[Alberto Maria Segre]], [[Sean Forman]], [[Giovanni Resta]], [[Andrew Wildenberg]] ('''2002'''). ''[https://www.sciencedirect.com/science/article/pii/S000437020200228X Nagging: A Scalable Fault-Tolerant Paradigm for Distributed Search]''. [https://en.wikipedia.org/wiki/Artificial_Intelligence_%28journal%29 Artificial Intelligence] 140, [http://jmvidalVol.cse.sc.edu/library/segre02a.pdf pdf]140, [http://compepiNos.cs.uiowa.edu/uploads/Profiles/Segre/nag.pdf pdf]1-2
'''2003'''
* [[Brian Greskamp]] ('''2003'''). ''Parallelizing a Simple Chess Program''. [http://iacoma.cs.uiuc.edu/~greskamp/pdfs/412.pdf pdf]
* [[Kai Himstedt]], [[Ulf Lorenz]], [http://www.informatik.uni-hamburg.de/TIS/index.php Dietmar P. F. Möller] ('''2008'''). ''A Twofold Distributed Game-Tree Search Approach Using Interconnected Clusters''. Euro-Par 2008: 587-598, [http://www.springerlink.com/content/2471845u5w6j1211/ abstract] from [http://www.springerlink.com/home/main.mpx springerlink]
* [[Tristan Cazenave]], [[Nicolas Jouandeau]] ('''2008'''). ''A Parallel Monte-Carlo Tree Search Algorithm''. [http://www.lamsade.dauphine.fr/~cazenave/papers/parallelMCTS.pdf pdf]
* [[James Swafford]] ('''2008'''). ''[https://fr.slideshare.net/JamesSwafford2/jfsmasters1 A Survey of Parallel Search Algorithms over Alpha-Beta Search Trees using Symmetric Multiprocessor Machines]''. Masters Project, [https://en.wikipedia.org/wiki/East_Carolina_University East Carolina University], advisor [http://www.cs.ecu.edu/rws/ Ronnie Smith]
'''2009'''
* [[Markus Enzenberger]], [[Martin Müller]] ('''2009'''). ''A lock-free multithreaded Monte-Carlo tree search algorithm'', [[Advances in Computer Games 12]], [http://webdocs.cs.ualberta.ca/~mmueller/ps/enzenberger-mueller-acg12.pdf pdf]
* [[Shu Yokoyama]], [[Tomoyuki Kaneko]], [[Tetsuro Tanaka]] ('''2015'''). ''Parameter-Free Tree Style Pipeline in Asynchronous Parallel Game-Tree Search''. [[Advances in Computer Games 14]]
* [[S. Ali Mirsoleimani]], [[Aske Plaat]], [[Jaap van den Herik]], [[Jos Vermaseren]] ('''2015'''). ''Scaling Monte Carlo Tree Search on Intel Xeon Phi''. [http://arxiv.org/abs/1507.04383 CoRR abs/1507.04383] » [[Hex]], [[Monte-Carlo Tree Search|MCTS]], [[x86-64]]
* [[S. Ali Mirsoleimani]], [[Aske Plaat]], [[Jaap van den Herik]], [[Jos Vermaseren]] ('''2015'''). ''Parallel Monte Carlo Tree Search from Multi-core to Many-core Processors''. [https://whova.com/portal/ieeet_201508/ TrustCom/BigDataSE/|ISPA 2015], [https://askeplaat.files.wordpress.com/2013/01/ispa2015.pdf pdf]
* [[Ting-Han Wei]], [[Chao-Chin Liang]], [[I-Chen Wu]], [[Lung-Pin Chen]] ('''2015'''). ''Software Development Framework for Job-Level Algorithms''. [[ICGA Journal#38_3|ICGA Journal, Vol. 38, No. 3]]
* [[Akira Ura]], [[Yoshimasa Tsuruoka]], [[Takashi Chikayama]] ('''2015'''). ''[https://www.jstage.jst.go.jp/article/ipsjjip/23/1/23_9/_article Dynamic Prediction of Minimal Trees in Large-Scale Parallel Game Tree Search]''. [https://www.jstage.jst.go.jp/browse/ipsjjip/ Journal of Information Processing], Vol. 23, No. 1
* [[Jr-Chang Chen]], [[I-Chen Wu]], [[Wen-Jie Tseng]], [[Bo-Han Lin]], [[Chia-Hui Chang]] ('''2015'''). ''[https://ir.nctu.edu.tw/handle/11536/124541 Job-Level Alpha-Beta Search]''. [[IEEE#TOCIAIGAMES|IEEE Transactions on Computational Intelligence and AI in Games]], Vol. 7, No. 1
* [[Lars Schaefers]], [[Marco Platzner]] ('''2015'''). ''[http://ieeexplore.ieee.org/document/6876158/ Distributed Monte Carlo Tree Search: A Novel Technique and its Application to Computer Go]''. [[IEEE#TOCIAIGAMES|IEEE Transactions on Computational Intelligence and AI in Games]], Vol. 7, No. 4 <ref>[http://www.talkchess.com/forum/viewtopic.php?t=66125&start=18 Re: Minmax backup operator for MCTS] by [[Brahim Hamadicharef]], [[CCC]], December 30, 2017</ref>
'''2016'''* [[S. Ali Mirsoleimani]], [[Aske Plaat]], [[Jaap van den Herik]], [[Jos Vermaseren]] ('''2016'''). ''A New Method for Parallel Monte Carlo Tree Search''. [https://arxiv.org/abs/1605.04447 arXiv:1605.04447] » [[Monte-Carlo Tree Search|MCTS]]* [[S. Ali Mirsoleimani]], [[Aske Plaat]], [[Jaap van den Herik]], [[Jos Vermaseren]] ('''2016'''). ''An Efficient Computation Pattern for Parallel MCTS''. [http://www.ictopen.nl/content/Previous+editions ICT.OPEN 2016], [http://liacs.leidenuniv.nl/~plaata1/papers/ictopen2016.pdf pdf] '''2017'''* [[S. Ali Mirsoleimani]], [[Aske Plaat]], [[Jaap van den Herik]], [[Jos Vermaseren]] ('''2017'''). ''Structured Parallel Programming for Monte Carlo Tree Search''. [https://arxiv.org/abs/1704.00325 arXiv:1704.00325]* [[S. Ali Mirsoleimani]], [[Aske Plaat]], [[Jaap van den Herik]], [[Jos Vermaseren]] ('''2017'''). ''An Analysis of Virtual Loss in Parallel MCTS''. [https://dblp.uni-trier.de/db/conf/icaart/icaart2017-2.html ICAART 2017], Vol. 2, [http://liacs.leidenuniv.nl/~plaata1/papers/paper_ICAART17.pdf pdf]'''2018'''* [[S. Ali Mirsoleimani]], [[Jaap van den Herik]], [[Aske Plaat]], [[Jos Vermaseren]] ('''2018'''). ''Pipeline Pattern for Parallel MCTS''. [https://dblp.uni-trier.de/db/conf/icaart/icaart2018-2.html ICAART 2018], [http://liacs.leidenuniv.nl/~plaata1/papers/paper_ICAART18_pos.pdf pdf]* [[S. Ali Mirsoleimani]], [[Jaap van den Herik]], [[Aske Plaat]], [[Jos Vermaseren]] ('''2018'''). ''A Lock-free Algorithm for Parallel MCTS''. [https://dblp.uni-trier.de/db/conf/icaart/icaart2018-2.html ICAART 2018], [http://liacs.leidenuniv.nl/~plaata1/papers/paper_ICAART18.pdf pdf]
=Forum Posts=
* [http://www.talkchess.com/forum/viewtopic.php?t=58946 Parallel Search to Fixed Depth] by [[Brian Richardson]], [[CCC]], January 17, 2016
* [http://www.talkchess.com/forum/viewtopic.php?t=58950 Threads test incl. Komodo 9.3] by [[Andreas Strangmüller]], [[CCC]], January 17, 2016 » [[Komodo]]
* [http://www.talkchess.com/forum/viewtopic.php?t=59389 Lazy SMP - how it works] by [[Kalyankumar Ramaseshan]], [[CCC]], February 29, 2016 » [[Lazy SMP]]
* [http://talkchess.com/forum/viewtopic.php?t=59745 Crafty SMP measurement] by [[Robert Hyatt]], [[CCC]], April 04, 2016 » [[Crafty]]
* [http://www.talkchess.com/forum/viewtopic.php?t=60271 parallel search speed measurement] by [[Robert Hyatt]], [[CCC]], May 24, 2016
* [http://www.talkchess.com/forum/viewtopic.php?t=66044 Parallel search/LazySMP question] by [[Jon Dart]], [[CCC]], December 17, 2017 » [[Lazy SMP]]
* [http://www.talkchess.com/forum/viewtopic.php?t=66099 Time Managment translating to SMP] by [[Andrew Grant]], [[CCC]], December 23, 2017 » [[Time Management]]
'''2018'''
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=68154 Lazy SMP and 44 cores] by [[Sander Maassen vd Brink]], [[CCC]], August 07, 2018 » [[Lazy SMP]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=68278 Lazy SMP ideas] by [[Edsel Apostol]], [[CCC]], August 22, 2018
'''2019'''
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=69481 Simplest way to implement quick and dirty lazy smp] by [[Tom King]], [[CCC]], January 04, 2019
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=71115 OpenMP for chess programming] by BeyondCritics, [[CCC]], June 27, 2019
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=71739 Multithreaded noob question] by [[Michael Sherwin]], [[CCC]], September 06, 2019
=External Links=

Navigation menu