by H.G.Muller » 26 Dec 2008, 09:28
I have no experience with SMP at all. Would it, in your opinion, be better to relax the standards for the cores command, and arrange it such that it will only be sent, e.g., at the beginning of the game? I proposed the current definition, because from the user point of view it seems that nr of CPUs is similar to pondering (which can be sent at any time). And from the engine point of view, it seemed to me that it would not in principle be hard to simply shut off a number of threads semi-instantaneously, in most search algorithms.
I could relax the definition such that in reaction to a cores command the engine should make an effort to comply with the requested nr of cores at the eirliest convenient time, leaving it open if this means the next time a thread became idle during the current search, after completion of the current irteration, after completion of the current search, or at the beginning of the next game.
I think it is better that even in the current state it is better if Toga would send cores=1; in principle the features command for GUI options only affects if it is safe for the GUI to send the command. It does not suppress the appearence of the command in any menu, as it is in the GUI menu specifying system limitations, and will have to remain present there for the benifit of the opponent engine, or indeed any later engines. (The setting is remembered in the winboard.ini file in WinBoard.) So it makes little difference if the engine does not comply because it does not react properly to the command, or if it doesn't comply because WinBoard refrains from sending the command. Except that in the latter case, it is guaranteed to never comply, which seems inferior to having iot comply when it can...