Core i7 and chess

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

Moderators: hgm, Rebel, chrisw

User avatar
Bo Persson
Posts: 243
Joined: Sat Mar 11, 2006 8:31 am
Location: Malmö, Sweden
Full name: Bo Persson

Re: Core i7 and chess

Post by Bo Persson »

Karmazen & Oliver wrote:
Marc MP wrote:
Karmazen & Oliver wrote:
Gian-Carlo Pascutto wrote:
Karmazen & Oliver wrote:
in chess HT 23 % up for this CPU. Yes, I write that I was thinking about this... in a previus post...

bye
Nodes per second speedup means NOTHING for actual playing strength, which will be clear if you actually read this thread.
it´s false, in the same engine ?¡ more nk/s is more ELO.

in chess, HT it´s better.
I have a Pentium 4 3.2Ghz with Hyper-Threading. On the Fritz 9 benchmark it scores 2.0 without HT and 2.3 with HT. So 15% gain in speed it seems. When I do an epd-test (test positions), I always get lower scores when I use 2 threads instead of one. Hyper-Threading HURTS performance.
Excuse me, It´s important what engine you used...

I have a P4 too, a Presler D 935, It´s have two cores but don´t HT, I don´t like HT, because it´s elevate Watss 1/4 on CPU overclocked... I would install a Intel D 955 EE, with HT, but I can nt have the top speed oc with HT.. but I

I believe to be totally sure that "alone" for the chess, the HT cannot be bad, it can be that other processes in second plane are harming to the calculate process, it can be that the difference was not outstanding, but if the software this CORRECTLY programmed one is impossible that activating the HT is harmed to the yield. In another software, as games 3D, etc, is possible that if it harms for that there are implied many different processes in the cache... but analyzing chess, only chess?

Which is the engine that has used ? I have a portable of HP, with a processor 3 GHz with HT, I would can test in this team to see if I observe the same thing that you, but it is strange... rare.

bye. oliver.
It can be bad!

I have tried Crafty on an i7. Enabling HT gives you more nodes/second, but it also gives you more seconds.

More seconds is bad! :-)


Bo Persson
Marc MP

Re: Core i7 and chess

Post by Marc MP »

Karmazen & Oliver wrote:
Which is the engine that has used ? I have a portable of HP, with a processor 3 GHz with HT, I would can test in this team to see if I observe the same thing that you, but it is strange... rare.

bye. oliver.
I didn't find one that had better results with HT on. Maybe if you find one you could let us know?
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Core i7 and chess

Post by bob »

Karmazen & Oliver wrote:
Gian-Carlo Pascutto wrote:
Karmazen & Oliver wrote:
in chess HT 23 % up for this CPU. Yes, I write that I was thinking about this... in a previus post...

bye
Nodes per second speedup means NOTHING for actual playing strength, which will be clear if you actually read this thread.
it´s false, in the same engine ?¡ more nk/s is more ELO.

in chess, HT it´s better.
This is _wrong_. If it were just a simple NPS issue, you would be correct. But if you run a single-cpu test, for N seconds, the program will search M nodes. When you run a dual-cpu test, to the same depth, it will go faster, but not 2x faster. The tree will expand to N nodes, where N is > M. An extra thread adds about 30% more nodes to the tree, per thread... If the faster NPS is not faster by _more_ than 30%, then you are, in effect, slowing the search down, not speeding it up. This is the case with hyperthreading...
User avatar
hgm
Posts: 27796
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Core i7 and chess

Post by hgm »

HT does help in Chess, it just does not help a single SMP engine to search faster. But if I can play 4 ponder-off single-CPU games in parallel with HT off, I can play 8 games in parallel with HT on. That would be double the number of games in only 1.5 times the time, if the nps speeds up by ~25%.

That helps.
Karmazen & Oliver
Posts: 374
Joined: Sat Mar 10, 2007 12:34 am

Re: Core i7 and chess

Post by Karmazen & Oliver »

hgm wrote:HT does help in Chess, it just does not help a single SMP engine to search faster. But if I can play 4 ponder-off single-CPU games in parallel with HT off, I can play 8 games in parallel with HT on. That would be double the number of games in only 1.5 times the time, if the nps speeds up by ~25%.

That helps.
ok. yes... HT dows help in "in parallel processes" chess... ;-) but it´s this is true ?¡

why won't it be possible that some engines takes advantage of the ht correctly?

they exist a heap of computer science applications, general software that doesn't take advantage of the HT correctly, but to my I find difficult to believe that some of you justify that problem like a failure of HT for chess, when in fact it is a programming failure... in chess program...

