The idea behind this limit was, that people do not play 16 cores each with permanent brain on a 16 core machine.
Or 4 core each with permanent brain on an 4 core machine.
The engine should get the number of cores that exist, not hyperthread virtual cores.
On my best system this is 8 cores each with PB because it is 16 core machine.
Both rebel EAS and cstal2 Nnue are strong.
Very strong. Depending on the participants list they are at least under top 10 engines.
Rebel 16.2: Impressive!
Moderator: Ras
-
- Posts: 18901
- Joined: Thu Mar 09, 2006 6:40 pm
- Location: US of Europe, germany
- Full name: Thorsten Czub
Re: Rebel 16.2: Impressive!
What seems like a fairy tale today may be reality tomorrow.
Here we have a fairy tale of the day after tomorrow....
Here we have a fairy tale of the day after tomorrow....
-
- Posts: 3621
- Joined: Wed Mar 08, 2006 8:15 pm
- Full name: Jouni Uski
Re: Rebel 16.2: Impressive!
In Fritz GUI and 6 cores CPU CSTal uses only 1 core even if display says 6 cores! This is idiotic. Let the user decide how many cores are used not engine
. CSTal is strong engine and fix is needed immediately.

Jouni
-
- Posts: 4630
- Joined: Tue Apr 03, 2012 4:28 pm
- Location: Midi-Pyrénées
- Full name: Christopher Whittington
Re: Rebel 16.2: Impressive!
these people who keep claiming one core have not answered what happens when they type "mem" into the UCI command line. Maybe they prefer whingeing to solutions.
It's all in the documentation:
Hash, Threads, Ponder
setoption name Hash value N to set Hash table size
setoption name Threads value N to set Threads (limited to max(1, cores/2), some UI programs and Windows can't cope with high core count)
For Power Users
Windows and some UI's can become unstable if threads are set too high, use at your own risk
setoption name RelaxThreadLimit value N (set yourself as a power user)
Diagnostics
"mem" generates memory diagnostics
"cpu" gives CPU performance information
It's all in the documentation:
Hash, Threads, Ponder
setoption name Hash value N to set Hash table size
setoption name Threads value N to set Threads (limited to max(1, cores/2), some UI programs and Windows can't cope with high core count)
For Power Users
Windows and some UI's can become unstable if threads are set too high, use at your own risk
setoption name RelaxThreadLimit value N (set yourself as a power user)
Diagnostics
"mem" generates memory diagnostics
"cpu" gives CPU performance information
-
- Posts: 4630
- Joined: Tue Apr 03, 2012 4:28 pm
- Location: Midi-Pyrénées
- Full name: Christopher Whittington
Re: Rebel 16.2: Impressive!
Great idea. Then some users will overset the thread count and report the engine crashes all over all the newsgroups. I prefer whingeing about thread count to whingeing about crashes.
-
- Posts: 2285
- Joined: Sat Jun 02, 2012 2:13 am
Re: Rebel 16.2: Impressive!
Thanks, Peter, it sure sounds like good advice and I tried following it, but it's still using only 2 cores in Arena. 

-
- Posts: 3400
- Joined: Sat Feb 16, 2008 7:38 am
- Full name: Peter Martan
Re: Rebel 16.2: Impressive!
One more thing you could give a try also, would be to fill the command
setoption name RelaxThreadLimit value true
not only in input field "Init string" ("Details"- "Special") as told, but also in the one listed under menu "General" named "Command Line Parameters".
Had tried that exclusively at first without success, then changed to Init string, which worked for Arena 3.5.1, it won't hurt having it set at both options.
In Shredder 13 GUI it's enough to give a line
RelaxThreadLimit=true
in .eng- file.
And of course you have to set the number of threads in corresponding UCI- parameter yet still also. If your CPU has 4 physical cores, 4 threads is the maximum the engine uses anyhow, regardless setting hyperthreading on or off, and 4 only if RelaxThreadLimit is true.
Give it a try in console first, there you see engine's reaction at once without interference of GUI. If there isn't any output as answer to your commands, that means, that the engine doesn't react at all, if it does acknowledge them, there will be a corresponding output as feedback.
Peter.
-
- Posts: 2285
- Joined: Sat Jun 02, 2012 2:13 am
Re: Rebel 16.2: Impressive!
peter wrote: ↑Sat Sep 02, 2023 11:32 amOne more thing you could give a try also, would be to fill the command
setoption name RelaxThreadLimit value true
not only in input field "Init string" ("Details"- "Special") as told, but also in the one listed under menu "General" named "Command Line Parameters".
Had tried that exclusively at first without success, then changed to Init string, which worked for Arena 3.5.1, it won't hurt having it set at both options.
In Shredder 13 GUI it's enough to give a line
RelaxThreadLimit=true
in .eng- file.
And of course you have to set the number of threads in corresponding UCI- parameter yet still also. If your CPU has 4 physical cores, 4 threads is the maximum the engine uses anyhow, regardless setting hyperthreading on or off, and 4 only if RelaxThreadLimit is true.
Give it a try in console first, there you see engine's reaction at once without interference of GUI. If there isn't any output as answer to your commands, that means, that the engine doesn't react at all, if it does acknowledge them, there will be a corresponding output as feedback.
Thanks again, Peter, I did all that, but it's a no go for me. I guess I should just be happy that I've got the engine and it's working with 2 cores...
In console it won't accept any commands except uci.
I also tried adding the line RelaxThreadLimit=true to the engine's (chessbase) .uci file, as well as ArenaENG.ctg, but it made no difference.
The .exe's I downloaded seem to be hardwired to use no more than 2 cores.
-
- Posts: 4663
- Joined: Sun Mar 12, 2006 2:40 am
- Full name: Eelco de Groot
Re: Rebel 16.2: Impressive!
The 'mem' command works here, when I doubleclick on my REBEL-EAS.exe at least:carldaman wrote: ↑Sun Sep 03, 2023 2:29 ampeter wrote: ↑Sat Sep 02, 2023 11:32 amOne more thing you could give a try also, would be to fill the command
setoption name RelaxThreadLimit value true
not only in input field "Init string" ("Details"- "Special") as told, but also in the one listed under menu "General" named "Command Line Parameters".
Had tried that exclusively at first without success, then changed to Init string, which worked for Arena 3.5.1, it won't hurt having it set at both options.
In Shredder 13 GUI it's enough to give a line
RelaxThreadLimit=true
in .eng- file.
And of course you have to set the number of threads in corresponding UCI- parameter yet still also. If your CPU has 4 physical cores, 4 threads is the maximum the engine uses anyhow, regardless setting hyperthreading on or off, and 4 only if RelaxThreadLimit is true.
Give it a try in console first, there you see engine's reaction at once without interference of GUI. If there isn't any output as answer to your commands, that means, that the engine doesn't react at all, if it does acknowledge them, there will be a corresponding output as feedback.
Thanks again, Peter, I did all that, but it's a no go for me. I guess I should just be happy that I've got the engine and it's working with 2 cores...
In console it won't accept any commands except uci.
info string Chess-System-Tal-2.00
info string Release version
info string (C) Chris Whittington 2003-2023
info string NNUE development Ed Schroeder 2023
info string ==================================
uci
id name Chess-System-Tal-2.00
id author id author Chris Whittington (C) 2003-2023
option name Hash type spin default 256 min 16 max 131072
option name Threads type spin default 1 min 1 max 64
option name Evalcorrect type spin default 202 min 1 max 256
option name Ponder type check default false
option name Rep2_Draw_Trolling type check default true
option name TC_Move_Overhead type spin default 7 min 1 max 25
option name TC_Aggression type spin default 100 min 50 max 200
option name Bookfile type string default book.bin
option name Bookdepth type spin default 0 min 0 max 200
option name Bookrandom type spin default 0 min 0 max 100
uciok
mem
info string Hash=256 Mb
info string Globals=199 Kb
info string Threads=1
info string Cores=2
(I have a four core CPU, no hyperthreading so should Rebel not detect four? Or is it using two cores.)
I also tried adding the line RelaxThreadLimit=true to the engine's (chessbase) .uci file, as well as ArenaENG.ctg, but it made no difference.
The .exe's I downloaded seem to be hardwired to use no more than 2 cores.
Debugging is twice as hard as writing the code in the first
place. Therefore, if you write the code as cleverly as possible, you
are, by definition, not smart enough to debug it.
-- Brian W. Kernighan
place. Therefore, if you write the code as cleverly as possible, you
are, by definition, not smart enough to debug it.
-- Brian W. Kernighan
-
- Posts: 18901
- Joined: Thu Mar 09, 2006 6:40 pm
- Location: US of Europe, germany
- Full name: Thorsten Czub
Re: Rebel 16.2: Impressive!
This is not true. The relax thread thing as parameter in arena changes the core usage.carldaman wrote: ↑Sun Sep 03, 2023 2:29 ampeter wrote: ↑Sat Sep 02, 2023 11:32 amOne more thing you could give a try also, would be to fill the command
setoption name RelaxThreadLimit value true
not only in input field "Init string" ("Details"- "Special") as told, but also in the one listed under menu "General" named "Command Line Parameters".
Had tried that exclusively at first without success, then changed to Init string, which worked for Arena 3.5.1, it won't hurt having it set at both options.
In Shredder 13 GUI it's enough to give a line
RelaxThreadLimit=true
in .eng- file.
And of course you have to set the number of threads in corresponding UCI- parameter yet still also. If your CPU has 4 physical cores, 4 threads is the maximum the engine uses anyhow, regardless setting hyperthreading on or off, and 4 only if RelaxThreadLimit is true.
Give it a try in console first, there you see engine's reaction at once without interference of GUI. If there isn't any output as answer to your commands, that means, that the engine doesn't react at all, if it does acknowledge them, there will be a corresponding output as feedback.
Thanks again, Peter, I did all that, but it's a no go for me. I guess I should just be happy that I've got the engine and it's working with 2 cores...
In console it won't accept any commands except uci.
I also tried adding the line RelaxThreadLimit=true to the engine's (chessbase) .uci file, as well as ArenaENG.ctg, but it made no difference.
The .exe's I downloaded seem to be hardwired to use no more than 2 cores.
What seems like a fairy tale today may be reality tomorrow.
Here we have a fairy tale of the day after tomorrow....
Here we have a fairy tale of the day after tomorrow....
-
- Posts: 4630
- Joined: Tue Apr 03, 2012 4:28 pm
- Location: Midi-Pyrénées
- Full name: Christopher Whittington
Re: Rebel 16.2: Impressive!
There are various possibilities depending on version. If you have a version compiled by Ed (eg from the Rebel site with Rebel in name somewhere), I don't have his source code, so I can't speak for that entirely accurately.Eelco de Groot wrote: ↑Sun Sep 03, 2023 11:46 amThe 'mem' command works here, when I doubleclick on my REBEL-EAS.exe at least:carldaman wrote: ↑Sun Sep 03, 2023 2:29 ampeter wrote: ↑Sat Sep 02, 2023 11:32 amOne more thing you could give a try also, would be to fill the command
setoption name RelaxThreadLimit value true
not only in input field "Init string" ("Details"- "Special") as told, but also in the one listed under menu "General" named "Command Line Parameters".
Had tried that exclusively at first without success, then changed to Init string, which worked for Arena 3.5.1, it won't hurt having it set at both options.
In Shredder 13 GUI it's enough to give a line
RelaxThreadLimit=true
in .eng- file.
And of course you have to set the number of threads in corresponding UCI- parameter yet still also. If your CPU has 4 physical cores, 4 threads is the maximum the engine uses anyhow, regardless setting hyperthreading on or off, and 4 only if RelaxThreadLimit is true.
Give it a try in console first, there you see engine's reaction at once without interference of GUI. If there isn't any output as answer to your commands, that means, that the engine doesn't react at all, if it does acknowledge them, there will be a corresponding output as feedback.
Thanks again, Peter, I did all that, but it's a no go for me. I guess I should just be happy that I've got the engine and it's working with 2 cores...
In console it won't accept any commands except uci.
info string Chess-System-Tal-2.00
info string Release version
info string (C) Chris Whittington 2003-2023
info string NNUE development Ed Schroeder 2023
info string ==================================
uci
id name Chess-System-Tal-2.00
id author id author Chris Whittington (C) 2003-2023
option name Hash type spin default 256 min 16 max 131072
option name Threads type spin default 1 min 1 max 64
option name Evalcorrect type spin default 202 min 1 max 256
option name Ponder type check default false
option name Rep2_Draw_Trolling type check default true
option name TC_Move_Overhead type spin default 7 min 1 max 25
option name TC_Aggression type spin default 100 min 50 max 200
option name Bookfile type string default book.bin
option name Bookdepth type spin default 0 min 0 max 200
option name Bookrandom type spin default 0 min 0 max 100
uciok
mem
info string Hash=256 Mb
info string Globals=199 Kb
info string Threads=1
info string Cores=2
(I have a four core CPU, no hyperthreading so should Rebel not detect four? Or is it using two cores.)I also tried adding the line RelaxThreadLimit=true to the engine's (chessbase) .uci file, as well as ArenaENG.ctg, but it made no difference.
The .exe's I downloaded seem to be hardwired to use no more than 2 cores.
This is what CSTal downloaded from my Github page does:
int n_cores = std::thread::hardware_concurrency() / 2;
// This code doesn't always work on all systems, it might return 0, in which I set n_cores=1 and that's it. Only one core. Get another PC or something.
// hardware concurrency returns (at least on all my AMDs and Intels) the count of logical processors.
// cores is half logical processors.
// let's suppose you have 6 cores
// if you typed mem into uci command line it will:
// if you are a power_user, tell you n_cores = 6
// if you're not a power user, tell you n_cores = 3
// n_cores is your thread limit.
RelaxThreadLimit is the UserOption way to become a power user.
So, if you have 1 core displayed, but think you have more cores, well, you're stuffed, one core is all you get to use. Hardware issue.
If you have half the number of cores displayed, you have the option to become a power user.
By the time you worked all this out, if you didn't know already, you'll understand the issue of high concurrency, threads and crashing with system overload. Think of it as an education.