TNGCC - need to decide ponder ON or OFF (new poll)

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

Moderators: hgm, Rebel, chrisw

Which option would you prefer TNGCC to use?

1 thread, ponder ON, ht OFF
3
8%
3 threads, ponder ON, ht ON
3
8%
3 threads, ponder OFF, ht OFF
16
43%
7 threads, ponder OFF, ht ON
15
41%
 
Total votes: 37

Lavir
Posts: 263
Joined: Sun Oct 28, 2012 11:45 am

Re: TNGCC - need to decide ponder ON or OFF (new poll)

Post by Lavir »

Houdini wrote: Based on all this, I would suggest for the engine matches 4 threads without ponder, using the additional hyper-threads for the GUI and management processes.
This in fact would have agreeably been the best solution even before, but Martin has to use the PC for something more than simple tasks, and so relying only on HT is a problem.
User avatar
hgm
Posts: 27837
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: TNGCC - need to decide ponder ON or OFF (new poll)

Post by hgm »

Lavir wrote:I repeat: when you use a logical core it is like using half of a physical processor + about 5% speed.
It is much more than that, although it can depend on the quality of the code you are running. I made a simple test program (basically to determine how logical cores mapped on physical ones) that counts to a billion and then prints how long that took (repeating this forever). Running two of those as separate HT on the same physical core gives a slowdown much less than a factor two. More like a factor 1.5. So it seems 1 logical core = 0.66 physical core, performance-wise.
When you use 4 in total is about 20% speed increase
I don't understand that math. What is 5% on one core, is still 5% when you use it on 4 cores.
If for example you use only 1 physical core + 2 logical processors, you have a tree that work presuming 3 cores, but with only 1 core + 10% increase. This is a net loss.
If rwplacing two physical cores by four logical ones is a gain, replacing one physical core by two logical ones should also be a gain.
In a more practical example: let's assume 2.500 kn/s for 1 core, and something like 7.000 for all three. With 1 core + 2 logical processes it will just be 5.250 for a tree of 3 threads.
Not sure what you want to prove with that. You are comparing use of 2 physical cores with that of three, so what is the point? Of course the 3 will be faster. If each logical core counts as 0.66, 2 cores would be 2, 1 core + 2 HT would be 2.33 in terms of CPU power. Perhaps something should be subtracted if the number of threads grows to account for a memory bottleneck. But they report that going from 4 cores to 8 HT still leaves 4.8 (in stead of 5.33).
Lavir
Posts: 263
Joined: Sun Oct 28, 2012 11:45 am

Re: TNGCC - need to decide ponder ON or OFF (new poll)

Post by Lavir »

hgm wrote: It is much more than that, although it can depend on the quality of the code you are running. I made a simple test program (basically to determine how logical cores mapped on physical ones) that counts to a billion and then prints how long that took (repeating this forever). Running two of those as separate HT on the same physical core gives a slowdown much less than a factor two. More like a factor 1.5. So it seems 1 logical core = 0.66 physical core, performance-wise.
Your test doesn't count. If the physical core is not in use, then, yes, about 65% is the result. But in this case all the physical cores WILL be in use, so the increase is only about 5% for logical core.
I don't understand that math. What is 5% on one core, is still 5% when you use it on 4 cores.
It's about +5% for every logical core. So if you have 4 logical cores you have about +20% increase in speed on the physical cores.

If for example you have 9.500 knps for all 4 cores, with HT (using all threads) you get about 12.000.
If rwplacing two physical cores by four logical ones is a gain, replacing one physical core by two logical ones should also be a gain.
No, because the physical core is in use elsewhere.
Not sure what you want to prove with that. You are comparing use of 2 physical cores with that of three, so what is the point?
Read the edit. I did a mistake because I considered the 2 physical cores not in use, while in a case as this they should be presumed as being used.

The speed would just be 2.750 in the case the physical cores are in use. So 2.750 vs 7.000, and in both cases a tree large 3 threads. Do you think something like that acceptable?

So what's the point? The point is to demonstrate you that the tree will grow but with almost no speed increase at all, so actually giving a disadvantage to the engine. The less logical cores used while the physical cores are in use, the less increase you get while the tree instead expects it.

In the case of this tournament ALL the physical cores will be in use (by the engines or elsewhere) so the net increase is only the pure increase of the logical core give, that's about +5% for core.

In fact when you run a full HT it's not +65% for X logical cores, but about +5% for X logical cores.
Modern Times
Posts: 3555
Joined: Thu Jun 07, 2012 11:02 pm

Re: TNGCC - need to decide ponder ON or OFF (new poll)

Post by Modern Times »

hgm wrote: They are not sleeping at Intel, and their stuff gets better and better. While the first HT implementation (in P-IV) was a bummer, they did a much better job when they re-introduced it in the i7. So what was true back then, will not necessarily stay true forever. On the Atom it even is a life saver. But on the i7 it is about neutral now, and with an engine that scales really well, HT on seems to improve the performance.
Yes HT is much improved. It might improve performance a little, but nowhere near as much as extra true cores. As long as Martin uses ponder OFF it would be OK for his purposes, except that different engines may react differently to HT.
User avatar
hgm
Posts: 27837
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: TNGCC - need to decide ponder ON or OFF (new poll)

Post by hgm »

