Hyperthreading with 1 core

Message boards : Number crunching : Hyperthreading with 1 core

To post messages, you must log in.

AuthorMessage
Profile Raven Sherbert

Send message
Joined: 4 Nov 09
Posts: 7
Credit: 27,394
RAC: 0
Message 64298 - Posted: 30 Nov 2009, 8:22:00 UTC
Last modified: 30 Nov 2009, 8:25:16 UTC

Hi I am using BOINC version 6.10.18 and I have an old Pentium 4 computer with Hyper Threading.

I am wondering if its possible to only run one task at a time using 100% of my cpu. This is difficult for me to figure out, considering BOINC sees two processors instead of one.

I tried a couple different things:

Scenario 1: BOINC defaults
Effect 1: Runs two tasks at once at 100% cpu usage constantly.

Scenario 2: Under "Simple View" choose "Use no more than 50% of the processor".
Effect 2: Runs two tasks at once, but alternates cpu usage from 0% to 100% every few seconds.

Scenario 3: Under "Advanced View", click the "Advanced" menu and choose "Preferences". Under the "processor usage" tab, set "On multiprocessor systems, use at most" to "50%"
Effect 3: Runs one task at a time, but uses only 50% of cpu usage constantly.

Scenario 4: Go to my account in my browser and choose "Computing Preferences". Set "On multiprocessors, use at most" to "1 processors".
Effect 4: Seems to have no effect on the BOINC client at all? Maybe I have to wait a period of time? I tried using the "Clear" button in the BOINC client preferences to use web based settings, but got the message: "No general preferences found - using BOINC defaults"

So I would like to only run one task a time at 100% cpu usage. Scenario 3 comes the closet to this preferences, but only uses 50% of the cpu.

Any suggestions?

Thanks,
Raven
ID: 64298 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
mikey
Avatar

Send message
Joined: 5 Jan 06
Posts: 1894
Credit: 8,782,935
RAC: 1,880
Message 64299 - Posted: 30 Nov 2009, 10:10:16 UTC - in response to Message 64298.  

Hi I am using BOINC version 6.10.18 and I have an old Pentium 4 computer with Hyper Threading.

I am wondering if its possible to only run one task at a time using 100% of my cpu. This is difficult for me to figure out, considering BOINC sees two processors instead of one.

I tried a couple different things:

Scenario 1: BOINC defaults
Effect 1: Runs two tasks at once at 100% cpu usage constantly.

Scenario 2: Under "Simple View" choose "Use no more than 50% of the processor".
Effect 2: Runs two tasks at once, but alternates cpu usage from 0% to 100% every few seconds.

Scenario 3: Under "Advanced View", click the "Advanced" menu and choose "Preferences". Under the "processor usage" tab, set "On multiprocessor systems, use at most" to "50%"
Effect 3: Runs one task at a time, but uses only 50% of cpu usage constantly.

Scenario 4: Go to my account in my browser and choose "Computing Preferences". Set "On multiprocessors, use at most" to "1 processors".
Effect 4: Seems to have no effect on the BOINC client at all? Maybe I have to wait a period of time? I tried using the "Clear" button in the BOINC client preferences to use web based settings, but got the message: "No general preferences found - using BOINC defaults"

So I would like to only run one task a time at 100% cpu usage. Scenario 3 comes the closet to this preferences, but only uses 50% of the cpu.

Any suggestions? Thanks, Raven


Set the setting to use 50% of the processors and you should be only using 1 of the 2 cpu's. That is what I do on my laptop. Advanced, Preferences, processor usage, near the bottom it says "on multiprocessor systems, use at most" I put 50% in there and only 1 cpu on my dual core is used. On my HT systems only half the total cpu's are used.
ID: 64299 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile dcdc

Send message
Joined: 3 Nov 05
Posts: 1829
Credit: 117,202,842
RAC: 68,248
Message 64300 - Posted: 30 Nov 2009, 10:13:13 UTC - in response to Message 64298.  

Hi Raven

I believe option 1 is best if the machine is just used for crunching, because P4 Hyperthreading does increase output (at least from the last posts I read on the matter).

I have a P4 system and use option 3. While task manager shows this only using 50% of the CPU it's actually using all of the physical CPU's resources and it's only the virtual CPU (i.e. the spare hyperthreaded units) that aren't being utilised, so task manager can be ignored. This way there is also only one task using the CPU cache rather than two having to share it, and your other processes will make use of the hyperthreading meaning Rosetta has more CPU time to itself and therefore increasing the amount of crunching being done.


Hi I am using BOINC version 6.10.18 and I have an old Pentium 4 computer with Hyper Threading.

I am wondering if its possible to only run one task at a time using 100% of my cpu. This is difficult for me to figure out, considering BOINC sees two processors instead of one.

I tried a couple different things:

Scenario 1: BOINC defaults
Effect 1: Runs two tasks at once at 100% cpu usage constantly.

Scenario 2: Under "Simple View" choose "Use no more than 50% of the processor".
Effect 2: Runs two tasks at once, but alternates cpu usage from 0% to 100% every few seconds.

