APHID, (Asynchronous Parallel Hierarchical Iterative Deepening)
an asynchronous parallel alpha-beta based search algorithm developed and elaborated by Mark Brockington as topic of his Ph.D. thesis at the Department of Computing Science, University of Alberta[1], along with his thesis advisor Jonathan Schaeffer. APHID uses repeated depth-limited searches of the top of the search tree to instantiate, update and load balance work lists for other processors. APHID can be seen as a master/slave model, but can be generalized to a hierarchical processor tree.
APHID has been programmed as an easy-to-implement, game-independent library [2], and was implemented into the chess program The Turk with less than one day of programming effort [3]. It was further tested in Crafty in chess, in Chinook in the domain of Checkers, and in Brockington's Othello program Keyano[4]. APHID yields reasonable performance on a network of workstations, an architecture where it is extremely difficult to use a shared transposition table effectively. More recently, APHID was used within the ChessBrain project of over 2000 internet connected machines running Beowulf[5].
The master is responsible for searching the top d' plies of the d-ply tree inside its iterative deepening frame. When the master reaches a leaf of the d'-ply tree, it uses either a (d-d')-ply search result already available from the slave, or the "best available" i.e. using guessed scores from shallower previous searches marked as uncertain. As values get backed up the tree, the master maintains a count of how many uncertain nodes have been visited in a pass of the tree, and has to repeat the root search until all contributing leaves have reliable, certain results. By using the guessed score and expected node types, the master decides which child-nodes are searched sequentially or in parallel.
The slave process essentially executes the same code that a sequential alpha-beta searcher would. It looks in the local copy of the so called APHID table, initially allocated and supplied by the master, to find the highest priority node to search. After finishing the search, it reports the result back to the master, getting an update to its APHID table entry in return.
an asynchronous parallel alpha-beta based search algorithm developed and elaborated by Mark Brockington as topic of his Ph.D. thesis at the Department of Computing Science, University of Alberta [1], along with his thesis advisor Jonathan Schaeffer. APHID uses repeated depth-limited searches of the top of the search tree to instantiate, update and load balance work lists for other processors. APHID can be seen as a master/slave model, but can be generalized to a hierarchical processor tree.
APHID has been programmed as an easy-to-implement, game-independent library [2], and was implemented into the chess program The Turk with less than one day of programming effort [3]. It was further tested in Crafty in chess, in Chinook in the domain of Checkers, and in Brockington's Othello program Keyano [4]. APHID yields reasonable performance on a network of workstations, an architecture where it is extremely difficult to use a shared transposition table effectively. More recently, APHID was used within the ChessBrain project of over 2000 internet connected machines running Beowulf [5].
Table of Contents
How it works
The master is responsible for searching the top d' plies of the d-ply tree inside its iterative deepening frame. When the master reaches a leaf of the d'-ply tree, it uses either a (d-d')-ply search result already available from the slave, or the "best available" i.e. using guessed scores from shallower previous searches marked as uncertain. As values get backed up the tree, the master maintains a count of how many uncertain nodes have been visited in a pass of the tree, and has to repeat the root search until all contributing leaves have reliable, certain results. By using the guessed score and expected node types, the master decides which child-nodes are searched sequentially or in parallel.The slave process essentially executes the same code that a sequential alpha-beta searcher would. It looks in the local copy of the so called APHID table, initially allocated and supplied by the master, to find the highest priority node to search. After finishing the search, it reports the result back to the master, getting an update to its APHID table entry in return.
See also
Publications
Forum Posts
APHID , advances in ICCA #8 by Vincent Diepeveen, CCC, September 18, 2001
Re: asynchronous search by Daniel Shawul, CCC, April 07, 2010
Re: asynchronous search by Dann Corbit, CCC, April 08, 2010
Re: scorpio can run on 8192 cores by Daniel Shawul, CCC, August 30, 2015
External Links
Game Tree Search
Misc
References
What links here?
Up one level