Have you test to use the HT active, but to "force" to the engine, to use only "SINGLE 4 cores ? (setup engine)

I think that in this case: HT= ON, core max = 4, (would be) is better results that HT = OFF and core no limits... ? ok only 4.

I have only a old P4 3, Ghz, now I will test this, HT = ON, core max = 1, to compare with HT = ON, core max = 2 ( 1 core virtuality ), and HT=OFF and 1 core.

But somebody HERE have a iCore 7, (ahgg >> watss, ;-) ), in that CPU you have 3 options:

- HT = OFF, core = 4,

- HT = ON, core = 8, ( but 4 cores are false, it is possible that it is an excess of threads of information, collisions in the cache, and yield problems... for that in fact 8 cores doesn't exist, perhaps serious necessary that the engine behaves like sail engine in 4 different threads, in that serious way possible to take advantage of the HT without harming to the yield... )

and the other option:

- HT = ON, and setup engine core max = 4.

I think that the last option: HT=ON, setup engine core max=4, ok... I hope will have betters results that HT=OFF, and core must= 4... but I can not test this, maybe somebody would can test.. and say something about it...

it´s wrong ? I will test now... in a small example me... only for one core.

do you understand what I want to say (express)...?

bye. Oliver. from Spain. :arrow:
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Core i7 and chess

Post by bob »

hgm wrote:HT does help in Chess, it just does not help a single SMP engine to search faster. But if I can play 4 ponder-off single-CPU games in parallel with HT off, I can play 8 games in parallel with HT on. That would be double the number of games in only 1.5 times the time, if the nps speeds up by ~25%.

That helps.
You can do that with hyperthreading turned off. I don't like it because it gives you two cpus, but each of which is maybe 50-60% of that one original processor. And you introduce a bias into the testing. So you end up with each program searching maybe 50% of the search space it normally would use if given a _real_ cpu...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Core i7 and chess

Post by bob »

Karmazen & Oliver wrote:
hgm wrote:HT does help in Chess, it just does not help a single SMP engine to search faster. But if I can play 4 ponder-off single-CPU games in parallel with HT off, I can play 8 games in parallel with HT on. That would be double the number of games in only 1.5 times the time, if the nps speeds up by ~25%.

That helps.
ok. yes... HT dows help in "in parallel processes" chess... ;-) but it´s this is true ?¡

why won't it be possible that some engines takes advantage of the ht correctly?
First, do you have any idea of what "correctly" means and how hyper-threading works? Until you can answer "yes" to those questions, your comments don't make much sense.

Hyperthreading helps when an application is poorly written and has excessive memory traffic. When one thread is hung waiting on a memory access, another thread can proceed until it needs memory as well. If a thread is already optimized to minimize memory traffic, hyper-threading offers nothing.

So your question is completely nonsensical. The programs that do poorly on hyperthreading are the very programs that are written the best way possible. Not the other way around. If a program (a parallel program) does better with HT on, it could do even better with HT off if the author would clean up the memory accesses.


they exist a heap of computer science applications, general software that doesn't take advantage of the HT correctly, but to my I find difficult to believe that some of you justify that problem like a failure of HT for chess, when in fact it is a programming failure... in chess program...
If you only understood (a) what hyperthreading does; (b) what it takes to optimize a program to run as efficiently as possible, which _by definition_ makes hyperthreading worthless, then you might not be making such a grossly inaccurate and misleading statement.


Have you test to use the HT active, but to "force" to the engine, to use only "SINGLE 4 cores ? (setup engine)
You can't do what you are thinking. If you turn hyper-threading on, the operating system thinks it has 8 half-speed CPUs, rather than 4 full-speed processors. It will quite likely schedule one or more of the parallel threads on the same physical processor, because it thinks the two logical processors are truly independent, which they most definitily are _not_.

I think that in this case: HT= ON, core max = 4, (would be) is better results that HT = OFF and core no limits... ? ok only 4.
Time to "stop thinking". This is all wrong.

I have only a old P4 3, Ghz, now I will test this, HT = ON, core max = 1, to compare with HT = ON, core max = 2 ( 1 core virtuality ), and HT=OFF and 1 core.

But somebody HERE have a iCore 7, (ahgg >> watss, ;-) ), in that CPU you have 3 options:

- HT = OFF, core = 4,

