Author: Robert Hyatt
Date: 11:28:27 02/02/04
Go up one level in this thread
On February 02, 2004 at 13:55:55, Tord Romstad wrote: >On February 02, 2004 at 13:50:36, Robert Hyatt wrote: > >>waiting a little longer finds >> >> 17 7:43 1.95 1. Nd4 Qc5 2. R1e6 Rb7 3. Rxb7 Nxb7 >> 4. Rc6 Qe7 5. Rc7 Qd6 6. Nc6 Qxf4 7. >> gxf4 Kh8 8. Ne7 Nd6 9. Rc6 Rd8 10. >> Rxd6 Rxd6 11. Nxc8 (s=4) > >Very fast. Is this on the quad Opteron, or a slower machine? What does >the "(s=4)" at the end of the PV mean? > >Tord Sorry, I had meant to mention that. Yes, it was the quad opteron. s=4 is part of my "split at the root" algorithm. Crafty noticed that four moves (s=4) had an unusually close node count after the 16 ply search finished (it actually said s=5 there). This says that it is possible that one of these moves is going to replace the current best on the next ply, since usually the real best move has a far higher node count due to alpha/beta. If you choose to split at the root (ie search each move at ply=1 on a separate processor, which is _the_ most efficient way to do a parallel search) then you run into a problem when you get one cpu to searching a move that is going to become the new best, because that one cpu might take a long time to get the result, where it would get it 3-4 times faster if all cpus worked together. So, when you see s=N after an iteration, that says that on the next iteration, the first N moves are searched one at a time, using all available processors, in the expectation that one of them will replace the first move as best, and this will discover that quicker. After the first N are searched one at a time using all threads, the rest are searched in parallel one thread per move, as that is more efficient when you don't expect to change the best move. Hope that helps. I'm going to write all of this up and publish it before long, although I am not sure there is any interest in determining how such a bad parallel search works internally. :) BTW, after each root move is searched, if it produces any output, I simply append the s=N to that move, although N steadily decreases and simply says "I have N more moves to search one at a time before turning the SMP search loose at the root. The N=4 above is one less than the s=5 displayed at the end of the previous search (which I apparently snipped to save space).. Here's a better example: 9-> 0.92 -1.44 10. ... O-O 11. h3 Qd7 12. Bc4 e4 13. Ng5 Ne5 14. Bb5 Qf5 (s=6) 10 1.18 -1.20 10. ... O-O 11. h3 Qe6 12. Bd3 h6 13. Nd2 Re8 14. Rhf1 Nd5 15. Bc4 (s=5) 10 2.41 -1.26 10. ... e4 11. Nb5 exf3 12. Rxd6 cxd6 13. Nc7+ Kd8 14. Nxa8 fxg2 15. Bxg2 Ne4 16. Qf1 Rf8 (s=4) Notice after 9, s=6. After searching the first move, s=5. The next move is also searched with all threads and it replaces the original best, as expected. Note s=4 as there are still four _more_ moves that might become new best moves, although in this case it did not happen... Bob
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.