Schooner Version 2.2 Release

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

Moderators: hgm, Rebel, chrisw

Alayan
Posts: 550
Joined: Tue Nov 19, 2019 8:48 pm
Full name: Alayan Feh

Re: Schooner Version 2.2 Release

Post by Alayan »

I'd be happy to see how the latest Schooner does in tournaments. I remember it had poor SMP scaling one year ago, has this been improved on ? I hope someone will volunteer to be the contact with these tournaments. I can't do it as I'm already doing so for Stockfish, but from this experience I can tell it's usually not too demanding.
D Sceviour
Posts: 570
Joined: Mon Jul 20, 2015 5:06 pm

Re: Schooner Version 2.2 Release

Post by D Sceviour »

Alayan wrote: Thu Dec 26, 2019 7:54 pm I'd be happy to see how the latest Schooner does in tournaments. I remember it had poor SMP scaling one year ago, has this been improved on ?
What do you mean by poor SMP scaling? Could you be more specific? The threading was crashing sometimes during multiple instances of concurrent games on CuteChess. A change was made to the polling thread to fix this. Maybe that was the problem you experienced.
Alayan
Posts: 550
Joined: Tue Nov 19, 2019 8:48 pm
Full name: Alayan Feh

Re: Schooner Version 2.2 Release

Post by Alayan »

By poor SMP scaling, I mean that the elo gains from additional cores/threads were significantly lower for Schooner than for most engines. Not really a worry at 2C or 4C where the gains are still good, but significant on tournament hardware with dozens of cores.
D Sceviour
Posts: 570
Joined: Mon Jul 20, 2015 5:06 pm

Re: Schooner Version 2.2 Release

Post by D Sceviour »

Alayan wrote: Thu Dec 26, 2019 8:25 pm By poor SMP scaling, I mean that the elo gains from additional cores/threads were significantly lower for Schooner than for most engines. Not really a worry at 2C or 4C where the gains are still good, but significant on tournament hardware with dozens of cores.
I do not have dozens of cores to test with unfortunately. Schooner uses Shared Hash Table threading, and there is a noticeable collision on the main bus transfer with increasing number of cores. Threading is theoretically available up to 128 cores, but eight is probably the maximum thread usefulness. On the other hand, Shared Hash Table threading is easy to implement and debug. Prefetch() is used in the SSE version which might help a little.
Alayan
Posts: 550
Joined: Tue Nov 19, 2019 8:48 pm
Full name: Alayan Feh

Re: Schooner Version 2.2 Release

Post by Alayan »

Most engines nowadays use "LazySMP" based approaches, which derive from the shared hash table concept, and actually scale quite well elo-wise with many threads (best approach known for 16+, and good for 8 or less). Open source code to study is available from Stockfish, Ethereal, and many others, and if you made a more detailed post about your current approach and issues in the technical discussion subforum, I'm sure you'd find other authors willing to give advice.
D Sceviour
Posts: 570
Joined: Mon Jul 20, 2015 5:06 pm

Re: Schooner Version 2.2 Release

Post by D Sceviour »

Alayan wrote: Wed Jan 01, 2020 4:48 pm Most engines nowadays use "LazySMP" based approaches, which derive from the shared hash table concept, and actually scale quite well elo-wise with many threads (best approach known for 16+, and good for 8 or less). Open source code to study is available from Stockfish, Ethereal, and many others, and if you made a more detailed post about your current approach and issues in the technical discussion subforum, I'm sure you'd find other authors willing to give advice.
Not everybody's advice seems to work well for me. For example, Bob Hyatt recommended assigning CPU affinity to each thread. I tried again using SetProcessAffinityMask() just today, but the results were disastrous. I suspect Windows thread handlers for my i9 expect something different. The DWORD indicates the possibility of a maximum 32 or 64 threads for affinity. This is the windows code segment:

Code: Select all

#if !defined(LINUX)
 #include <windows.h>
#else
 #include <sched.h>
#endif

HANDLE process;
DWORD_PTR processAffinityMask;
BOOL success;

  process = GetCurrentProcess();
  processAffinityMask = 1 << sd->ID;

  success = SetProcessAffinityMask(process, processAffinityMask);

  printf("ID %d affinity success %d\n",sd->ID,(int) success);
My first attempt at threading years ago was using Younger-Brothers-Wait as this is a natural way to believe there would be a threading improvement, but this was abandoned in favor of a superior and simpler Shared Hash Table.

I tried using Andrew Grants staggered depth for threads method (some people might call this lazy SMP) but found no strength increase. Andrew used to discuss chess a lot in TLCV chat window, but apparently now has difficulty logging on.

You can find a lot of discussion about threading posted by me in various places, for example:

http://talkchess.com/forum3/viewtopic.p ... ad#p780051

This one on aspiration was eventually a failure.
Jamal Bubker
Posts: 326
Joined: Mon May 24, 2010 4:32 pm

Re: Schooner Version 2.2 Release

Post by Jamal Bubker »

Thank you very much Dennis !!
D Sceviour
Posts: 570
Joined: Mon Jul 20, 2015 5:06 pm

Re: Schooner Version 2.2 Release

Post by D Sceviour »

Schooner2.2 is temporarily unavailable for download. Surprisingly, I am e-bombed with requests for access, even after all this time.

The problem is that Google Sites is changing to a new format and requires a transfer of material from the old site to the new site. During the transfer it wiped out all of my available uploads. At the moment there seems to be no way of restoring this. Google sites claims it can redirect uploads now from another account - Google Drive. But I cannot get Google Drive links to be open and viewable to the public yet. Nor can I get Google Drive to transfer links to Google Sites.

If anyone has a link for Schooner2.2.zip they should post it here.
Madeleine Birchfield
Posts: 512
Joined: Tue Sep 29, 2020 4:29 pm
Location: Dublin, Ireland
Full name: Madeleine Birchfield

Re: Schooner Version 2.2 Release

Post by Madeleine Birchfield »

Do you intend on implementing NNUE in Schooner?
D Sceviour
Posts: 570
Joined: Mon Jul 20, 2015 5:06 pm

Re: Schooner Version 2.2 Release

Post by D Sceviour »

Madeleine Birchfield wrote: Fri Oct 16, 2020 7:08 pm Do you intend on implementing NNUE in Schooner?
I am looking at this now. The answer will probably be no.