- HT = ON, core = 8, ( but 4 cores are false, it is possible that it is an excess of threads of information, collisions in the cache, and yield problems... for that in fact 8 cores doesn't exist, perhaps serious necessary that the engine behaves like sail engine in 4 different threads, in that serious way possible to take advantage of the HT without harming to the yield... )

and the other option:

- HT = ON, and setup engine core max = 4.

I think that the last option: HT=ON, setup engine core max=4, ok... I hope will have betters results that HT=OFF, and core must= 4... but I can not test this, maybe somebody would can test.. and say something about it...
Again. Time to stop thinking. This is _not_ how it works. If you only have 4 threads, and you turn hyper-threading on, you may well see two threads scheduled on different logical processors, but the two logical processors are actually one physical CPU. That would be bad. Absolutely no question about it...

You can find lots of discussion about this very topic if you look around the internet.


it´s wrong ? I will test now... in a small example me... only for one core.

do you understand what I want to say (express)...?

bye. Oliver. from Spain. :arrow:
Karmazen & Oliver
Posts: 374
Joined: Sat Mar 10, 2007 12:34 am

Re: Core i7 and chess

Post by Karmazen & Oliver »

bob wrote:
You can't do what you are thinking. If you turn hyper-threading on, the operating system thinks it has 8 half-speed CPUs, rather than 4 full-speed processors. It will quite likely schedule one or more of the parallel threads on the same physical processor, because it thinks the two logical processors are truly independent, which they most definitily are _not_.

.... This is _not_ how it works. If you only have 4 threads, and you turn hyper-threading on, you may well see two threads scheduled on different logical processors, but the two logical processors are actually one physical CPU. That would be bad. Absolutely no question about it...

You can find lots of discussion about this very topic if you look around the internet.
ok. yes, system controls the 8 cores... and you are very correct, excuse me...

I had not kept in mind that the operating system, it can "balance" the load incorrectly... the idea was to "execute" 4 threads, with the activated HT, but each thread in a different real core, for that reason I said that the ideal thing is that the system or the application distinguish between real cores and logical cores... balancing the load, first in the 4 real cores and when those they are very busy, to use the secondary ones... (and if we use setup engine = 5 or 6 cores we have similar problem.... that you say.. yes)

does all the engines behave equally?

In a time, I will test that same in the case of a single processor, one core (HT on/off), in that case it is more simple, because it is not given that the load is not well distributed... and select in engine setup= only 1 core. but with HT=ON.

Regarding the information of internet, well, the same as in chess, I read more about it in chess, it cannot trust one of all that that is written... (trusts but checks it, said: lasker) ;-)


a greeting... and thanks you... Oliver.

postcript: but there is something strange, in the way of negotiating the HT for the operation system and aplications...,

according to what counts us, the alone HT could be a benefit when we use two different engines and we have disabled the pondering thinking...

- in windows xp, with a cpu 3 Ghz and HT.. the logical thing that was a benefit in all the cases, whenever it is not to mix tasks very different, or certain applications, after all, in a P4, 3 Ghz, with HT=on, deepfritz 7 behave better than using alone a core... it is not x2, but it improves between 20% or 30%, I have to think it more thoroughly...


I wait that at least in the case of using simple engines, of the style fritz 9, 11, or chesstiger, but don´t deep versions... in this case, HT= ON is better for the global system use...? I hope yes.

a greeting again.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Core i7 and chess

Post by bob »

Karmazen & Oliver wrote:
bob wrote:
You can't do what you are thinking. If you turn hyper-threading on, the operating system thinks it has 8 half-speed CPUs, rather than 4 full-speed processors. It will quite likely schedule one or more of the parallel threads on the same physical processor, because it thinks the two logical processors are truly independent, which they most definitily are _not_.

.... This is _not_ how it works. If you only have 4 threads, and you turn hyper-threading on, you may well see two threads scheduled on different logical processors, but the two logical processors are actually one physical CPU. That would be bad. Absolutely no question about it...

You can find lots of discussion about this very topic if you look around the internet.
ok. yes, system controls the 8 cores... and you are very correct, excuse me...

I had not kept in mind that the operating system, it can "balance" the load incorrectly... the idea was to "execute" 4 threads, with the activated HT, but each thread in a different real core, for that reason I said that the ideal thing is that the system or the application distinguish between real cores and logical cores... balancing the load, first in the 4 real cores and when those they are very busy, to use the secondary ones... (and if we use setup engine = 5 or 6 cores we have similar problem.... that you say.. yes)

does all the engines behave equally?

In a time, I will test that same in the case of a single processor, one core (HT on/off), in that case it is more simple, because it is not given that the load is not well distributed... and select in engine setup= only 1 core. but with HT=ON.
With one thread, HT on or HT off will have absolutely no effect. So I am not sure what your point is here... you have two logical processors. One is used, one is not. So how can this possibly do anything useful???
Regarding the information of internet, well, the same as in chess, I read more about it in chess, it cannot trust one of all that that is written... (trusts but checks it, said: lasker) ;-)


