DTS-Algorithm Split Block
Posted: Tue May 19, 2015 11:00 am
Hi all.
I am currently trying to implement the Dynamic Tree Splitting (DTS) Algorithm to optimize my chess engine for multiple core processors. What is the data structure of the SPLIT BLOCK? I understand the SPLIT BLOCK must contain move lists, alpha and beta values etc. for each node up to the current ply. I have thought about one huge global multidimentional array but I don't think that will be practical because it will be to big. The problem is that the movelist to a specific node is local to that specific iteration of the alpha beta algorithm and I can't access it form outside that specific alpha beta function. I have also thought about passing the move lists on from all previous iterations that the alpha beta function has visited - I will then have all the move lists from all nodes that the alpha beta function has visited from the root node up to the current node which is only a subset of the game tree - I will then only be able to access movelists etc. of all nodes that are in the path of the search from the root node to the current node.
I am currently trying to implement the Dynamic Tree Splitting (DTS) Algorithm to optimize my chess engine for multiple core processors. What is the data structure of the SPLIT BLOCK? I understand the SPLIT BLOCK must contain move lists, alpha and beta values etc. for each node up to the current ply. I have thought about one huge global multidimentional array but I don't think that will be practical because it will be to big. The problem is that the movelist to a specific node is local to that specific iteration of the alpha beta algorithm and I can't access it form outside that specific alpha beta function. I have also thought about passing the move lists on from all previous iterations that the alpha beta function has visited - I will then have all the move lists from all nodes that the alpha beta function has visited from the root node up to the current node which is only a subset of the game tree - I will then only be able to access movelists etc. of all nodes that are in the path of the search from the root node to the current node.