Ok, I think I have this ctg problem figured out. A move can be both recommended (normally this means it's marked green), and given an annotation with a '?' (including ?! and !?). In these cases the move will be marked blue, but Daydreamer will still treat these moves as if they were green. I think that if I change it so that it treats these moves as non-recommended, we'll get the behavior we want.
I think I also figured out the gtb problem you identified, Werner. I'll code up these fixes and release a new candidate version as soon as I get the time.
edit: I should also add that I've removed the dependency on pthreads, so these 1.75 releases should not require the pthreads dll to be present.
Daydreamer 1.7
Moderators: hgm, Rebel, chrisw
-
- Posts: 2872
- Joined: Wed Mar 08, 2006 10:09 pm
- Location: Germany
- Full name: Werner Schüle
Re: Daydreamer 1.7
...and don´t forget:
this 1.7.5 candidate used the 2nd CPU of my dual when loaded.
this 1.7.5 candidate used the 2nd CPU of my dual when loaded.
Werner
-
- Posts: 292
- Joined: Tue Jul 07, 2009 4:56 am
Re: Daydreamer 1.7
This happens because Daydreamer loads tablebase information in a separate thread in an attempt to minimize the performance losses associated with waiting for information on disk. When gtbs are off, only one CPU should ever be used.Werner wrote:...and don´t forget:
this 1.7.5 candidate used the 2nd CPU of my dual when loaded.
In 1.75, Daydreamer will always use a separate CPU to do its gtb fetching, meaning that if you want to constrain it to use only one CPU you have to turn off gtbs. However, the performance benefits of gtbs are much smaller if I turn this feature off. There may be no benefit at all to using them if you're constrained to use only one CPU.
So, my question is: what do users want? Is it important to support gtbs without using a separate thread? For my own use this feature is pointless, but if it's important to users then I'll go ahead and implement it.
-
- Posts: 2872
- Joined: Wed Mar 08, 2006 10:09 pm
- Location: Germany
- Full name: Werner Schüle
Re: Daydreamer 1.7
Hi Aaron,
I normally test an engine with endgame databases if the engine can use it.
But if an engine uses a separate CPU for that I will not test it with the endgame databases.
I am not sure what other testers think about that. At the moment the engine is tested for CEGT default from another tester (without gtb or egbbs). So if I want to add some games I have to do the same or we will have 2 versions in the list (with and without endgame databases).
I normally test an engine with endgame databases if the engine can use it.
But if an engine uses a separate CPU for that I will not test it with the endgame databases.
I am not sure what other testers think about that. At the moment the engine is tested for CEGT default from another tester (without gtb or egbbs). So if I want to add some games I have to do the same or we will have 2 versions in the list (with and without endgame databases).
Werner
-
- Posts: 292
- Joined: Tue Jul 07, 2009 4:56 am
Re: Daydreamer 1.7
If it's a valuable feature for you I'm happy to add it. It won't take much work, and I always want to encourage people to test Daydreamer and not make life difficult for testers.Werner wrote:Hi Aaron,
I normally test an engine with endgame databases if the engine can use it.
But if an engine uses a separate CPU for that I will not test it with the endgame databases.
I am not sure what other testers think about that. At the moment the engine is tested for CEGT default from another tester (without gtb or egbbs). So if I want to add some games I have to do the same or we will have 2 versions in the list (with and without endgame databases).
-
- Posts: 6401
- Joined: Thu Mar 09, 2006 8:30 pm
- Location: Chicago, Illinois, USA
Re: Daydreamer 1.7
That reminds me why I put this type of approach as second priority when I was developing GTBs and thinking about the possibilities. It creates a problem for testing. OTOH, it truly deserves experimentation because after all, either for true competition or analysis, an extra "thread" won't interfere. Note that I said "thread" and not CPU because it does not necessarily mean an extra CPU all the time. Most of the time the thread should be blocked reading from HD.Aaron Becker wrote:This happens because Daydreamer loads tablebase information in a separate thread in an attempt to minimize the performance losses associated with waiting for information on disk. When gtbs are off, only one CPU should ever be used.Werner wrote:...and don´t forget:
this 1.7.5 candidate used the 2nd CPU of my dual when loaded.
In 1.75, Daydreamer will always use a separate CPU to do its gtb fetching, meaning that if you want to constrain it to use only one CPU you have to turn off gtbs. However, the performance benefits of gtbs are much smaller if I turn this feature off. There may be no benefit at all to using them if you're constrained to use only one CPU.
So, my question is: what do users want? Is it important to support gtbs without using a separate thread? For my own use this feature is pointless, but if it's important to users then I'll go ahead and implement it.
Miguel
-
- Posts: 2872
- Joined: Wed Mar 08, 2006 10:09 pm
- Location: Germany
- Full name: Werner Schüle
Re: Daydreamer 1.7
Hm,Aaron Becker wrote: If it's a valuable feature for you I'm happy to add it. It won't take much work, and I always want to encourage people to test Daydreamer and not make life difficult for testers.
to make my thinking clear: If I test with 1CPU always only 1CPU is running on the pc. When I am running 2 matches on my dual e.g. I usually use task manager to use CPU 0 for match1 and CPU 1 for match2.
So there is not much room for another thread
Werner
-
- Posts: 292
- Joined: Tue Jul 07, 2009 4:56 am
Re: Daydreamer 1.7
A new release candidate is now available here. It includes new ctg code that I hope will fix the problems Carlos has reported, and new gtb code that fixes the endgame problem that Werner reported. It's now possible to force all gtb work to happen in the main search thread, limiting all work to one CPU, by setting the "Load tablebases in a separate thread" option to false.
So far, I've had very bad results testing my gtb implementation on Windows, but I'm not sure if this is due to bad implementation on my part, the relatively low number of games I've been able to try on Windows, or the bad performance characteristics of the virtual machine I'm using.
So far, I've had very bad results testing my gtb implementation on Windows, but I'm not sure if this is due to bad implementation on my part, the relatively low number of games I've been able to try on Windows, or the bad performance characteristics of the virtual machine I'm using.
-
- Posts: 12541
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: Daydreamer 1.7
Can you coax git into providing a tarball?Aaron Becker wrote:A new release candidate is now available here. It includes new ctg code that I hope will fix the problems Carlos has reported, and new gtb code that fixes the endgame problem that Werner reported. It's now possible to force all gtb work to happen in the main search thread, limiting all work to one CPU, by setting the "Load tablebases in a separate thread" option to false.
So far, I've had very bad results testing my gtb implementation on Windows, but I'm not sure if this is due to bad implementation on my part, the relatively low number of games I've been able to try on Windows, or the bad performance characteristics of the virtual machine I'm using.
I have a git client installed on my machine, but I'll be darned if I can pull source from your git repository.
-
- Posts: 292
- Joined: Tue Jul 07, 2009 4:56 am
Re: Daydreamer 1.7
Dann Corbit wrote:Can you coax git into providing a tarball?Aaron Becker wrote:A new release candidate is now available here. It includes new ctg code that I hope will fix the problems Carlos has reported, and new gtb code that fixes the endgame problem that Werner reported. It's now possible to force all gtb work to happen in the main search thread, limiting all work to one CPU, by setting the "Load tablebases in a separate thread" option to false.
So far, I've had very bad results testing my gtb implementation on Windows, but I'm not sure if this is due to bad implementation on my part, the relatively low number of games I've been able to try on Windows, or the bad performance characteristics of the virtual machine I'm using.
I have a git client installed on my machine, but I'll be darned if I can pull source from your git repository.
Happy to, you can download it here. Pulling from my repository wouldn't have helped you anyway, because I hadn't pushed my changes out to github until just now. Out of curiosity, what happens when you do
"git clone http://github.com/AaronBecker/daydreamer.git"? I'd like to make it as easy as possible to get a copy of the source, so if there's a problem pulling source I want to fix it.