Daydreamer 1.7

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

Aaron Becker
Posts: 292
Joined: Tue Jul 07, 2009 4:56 am

Re: Daydreamer 1.7

Post by Aaron Becker »

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.
User avatar
Werner
Posts: 2871
Joined: Wed Mar 08, 2006 10:09 pm
Location: Germany
Full name: Werner Schüle

Re: Daydreamer 1.7

Post by Werner »

...and don´t forget:
this 1.7.5 candidate used the 2nd CPU of my dual when loaded.
Werner
Aaron Becker
Posts: 292
Joined: Tue Jul 07, 2009 4:56 am

Re: Daydreamer 1.7

Post by Aaron Becker »

Werner wrote:...and don´t forget:
this 1.7.5 candidate used the 2nd CPU of my dual when loaded.
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.

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.
User avatar
Werner
Posts: 2871
Joined: Wed Mar 08, 2006 10:09 pm
Location: Germany
Full name: Werner Schüle

Re: Daydreamer 1.7

Post by Werner »

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).
Werner
Aaron Becker
Posts: 292
Joined: Tue Jul 07, 2009 4:56 am

Re: Daydreamer 1.7

Post by Aaron Becker »

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).
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.
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Daydreamer 1.7

Post by michiguel »

Aaron Becker wrote:
Werner wrote:...and don´t forget:
this 1.7.5 candidate used the 2nd CPU of my dual when loaded.
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.

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.
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.

Miguel
User avatar
Werner
Posts: 2871
Joined: Wed Mar 08, 2006 10:09 pm
Location: Germany
Full name: Werner Schüle

Re: Daydreamer 1.7

Post by Werner »

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.
Hm,
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 :wink:
Werner
Aaron Becker
Posts: 292
Joined: Tue Jul 07, 2009 4:56 am

Re: Daydreamer 1.7

Post by Aaron Becker »

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.
Dann Corbit
Posts: 12537
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Daydreamer 1.7

Post by Dann Corbit »

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.
Can you coax git into providing a tarball?

I have a git client installed on my machine, but I'll be darned if I can pull source from your git repository.
Aaron Becker
Posts: 292
Joined: Tue Jul 07, 2009 4:56 am

Re: Daydreamer 1.7

Post by Aaron Becker »

Dann Corbit wrote:
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.
Can you coax git into providing a tarball?

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.