mersenneforum.org  

Go Back   mersenneforum.org > New To GIMPS? Start Here! > Information & Answers

Reply
 
Thread Tools
Old 2010-04-17, 19:32   #1
Primeinator
 
Primeinator's Avatar
 
"Kyle"
Feb 2005
Somewhere near M50..sshh!

11011111102 Posts
Default Hyperthreading

Hello,

I have a question regarding hyperthreading on quad-core processors. What is the most efficient way to utilize this new processor for LL testing? How many workers should I run to get the most throughput without overly 'damaging' my computer's performance on other tasks? Thanks!

Kyle
Primeinator is offline   Reply With Quote
Old 2010-04-17, 20:01   #2
lycorn
 
lycorn's Avatar
 
Sep 2002
Oeiras, Portugal

7×197 Posts
Default

The most efficient way is not using hyperthreading at all.
As to the per core assignments, the large mem bandwidth of the i7 platforms shall allow you to run 1 LL per core without a significant performance degradation. Although I never tried it, some people has reported that an even better setting is 2 LL worker windows (2 tests), each using 2 threads.

Last fiddled with by lycorn on 2010-04-17 at 20:03
lycorn is online now   Reply With Quote
Old 2010-04-17, 21:14   #3
Primeinator
 
Primeinator's Avatar
 
"Kyle"
Feb 2005
Somewhere near M50..sshh!

89410 Posts
Default

But using 2 threads each would be using hyperthreading, would it not? How would I go about setting up these different scenarios you've listed?
Primeinator is offline   Reply With Quote
Old 2010-04-17, 22:58   #4
CADavis
 
CADavis's Avatar
 
Jul 2005
Des Moines, Iowa, USA

17010 Posts
Default

I would suggest run 4 workers, each with only 1 thread, and tell let Prime95 to "run on any CPU" for each test. That way each one will always land on a "real" core.
CADavis is offline   Reply With Quote
Old 2010-04-17, 23:18   #5
Primeinator
 
Primeinator's Avatar
 
"Kyle"
Feb 2005
Somewhere near M50..sshh!

2×3×149 Posts
Default

Quote:
Originally Posted by CADavis View Post
I would suggest run 4 workers, each with only 1 thread, and tell let Prime95 to "run on any CPU" for each test. That way each one will always land on a "real" core.
Thanks!
Primeinator is offline   Reply With Quote
Old 2010-04-18, 00:40   #6
sdbardwick
 
sdbardwick's Avatar
 
Aug 2002
North San Diego County

23×29 Posts
Default

Quote:
Originally Posted by CADavis View Post
I would suggest run 4 workers, each with only 1 thread, and tell let Prime95 to "run on any CPU" for each test. That way each one will always land on a "real" core.
That will not guarantee that each thread uses a physical core. It depends on how the OS enumerates each core; I've witnessed things like core-0=physical, core-1=virtual, core-2=physical, core-3=virtual, core-4= physical, core-5= virtual, core-6=physical, core-7= virtual as well as stranger permutations. I have not seen core-0 be anything but physical.

EDIT: Above is under Windows only; can't speak to *nix. I suspect that odd enumerations relate to not having the proper CPU "driver" in some Windows situations.

Last fiddled with by sdbardwick on 2010-04-18 at 00:45
sdbardwick is offline   Reply With Quote
Old 2010-04-18, 01:26   #7
CADavis
 
CADavis's Avatar
 
Jul 2005
Des Moines, Iowa, USA

AA16 Posts
Default

Well what I meant is that it will allow Windows to move the thread around to any core, and since the OS sees 8 "cores" but only 4 thread, it works in my experience.
CADavis is offline   Reply With Quote
Old 2010-04-18, 13:10   #8
lycorn
 
lycorn's Avatar
 
Sep 2002
Oeiras, Portugal

7×197 Posts
Default