Scenario 3: Under "Advanced View", click the "Advanced" menu and choose "Preferences". Under the "processor usage" tab, set "On multiprocessor systems, use at most" to "50%"
Effect 3: Runs one task at a time, but uses only 50% of cpu usage constantly.

Scenario 4: Go to my account in my browser and choose "Computing Preferences". Set "On multiprocessors, use at most" to "1 processors".
Effect 4: Seems to have no effect on the BOINC client at all? Maybe I have to wait a period of time? I tried using the "Clear" button in the BOINC client preferences to use web based settings, but got the message: "No general preferences found - using BOINC defaults"

So I would like to only run one task a time at 100% cpu usage. Scenario 3 comes the closet to this preferences, but only uses 50% of the cpu.

Any suggestions?

Thanks,
Raven


ID: 64300 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Raven Sherbert

Send message
Joined: 4 Nov 09
Posts: 7
Credit: 27,394
RAC: 0
Message 64304 - Posted: 30 Nov 2009, 10:29:44 UTC - in response to Message 64300.  
Last modified: 30 Nov 2009, 10:31:47 UTC

I have a P4 system and use option 3. While task manager shows this only using 50% of the CPU it's actually using all of the physical CPU's resources and it's only the virtual CPU (i.e. the spare hyperthreaded units) that aren't being utilised, so task manager can be ignored.


That is interesting. Task Manager was confusing me on this because it does say 50%, but you have cleared it up for me. I do use this computer for other things, so it looks like I'll be sticking with option 3. Thanks for the info.
ID: 64304 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Mod.Sense
Volunteer moderator

Send message
Joined: 22 Aug 06
Posts: 4018
Credit: 0
RAC: 0
Message 64308 - Posted: 30 Nov 2009, 16:55:52 UTC

The thing about HT is that is does not reflect all of the system resources. I believe both sides of the HT CPU utilize the same resource to perform floating point math for example. Also as dcdc pointed out, they share L2 cache and RAM as well. And so running two at the same time can cause it to trip over itself as often as run better. So, while task manager will accurately show that the task is only using 50% of the CPU resource, it will still earn a RAC that is greater then half of when you run 2 threads at once.

In your case, running only 1 will help your machine run your other applications better (i.e. less sluggishness) because they will only compete with one BOINC thread for memory and L2 cache as well.

HT was really designed assuming that most of the time the two threads would be needing different resources and have a low level of conflicts for those resources. So running two R@h tasks at the same time, where both threads demand identical resources, is not really what they were planning on.
Rosetta Moderator: Mod.Sense
ID: 64308 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Raven Sherbert

Send message
Joined: 4 Nov 09
Posts: 7
Credit: 27,394
RAC: 0
Message 64313 - Posted: 30 Nov 2009, 21:44:13 UTC - in response to Message 64308.  

HT was really designed assuming that most of the time the two threads would be needing different resources and have a low level of conflicts for those resources. So running two R@h tasks at the same time, where both threads demand identical resources, is not really what they were planning on.


Ah yes that's why I was asking. I assumed this computer was too old to be running two rosetta tasks at once, that's why I only wanted to run one at a time, but still use as many resources as possible. Thanks.
ID: 64313 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Mod.Sense
Volunteer moderator

Send message
Joined: 22 Aug 06
Posts: 4018
Credit: 0
RAC: 0
Message 64314 - Posted: 30 Nov 2009, 22:16:07 UTC

You will earn a higher RAC (i.e. more credit per hour) if you crunch with both CPUs. But not double. On an older machine, running BOINC on both CPUs can often make it difficult (not enough memory and L2 cache to go around) to use the machine for other things at the same time.

So running on just one virtual core is a reasonable compromise between your desire to help the project, and your need to use your machine for other things.
Rosetta Moderator: Mod.Sense
ID: 64314 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
DJStarfox

Send message
Joined: 19 Jul 07
Posts: 145
Credit: 1,242,482
RAC: 273
Message 64359 - Posted: 3 Dec 2009, 14:51:04 UTC - in response to Message 64304.  
Last modified: 3 Dec 2009, 14:51:36 UTC

I have a P4 system and use option 3. While task manager shows this only using 50% of the CPU it's actually using all of the physical CPU's resources and it's only the virtual CPU (i.e. the spare hyperthreaded units) that aren't being utilised, so task manager can be ignored.


That is interesting. Task Manager was confusing me on this because it does say 50%, but you have cleared it up for me. I do use this computer for other things, so it looks like I'll be sticking with option 3. Thanks for the info.


Yeah, you had it to crunch 50% of 50%.... I think what you want it to be instead is:

On multiprocessors, use at most: 50 % of the processors
Use at most: 100 percent of CPU time

Also, in the taskmanager, set it to show separate graph for each CPU. :)
ID: 64359 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote

Message boards : Number crunching : Hyperthreading with 1 core



©2024 University of Washington
https://www.bakerlab.org