Modern Times wrote:Yes HT is much improved. It might improve performance a little, but nowhere near as much as extra true cores. As long as Martin uses ponder OFF it would be OK for his purposes, except that different engines may react differently to HT.
Of course they nowhere near powerful as extra cores. But that is not a meaningful comparison, because they also don't consume as many resources as extra cores. An extra core doubles the number of transistors on the chip, doubles the power consumption. Hyper-threading adds perhaps only 1% extra transistors, and makes the original 100% be used 1.5 times as efficient (which also drives up power consumption, btw). So you get 0.5 extra core for 1/100 of the price.

Who cares if different engines react different to hyper-threading? It might be true that ratings determined with HT off/unused cannot be easily converted into ratings with HT on and using it. But who wants to do that? The CCRL test conditions are very well specified (which is a good thing), but arbitratrily chosen. A rating list based on hyper threads is not intrinsically inferior to one based on physical cores. On the contrary, if in the future it turns out that HT buys users 'extra bang for their buck', the normal situation will be that they run using HT, and if the physical-cores-only CCRL list will become known as 'less reliable because it does not use HT'...
User avatar
hgm
Posts: 27837
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: TNGCC - need to decide ponder ON or OFF (new poll)

Post by hgm »

Lavir wrote:Your test doesn't count. If the physical core is not in use, then, yes, about 65% is the result. But in this case all the physical cores WILL be in use, so the increase is only about 5% for logical core.
You misunderstand the test. The physical core IS fully used in the test, because BOTH its logical cores were running the test program. If I ran the test program on logical cores belonging to different, otherwise idle physical cores, there was of course no slowdown at all, as the physical cores on i7 are fully independent. (This was not a program that would overflow the L2 cache or share data.)
Lavir wrote:The speed would just be 2.750 in the case the physical cores are in use. So 2.750 vs 7.000, and in both cases a tree large 3 threads. Do you think something like that acceptable?
I have no idea how you get those numbers. They seem to bear no relationship to reality. If one core does 2.500 knps, three cores have a computing power of 7.500, and you MIGHT lose a bit of that due to a memory bottleneck (depending on program design), so you are left with 7.000 knps. OK so far. But now when you will switch on the HT, each HT will have a computing power of 0.66*2.500 ~ 1.600. So with 6 HT you have 9.600 knps computing power, but the memory bottleneck will make you lose even more on that than in the 7.500 knps case, so it reduces to 8.900. And this is what people reported, about 20% more nps with HT on and all threads used.

Now if you do 2 HT on the same core plus one physical core, you will have 2.500 + 2 x 1.600 = 5.700 knps computing power. The memory botle-neck will lose you less than the 500 knps in the 3 core case, because in total you are slower. So you will be left with about 5.400 knps.
Lavir
Posts: 263
Joined: Sun Oct 28, 2012 11:45 am

Re: TNGCC - need to decide ponder ON or OFF (new poll)

Post by Lavir »

hgm wrote: Now if you do 2 HT on the same core plus one physical core, you will have 2.500 + 2 x 1.600 = 5.700 knps computing power. The memory botle-neck will lose you less than the 500 knps in the 3 core case, because in total you are slower. So you will be left with about 5.400 knps.
Again, no. You still don't understand how a logical core works, as it has been showed in the other post.

I already explained to you the difference of having a physical core in use and not.

The 20% increase you obtain by doubling (using threads and cores) is because you use (in the tests made) 4 x 5% = 20%, if you use 3 core 6 threads you will have about 15% improvement, if you use only 2 logical cores 10% and so on.

If you use only 1 physical core + 2 logical cores and the other physical is in use elsewhere (for example on an application), you get a tree large 3 but with the speed of 1 real core + about 10%.

The test you did ran is just raw numbers, it is equal to running OCCT, it doesn't represent real increase in computational power on a logical core. It would be extremely good if you had +15% increase for every logical core. With 4 you would have a whooping +60%, a thing that will never happen.

Moreover as it has been said by others, different programs react differently to HT, and this must be taken also in consideration. The +5% can become +2% or 0%.
User avatar
hgm
Posts: 27837
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: TNGCC - need to decide ponder ON or OFF (new poll)

Post by hgm »

Well, it seems pointless to discuss about this, because we have a totally different conception of how hyper-threading works, so that one of us must be completely wrong. And no matter what you write about it, I will always remain 100% convinced that it is you who doesn't understand how Hyper Threading works. Not only is it that what you say seems inconsistent in itself, (especially the way you add percentages), and where it isn't, it is at odds with the documentation about the architecture of i7, which I extensively studied. But also that I have actually done these tests, and that no amount of talk could ever convince me that what I have seen with my own eyes would not be true...

So perhaps we better drop it. People can decide for themselves whether they will believe you or me.
Vinvin
Posts: 5228
Joined: Thu Mar 09, 2006 9:40 am
Full name: Vincent Lejeune

Re: TNGCC - need to decide ponder ON or OFF (new poll).

Post by Vinvin »

Why not : "3 threads, ponder OFF, ht ON" or "4 threads, ponder OFF, ht ON" ?
I'd vote for one of these ...
Martin Thoresen
Posts: 1833
Joined: Thu Jun 22, 2006 12:07 am

Re: TNGCC - need to decide ponder ON or OFF (new poll).

Post by Martin Thoresen »

Vinvin wrote:Why not : "3 threads, ponder OFF, ht ON" or "4 threads, ponder OFF, ht ON" ?
I'd vote for one of these ...
Actually, I am leaning to the latter as per Robert Houdart's post in the other thread.

I am just going to do some testing.