Quote:
Originally Posted by Primeinator View Post
But using 2 threads each would be using hyperthreading, would it not? How would I go about setting up these different scenarios you've listed?
No. You would be running 2 tests, each using 2 cores. That is different from hyperthreading, where each core is used by 2 threads.
To set this up, go to Test->Worker windows, then choose Number of worker windows to run:2, and CPUs to use (multithreading): 2. You may leave the affinity setting at "Run on any CPU".

Try this versus other suggested settings, and draw your own conclusions. Keep us posted.
lycorn is online now   Reply With Quote
Old 2010-04-18, 14:01   #9
retina
Undefined
 
retina's Avatar
 
"The unspeakable one"
Jun 2006
My evil lair

22×29×47 Posts
Default

Quote:
Originally Posted by sdbardwick View Post
That will not guarantee that each thread uses a physical core. It depends on how the OS enumerates each core; I've witnessed things like core-0=physical, core-1=virtual, core-2=physical, core-3=virtual, core-4= physical, core-5= virtual, core-6=physical, core-7= virtual as well as stranger permutations. I have not seen core-0 be anything but physical.
I am not convinced by the virtual/physical description you give here. Hyperthreading means that one CPU core can run two program threads "simultaneously"1. But those two threads each run on a virtual CPU core (i.e. two virtual cores running one thread each). And two virtual cores exist on one physical CPU.

So the numbering would be closer to this:2

OS CPU-0 : physical core 0 - virtual core 0
OS CPU-1 : physical core 0 - virtual core 1
OS CPU-2 : physical core 1 - virtual core 0
OS CPU-3 : physical core 1 - virtual core 1
OS CPU-4 : physical core 2 - virtual core 0
OS CPU-5 : physical core 2 - virtual core 1
OS CPU-6 : physical core 3 - virtual core 0
OS CPU-7 : physical core 3 - virtual core 1

I don't think you can distinguish between the two virtual cores, they are pretty much identical. So to call one a physical core and the other a virtual core is misleading. They are both virtual cores running on a single physical core.

So for the above numbering, running four threads on 1, 3, 5 & 7 is just the same as 0, 2, 4 & 6, or any other combination that only uses one of each virtual core pair.

1 Not really simultaneously of course. Each of the two virtual cores executes the instructions alternately with the other. They compete with each other to use the same resources of one physical core.

2 Of course the OS/physical/virtual numbering depends upon how the actual OS numbers things, I just followed the description in the quote above.

Last fiddled with by retina on 2010-04-18 at 14:02
retina is offline   Reply With Quote
Old 2010-04-18, 15:07   #10
CADavis
 
CADavis's Avatar
 
Jul 2005
Des Moines, Iowa, USA

AA16 Posts
Default

Quote:
Originally Posted by retina View Post
I don't think you can distinguish between the two virtual cores, they are pretty much identical. So to call one a physical core and the other a virtual core is misleading. They are both virtual cores running on a single physical core.

So for the above numbering, running four threads on 1, 3, 5 & 7 is just the same as 0, 2, 4 & 6, or any other combination that only uses one of each virtual core pair.
yeah this is what I was getting at.
CADavis is offline   Reply With Quote
Old 2010-04-19, 04:01   #11
jasong
 
jasong's Avatar
 
"Jason Goatcher"
Mar 2005

DB116 Posts
Default

I'm not an expert, but I'm pretty sure you get a pretty big increase in speed(especially in Linux with only the DCing stuff running) if each instance gets it's own physical core. And when I say gets it's own physical core, I'm talking about using a command that forces it to only use one particular core.
jasong is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Hyperthreading TheMawn Hardware 12 2013-08-15 00:03
Hyperthreading Jud McCranie Information & Answers 11 2009-03-05 06:41
Should hyperthreading be used? Electrolyte Hardware 5 2006-11-08 01:29
Hyperthreading dave_0273 Hardware 5 2003-12-12 13:22
Hyperthreading Prodigious Software 4 2002-12-17 12:31

All times are UTC. The time now is 17:00.

Fri Jun 5 17:00:18 UTC 2020 up 72 days, 14:33, 1 user, load averages: 1.28, 1.56, 1.56

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.