a greeting... and thanks you... Oliver.

postcript: but there is something strange, in the way of negotiating the HT for the operation system and aplications...,

according to what counts us, the alone HT could be a benefit when we use two different engines and we have disabled the pondering thinking...

- in windows xp, with a cpu 3 Ghz and HT.. the logical thing that was a benefit in all the cases, whenever it is not to mix tasks very different, or certain applications, after all, in a P4, 3 Ghz, with HT=on, deepfritz 7 behave better than using alone a core... it is not x2, but it improves between 20% or 30%, I have to think it more thoroughly...


I wait that at least in the case of using simple engines, of the style fritz 9, 11, or chesstiger, but don´t deep versions... in this case, HT= ON is better for the global system use...? I hope yes.

a greeting again.
I think it is worthless in the case of chess, period. And in general, it is a poor idea as well. There are some applications that run faster with hyper-threading. There are some that run far slower...
Karmazen & Oliver
Posts: 374
Joined: Sat Mar 10, 2007 12:34 am

Re: Core i7 and chess

Post by Karmazen & Oliver »

bob wrote: With one thread, HT on or HT off will have absolutely no effect. So I am not sure what your point is here... you have two logical processors. One is used, one is not. So how can this possibly do anything useful???
oh apologize here, perhaps I don't explain to me with clarity, we have reached the conclusion that in certain processes the HT can harm, what I meant is that if "an engine", in a single processor, with two logical cores, to use a version deep, it can harm to the yield, we can leave activated the HT, and to force to the engine to use one alone of the processors, that will avoid problems associated to the use of two logical cores and system left "something" useful for other different processes in second plane...

I meant that in that way, HT=on, Cores=1 forced in setup engine, at least we will get that it doesn't harm to the yield, the HT is useful in a great majority of applications, let us say that in 5 of each 10 applications the HT is useful, therefore negotiating the modules in that way doesn't need to give up the HT in all the processes...

When thinking in that way I try to extrapolate that behavior to a processor more complex, as an icore 7, but you were guessed right when indicating that the operating system doesn't go that is to distinguish and it could balance the load incorrectly. Therefore the only thing that I seek with that idea of forcing the number of processors in the setup of the engine, it is that at least, don't harm to the yield in that application and we can have the HT in other different processes.

Only for some old system, but a lot of people have semi-olds cpu that have one core and HT...
bob wrote: I think it is worthless in the case of chess, period. And in general, it is a poor idea as well. There are some applications that run faster with hyper-threading. There are some that run far slower...
good, I personally think that there is more applications than the HT takes advantage to applications that don't take advantage of it... and some programs exist in those that the improvement is tiny, less than 1%... resume for me: (50% software better, 30 % worthless or zero, 20 worse %... bad result)

for example...

http://www.devhardware.com/c/a/Computer ... 5nm-CPU/2/

in an intel D 955 EE, 2 cores + 2 cores logic... the test super PI, is very good for HT, this cpu have to very good test when we test 3 or 4 programs superpi test.
2 superpi.exe programs

40.484 seconds (intel D 955 EE 2+2cores)
35.813 seconds. (AMD Fx60 2 cores)

but when we use:

4 superpi.exe programs...

53.218 seconds Intel Pentium D 955 EE
74.177 seconds. AMD FX60


Regarding in a normal use, I perceive, but it is a personal opinion that if the processor not this busy one to 100% of the load, when the processor has HT=on, the behavior it is more slight, its answer is more sensitive and more quick to the changes of applications, ...

What is not very appropriate is that to activate the HT in a processor iCore7 takes among 1/3~1/4 bigger consumption of power, if you estimate you some 90 W of consumption max in some reviews, to have active the HT implies among 20-30 W this is a true atrocity.

I think that serious possible to take advantage in a better way the use of the HT, in fact, programs calculate intensive as superpi.exe they take advantage of the HT correctly, but evidently that perhaps is because they are 4 different instances of programs, in those that each one has access different to an area by program and they don't mix among them.

it is possible that the only form of taking advantage of the HT a little, be with the simultaneous load of different engines that uses a different area by process... and is with the ponderyn=off.

The problem more big that find the HT, it is that the system overloads one of the cores (core1+core1virtual to 95%, and leave the alone core2+core2 to 5%), that is a great nonsense...

greetings, THE chat-comunication with you has been very interesting.

Sincerely, Oliver