PV split algorithm
Posted: Mon Apr 27, 2015 1:22 pm
Hi
I have written a small chess engine called Alcatraz in Delphi. Recently I have used the pv split algorithm to optimize it for a duo core computer. The parallel searh performs about 40% worse than the serial search and I obviously don't get the 1.8x improvement reported in the literature. I understand the logic behind the pv split algorithm and my program doesn't crash. The way I understand the pv split algorithm is: you search the leftmost branches of the game tree to the horizon depth until you get the principal variation, with one processor, and from thereon the rest of the game tree is searched in parallel with 2 processors. Is it true that you have to create a new thread for most of the nodes of the game tree? My question is: With so many threads running, is the problem not with Windows that it can't deal effectively with the threads and is there not some trick that you can implement to help Windows deal more effectively with all the threads? I am using Windows Vista.
Jacobus Opperman
I have written a small chess engine called Alcatraz in Delphi. Recently I have used the pv split algorithm to optimize it for a duo core computer. The parallel searh performs about 40% worse than the serial search and I obviously don't get the 1.8x improvement reported in the literature. I understand the logic behind the pv split algorithm and my program doesn't crash. The way I understand the pv split algorithm is: you search the leftmost branches of the game tree to the horizon depth until you get the principal variation, with one processor, and from thereon the rest of the game tree is searched in parallel with 2 processors. Is it true that you have to create a new thread for most of the nodes of the game tree? My question is: With so many threads running, is the problem not with Windows that it can't deal effectively with the threads and is there not some trick that you can implement to help Windows deal more effectively with all the threads? I am using Windows Vista.
Jacobus Opperman