Time forfeits because of too few cores?

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
Gabor Szots
Posts: 1477
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Time forfeits because of too few cores?

Post by Gabor Szots »

I have a 4-core CPU machine and usually 3 tournaments go on at the same time. I thought that was OK, I still have a free core to do other things.

But I have experienced much more time losses, even using Fischer time control, than my fellow testers. Not with all engines, some seem more sensitive than the others. And it mostly occurs under Arena.

And then this idea came to my mind. Many times I use the free core for playing some logic game which measures elapsed time while I am playing. Can it be that this time measurement corrupts the time management of some engines?

I am on Windows 10 Home Edition, my CPU is an Intel i5-4690K.
Gabor Szots
CCRL testing group
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Time forfeits because of too few cores?

Post by mvanthoor »

It could be that you're overloading the computer, but Arena could be the problem as well, with certain engines. If you have an engine in the mix that sends a lot of data to Arena, the program will stall during processing of this information for display in the GUI. Communication with the engine will stop temporarily. When it resumes, it'll discover that the engine's time has elapsed, and it'll log a forfeit.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
User avatar
Gabor Szots
Posts: 1477
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: Time forfeits because of too few cores?

Post by Gabor Szots »

Thanks Marcel. I'm trying to use the free core less and see what impact that has. Maybe the ongoing Roland Garros will make it easier.
Gabor Szots
CCRL testing group
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: Time forfeits because of too few cores?

Post by amanjpro »

On my setup, I give each core/cpu-threads an engine. That means with my 8 threads I run 3 games simultaneously, and leave two cores for me (ab)using the laptop
User avatar
phhnguyen
Posts: 1525
Joined: Wed Apr 21, 2010 4:58 am
Location: Australia
Full name: Nguyen Hong Pham

Re: Time forfeits because of too few cores?

Post by phhnguyen »

If your computer has two screens, use one for your work/game, the other screen for chess and task manager, thus you can monitor everything, from CPU, memory, disk io... Look like your computer is not too impressive, any hard thing can make the whole system and engines be lag and lost by time: run out of CPU, memory, disk space, read/write disk too much...

Note that if you use all 4 cores, whenever the system reads/writes caches your computer may lag too since it is out of computing power. You should let at least 1 thread/core for the system and use a maximum of 3 threads/cores for your games. It means if you want to play logic games, chess can use 2 cores only. If your logic games are heavy computing, it is better to turn your chess off and resume later.
https://banksiagui.com
The most features chess GUI, based on opensource Banksia - the chess tournament manager
User avatar
Gabor Szots
Posts: 1477
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: Time forfeits because of too few cores?

Post by Gabor Szots »

phhnguyen wrote: Tue Jun 01, 2021 4:53 pm Note that if you use all 4 cores, whenever the system reads/writes caches your computer may lag too since it is out of computing power. You should let at least 1 thread/core for the system and use a maximum of 3 threads/cores for your games. It means if you want to play logic games, chess can use 2 cores only. If your logic games are heavy computing, it is better to turn your chess off and resume later.
Thanks for the advice Pham.
Gabor Szots
CCRL testing group
Modern Times
Posts: 3756
Joined: Thu Jun 07, 2012 11:02 pm

Re: Time forfeits because of too few cores?

Post by Modern Times »

You'd be surprised how much CPU even web browsing can consume. In the past when I'd use a machine for other things at the same time as chess testing I'd leave two cores free minimum. Of course it helped that I had 8 cores and not 4 on that machine.
ydebilloez
Posts: 186
Joined: Tue Jun 27, 2017 11:01 pm
Location: Lubumbashi
Full name: Yves De Billoëz

Re: Time forfeits because of too few cores?

Post by ydebilloez »

I noticed the following. On a 10 core machine under linux, when the machine is idle or when the machine is under load (20% CPU or more), the benchmark results are different. When the machine is at 100% load - eg when running a cutechess or banksiagui tournament with 10 parallel engines - the benchmark results are even more impacted. Tested with mint/5.10 kernel or fedora 34/5.11 kernel. I noticed the same on a 12 core ESXi Virtual machine, but here the hypervisor scheduler could interfere as well.

Normally, if the programs are not logging and there is some core affinity to a process, I would expect no impact as long a a core is idle. From the report, I understand there is impact.
So questions are:
- is any of the engines or arena/cutechess/banksia creating heavy io
- is there core affinity on windows, if not, how to achieve
- is there core affinity on linux, if not how to achieve
Yves De Billoëz @ macchess belofte chess
Once owner of a Mephisto I, II, challenger, ... chess computer.
Jakob Progsch
Posts: 40
Joined: Fri Apr 16, 2021 4:44 pm
Full name: Jakob Progsch

Re: Time forfeits because of too few cores?

Post by Jakob Progsch »

More running threads impacting performance system wide is expected. The cores of a CPU aren't isolated from each other. Their clock speeds will adjust to fit a power target for example (less active cores -> higher clock speeds on those cores).

More importantly they compete for memory bandwidth and cache. A single core of a modern CPU can usually consume the entire available memory bandwidth by itself. I would expect multiple instances of chess engines are particularly affected by having to share L2 and L3 caches.
User avatar
Ras
Posts: 2703
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: Time forfeits because of too few cores?

Post by Ras »

It's likely Arena consuming too much time for the GUI updates, and Arena is pretty inefficient at that. With a command line based tool instead of Arena, that would probably be better.

My quadcore has hyperthreading, so I run 8 games in parallel (total CPU load 100%) using c-chess-cli. All while browsing the web, listing to music, and watching videos. No problems, neither with the engines, nor even any lags in the browser.
Rasmus Althoff
https://www.ct800.net