Changes

Jump to: navigation, search

Young Brothers Wait Concept

12,448 bytes added, 10:13, 12 May 2018
Created page with "'''Home * Search * Parallel Search * Young Brothers Wait Concept''' FILE:Marx Brothers 1931.jpg|border|right|thumb|[https://en.wikipedia.org/wiki/Marx..."
'''[[Main Page|Home]] * [[Search]] * [[Parallel Search]] * Young Brothers Wait Concept'''

[[FILE:Marx Brothers 1931.jpg|border|right|thumb|[https://en.wikipedia.org/wiki/Marx_Brothers Marx Brothers] <ref>The Marx Brothers, head-and-shoulders portrait, facing front. Top to bottom: [https://en.wikipedia.org/wiki/Chico_Marx Chico], [https://en.wikipedia.org/wiki/Harpo_Marx Harpo], [https://en.wikipedia.org/wiki/Groucho_Marx Groucho] and [https://en.wikipedia.org/wiki/Zeppo_Marx Zeppo] in 1931, [https://en.wikipedia.org/wiki/Marx_Brothers Marx Brothers from Wikipedia]</ref> ]]

'''Young Brothers Wait Concept''', (YBWC)<br/>
a basic concept for a parallel [[Alpha-Beta|alpha-beta search]] coined by [[Rainer Feldmann]] et al. in 1986 <ref>[[Rainer Feldmann]], [[Peter Mysliwietz]], [[Oliver Vornberger]] ('''1986'''). ''A Local Area Network Used as a Parallel Architecture''. Technical Report 31, [[University of Paderborn]]</ref>, introduced 1989 to a wider audience in the [[ICGA Journal|ICCA Journal]] paper ''Distributed Game-Tree Search'' <ref>[[Rainer Feldmann]], [[Burkhard Monien]], [[Peter Mysliwietz]], [[Oliver Vornberger]] ('''1989'''). ''Distributed Game-Tree Search''. [[ICGA Journal#12_2|ICCA Journal, Vol. 12, No. 2]], pp. 65-73</ref>. Brothers are [[Sibling Node|sibling nodes]], the oldest brother is searched first, younger brothers, to be searched in parallel, have to wait until the oldest brother did not yield in a [[Beta-Cutoff|beta-cutoff]] and did possibly narrow the [[Bound|bounds]] in case of an alpha increase.

=Delay of Parallelism=
The Young Brothers Wait Concept, which in some situations delays the use of parallelism until subtrees are available which are relevant for the final result with high probability, prevents processors from searching irrelevant subtrees and reduces the search overhead. The use of the YBWC is possible only in combination with good [https://en.wikipedia.org/wiki/Load_balancing_%28computing%29 load balancing] possibilities <ref>[[Rainer Feldmann]], [[Burkhard Monien]], [[Peter Mysliwietz]], [[Oliver Vornberger]] ('''1989'''). ''Distributed Game-Tree Search''. [[ICGA Journal#12_2|ICCA Journal, Vol. 12, No. 2]], pp. 65-73</ref>.
The eldest son of any node must be completely evaluated before younger brothers of that node may be transmitted.

==Distributed Game-Tree Search==
In their introduction, Feldmann et al. mention approaches by several authors to decrease search overhead by various methods. The ''mandatory-work-first'' approach first evaluates that part of the game tree that must be searched and then evaluates the rest only if necessary <ref>[[Selim Akl]], [http://umanitoba.ca/admin/president/bio.html David T. Barnard], [http://research.cs.queensu.ca/TechReports/authorsD.html#Doran,%20R.J. R.J. Doran] ('''1980'''). ''Simulation and Analysis in Deriving Time and Storage Requirements for a Parallel Alpha-Beta Pruning Algorithm''. IEEE International Conference on Parallel Processing, pp. 231-234</ref>. The [[Parallel Search#PrincipalVariationSplitting|Principal Variation Splitting (PVS)]] algorithm <ref>[[Tony Marsland]], [[Fred Popowich]] ('''1985'''). ''Parallel Game-Tree Search.'' [[IEEE]] Transactions on Pattern Analysis and Machine Intelligence, Vol. PAMI-7, No. 4, pp. 442-452. as 1984 [http://www.cs.ualberta.ca/%7Etony/OldPapers/pami85.pdf pdf] (Draft)</ref> evaluates right sons of game-tree nodes with a [[Null Window|minimal window]] and re-evaluates them only if necessary.

Alternatively, game-tree nodes are evaluated in parallel only if they had acquired an [[Bound|alpha-beta bound]] before <ref>[https://en.wikipedia.org/wiki/Chris_Ferguson Chris Ferguson], [[Richard Korf]] ('''1988'''). ''Distributed Tree Search and its Application to Alpha-Beta Pruning.'' Proceedings of AAAI-88, Vol. I, pp. 128-132. Saint Paul, MN, [http://www.aaai.org/Papers/AAAI/1988/AAAI88-023.pdf pdf]</ref>. Yet another approach applies in a distributed chess program running on a [https://en.wikipedia.org/wiki/Hypercube hypercube] <ref>[[Ed Felten]], [[Steve Otto]] ('''1988'''). ''[http://portal.acm.org/citation.cfm?id=63088 Chess on a Hypercube]''. The Third Conference on Hypercube Concurrent Computers and Applications, Vol. II-Applications (ed. [http://portal.acm.org/author_page.cfm?id=81100501616&coll=GUIDE&dl=GUIDE&trk=0&CFID=90098691&CFTOKEN=72738297 G. Fox]), pp. 1329-1341</ref>: if the [[Transposition Table|transposition table]] proposes some move for a game position, then this move is tried first. Parallel evaluation of the other moves is started only of the evaluation of the transposition move yields no cutoff.

==Critique==
Their 1989 ICCA paper was criticized by [[Jonathan Schaeffer]] <ref>[[Jonathan Schaeffer]] ('''1989'''). ''Comment on `Distributed Game-Tree Search'.'' [[ICGA Journal#12_4|ICCA Journal, Vol. 12, No. 4]], pp. 216-217</ref>, first on the speedup topic of about eleven on a 16-processor machine not mentioning that parallel speedup is tied to the (in)efficiency of the serial alpha-beta search, and further, on ignoring other work recently done in the field. The YBWC presented was similar to the methods used in the chess programs [[Cray Blitz]] <ref>[[Robert Hyatt]] ('''1988'''). ''A High-Performance Parallel Algorithm to Search Depth-First Game Trees''. Ph.D. Thesis, Department of Computer Science, [[University of Alabama at Birmingham]]</ref>, [[Lachex]], and [[Phoenix|Para-Phoenix]] <ref>[[Jonathan Schaeffer]] ('''1986'''). ''Improved Parallel Alpha-Beta Searching''. Proceedings ACM/IEEE Fall Joint Computer Conference, pp. 519-527.</ref> <ref>[[Jonathan Schaeffer]] ('''1989'''). ''Distributed Game-Tree Searching''. Journal of Parallel and Distributed Computing, Vol. 6, No. 2, pp. 90-114. ISSN 0743-7315</ref>. In a response, Feldmann et al. agreed that the behavior of a parallelization should be measured relative to the "best" sequential program. However, the speedup depends on many implementation details such as those about the hardware, communication mechanism, load-balancing capabilities, etc., which cannot be described in a short paper. The authors further state that chess programs were not the main research vehicle, but the algorithm, which was the reason for not quoting all the chess specific papers <ref>[[Rainer Feldmann]], [[Burkhard Monien]], [[Peter Mysliwietz]], [[Oliver Vornberger]] ('''1990'''). ''Response to a Comment on 'Distributed Game-Tree Search'''. [[ICGA Journal#13_1|ICCA Journal, Vol. 13, No. 1]], pp. 20-21</ref>.

=Quotes=
[[Robert Hyatt]] on the distinction between [[Node Types#ALL|ALL-]] and [[Node Types#CUT|CUT-nodes]] <ref>[http://www.talkchess.com/forum/viewtopic.php?topic_view=threads&p=398061&t=38317 Re: "CUT" vs "ALL" nodes] by [[Robert Hyatt]], [[CCC]], March 08, 2011</ref>:
In [[Cray Blitz|CB]], I used this extensively, because you never want to split at a CUT node, and want to prefer an ALL node. YBW tries to recognize an ALL node by requiring that at least one move be searched before splitting, since > 90% of CUT nodes are discovered on the first move searched. But waiting on that first move introduces some wait time, and if you knew it was an ALL node from the get-go, you could split before the first move is completed. That was the basic premise behind the iterated search and [[Dynamic Tree Splitting|DTS algorithm]] in Cray Blitz...

=See also=
* [[ABDADA]]
* [[APHID]]
* [[Dynamic Tree Splitting]]
* [[Jamboree]]
* [[Lazy SMP]]
* [[Node Types]]
* [[Tord Romstad#Video|Parallelism and Selectivity in Game Tree Search | Video]], Talk by [[Tord Romstad]]
* [[Zugzwang (Program)]]

=Publications=
==1986 ...==
* [[Rainer Feldmann]], [[Peter Mysliwietz]], [[Oliver Vornberger]] ('''1986'''). ''A Local Area Network Used as a Parallel Architecture''. Technical Report 31, [[University of Paderborn]]
* [[Rainer Feldmann]], [[Burkhard Monien]], [[Peter Mysliwietz]], [[Oliver Vornberger]] ('''1989'''). ''Distributed Game-Tree Search''. [[ICGA Journal#12_2|ICCA Journal, Vol. 12, No. 2]]
* [[Jonathan Schaeffer]] ('''1989'''). ''Comment on 'Distributed Game-Tree Search'''. [[ICGA Journal#12_4|ICCA Journal, Vol. 12, No. 4]]
==1990 ...==
* [[Rainer Feldmann]], [[Burkhard Monien]], [[Peter Mysliwietz]], [[Oliver Vornberger]] ('''1990'''). ''Response to a Comment on 'Distributed Game-Tree Search'''. [[ICGA Journal#13_1|ICCA Journal, Vol. 13, No. 1]]
* [[Jonathan Schaeffer]] ('''1990'''). ''A Rejoinder to the Response to a Comment on 'Distributed Game-Tree Search'''. [[ICGA Journal#13_1|ICCA Journal, Vol. 13, No. 1]]
* [[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]
* [[Rainer Feldmann]], [[Peter Mysliwietz]], [[Burkhard Monien]] ('''1992'''). ''Experiments with a Fully Distributed Chess Program''. [[3rd Computer Olympiad#Workshop|Heuristic Programming in AI 3]]
* [[Rainer Feldmann]], [[Peter Mysliwietz]], [[Burkhard Monien]] ('''1992'''). ''Distributed Game Tree Search on a Massively Parallel System''. Data Structures and Efficient Algorithms, B. Monien, Th. Ottmann (eds.), Springer, Lecture Notes in Computer Science, 594, 1992, 270-288
* [[Rainer Feldmann]] ('''1993'''). ''Game Tree Search on Massively Parallel Systems''. Phd-Thesis, [http://www2.cs.uni-paderborn.de/fachbereich/AG/monien/PUBLICATIONS/POSTSCRIPTS/feldmann_phd.pdf pdf]
* [[Rainer Feldmann]], [[Peter Mysliwietz]], [[Burkhard Monien]] ('''1994'''). ''Game-Tree Search on a Massively Parallel System''. [[Advances in Computer Chess 7]]
* [[Mark Brockington]] ('''1994'''). ''An Implementation of the Young Brothers Wait Concept''. Internal report, [[University of Alberta]]
==2010 ...==
* [[Kai Himstedt]] ('''2012'''). ''GridChess: Combining Optimistic Pondering with the Young Brothers Wait Concept''. [[ICGA Journal#35_2|ICGA Journal, Vol. 35, No. 2]] » [[GridChess]], [[Pondering]]

=Forum Posts=
==2009==
* [http://www.talkchess.com/forum/viewtopic.php?t=31366 YBWC details] by [[Nathan Thom]], [[CCC]], December 31, 2009
==2010 ...==
* [http://www.talkchess.com/forum/viewtopic.php?t=34633 DTS-ification of YBWC] by [[Marco Costalba]], [[CCC]], June 01, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=43243 YBWC: Active Reparenting] by [[Marco Costalba]], [[CCC]], April 10, 2012
==2015 ...==
* [http://www.talkchess.com/forum/viewtopic.php?t=55779 SMP questions] by [[Patrice Duhamel]], [[CCC]], March 25, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=56937 Actual speedups from YBWC and ABDADA on 8+ core machines?] by [[Tom Kerrigan]], [[CCC]], July 10, 2015 » [[ABDADA]]
* [http://www.talkchess.com/forum/viewtopic.php?t=58031 Lazy SMP Better than YBWC?] by [[Steve Maughan]], [[CCC]], October 23, 2015 » [[Lazy SMP]]
* [http://www.talkchess.com/forum/viewtopic.php?t=60875 NUMA in a YBWC implementation] by [[Edsel Apostol]], [[CCC]], July 20, 2016 » [[NUMA]]
* [http://www.talkchess.com/forum/viewtopic.php?t=61408 Some hyperthreading results] by [[Kai Laskos]], [[CCC]], September 12, 2016 » [[Lazy SMP]], [[Thread]]
* [http://www.talkchess.com/forum/viewtopic.php?t=64993 YBWC implementation questions] by [[Patrice Duhamel]], [[CCC]], August 26, 2017
* [http://www.talkchess.com/forum/viewtopic.php?t=67186 More questions about threads] by [[Patrice Duhamel]], [[CCC]], April 21, 2018 » [[Thread]]

=External Links=
* [http://www2.cs.uni-paderborn.de/cs/ag-monien/PERSONAL/FLULO/gametree.html AG-Monien - Research - Game Trees] » [[Burkhard Monien]]
* [https://en.wikipedia.org/wiki/Younger_Brother_%28disambiguation%29 Younger Brother (disambiguation) from Wikipedia]
* [https://en.wikipedia.org/wiki/Big_Brother Big Brother (disambiguation) from Wikipedia]
* [[Videos#JanGarbarek|Jan Garbarek Group]] - [http://no.wikipedia.org/wiki/Storebror_og_Lillebror Storebror og Lillebror] / Conversation, [https://en.wikipedia.org/wiki/Bergen_International_Festival Festspillene] in [https://en.wikipedia.org/wiki/Bergen Bergen], Norway, May 25, 2002, [https://en.wikipedia.org/wiki/YouTube YouTube] Video
: Jan Garbarek, [https://en.wikipedia.org/wiki/Rainer_Br%C3%BCninghaus Rainer Brüninghaus], [[Videos#EberhardWeber|Eberhard Weber]], [[Videos#MarilynMazur|Marilyn Mazur]]
: {{#evu:https://www.youtube.com/watch?v=jShfmDofYQ0|alignment=left|valignment=top}}

=References=
<references />

'''[[Parallel Search|Up one level]]'''

Navigation menu