Dual Core Question

Message boards : Number crunching : Dual Core Question
Message board moderation

To post messages, you must log in.

AuthorMessage
Doug

Send message
Joined: 24 Nov 05
Posts: 17
Credit: 459,347
RAC: 0
United States
Message 439348 - Posted: 18 Oct 2006, 19:29:34 UTC

Im running an AMD 4800+ Dual and I was wondering if I should try to optomize it a little.

Right now each core crunches seperate files doing pretty well at it too. But could I optomize it to use both cores on 1 file instead, and would it really speed the process up any?
ID: 439348 · Report as offensive
Hans Dorn
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 3 Apr 99
Posts: 2262
Credit: 26,448,570
RAC: 0
Germany
Message 439352 - Posted: 18 Oct 2006, 19:43:32 UTC - in response to Message 439348.  

Im running an AMD 4800+ Dual and I was wondering if I should try to optomize it a little.

Right now each core crunches seperate files doing pretty well at it too. But could I optomize it to use both cores on 1 file instead, and would it really speed the process up any?


Interesting idea :o)

Seti doesn't support crunching a single WU with multiple threads ATM, though....

This would be more interesting for dual core CPUs with joined L2 cache, I guess.
(i.e. Core duo / Core2 duo)

AFAIK the Athlon64 has separate L2 caches for each core.


Regards Hans
ID: 439352 · Report as offensive
Grant (SSSF)
Volunteer tester

Send message
Joined: 19 Aug 99
Posts: 13736
Credit: 208,696,464
RAC: 304
Australia
Message 439365 - Posted: 18 Oct 2006, 20:10:57 UTC - in response to Message 439348.  

...and would it really speed the process up any?

No more than 2 Work Units being procesed at the same time, and probably be slightly slower due to the overheads of splitting the data & keping it clean.

Grant
Darwin NT
ID: 439365 · Report as offensive
Doug

Send message
Joined: 24 Nov 05
Posts: 17
Credit: 459,347
RAC: 0
United States
Message 439375 - Posted: 18 Oct 2006, 20:22:41 UTC

Thanks for the input folks.
ID: 439375 · Report as offensive
bigjohn
Avatar

Send message
Joined: 3 May 01
Posts: 20
Credit: 4,902,549
RAC: 75
United States
Message 440299 - Posted: 20 Oct 2006, 3:08:18 UTC

Not to hijack this thread, but I run the same hardware...

I've set my preferences to use only ONE cpu, yet the seti application in task manager still shows affinity for both cores.

So, I've selected the seti job(s) and manually adjusted their affinity. This lasts until the workunit is done - aparently the BIONIC manager re-initializes the application for each work unit?

I want to assign BIONIC to use no more than 50% total CPU on one core, and keep it that way. Any thoughts?
ID: 440299 · Report as offensive
Profile zoom3+1=4
Volunteer tester
Avatar

Send message
Joined: 30 Nov 03
Posts: 65745
Credit: 55,293,173
RAC: 49
United States
Message 440304 - Posted: 20 Oct 2006, 3:36:28 UTC

When I start one of My nVidia based AMD motherboards I have to set the affinity for both tasks for either cpu0 or cpu1(Dual socket motherboard) as I'm using Speedfan 1.29 and It takes 50% of a cpus capacity for the first 30-40 minutes(It's lookin for temperature sensors cause nvidia has told the author of speedfan that they won't release that info, go figure), So Yeah one can force the two on to one core, But currently there isn't that I'm aware of any way to run 2 more seti tasks yet, It does look intriguing, But as soon as the 2nd core is freed up, I turn the cpus back to what they were like before.
The T1 Trust, PRR T1 Class 4-4-4-4 #5550, 1 of America's First HST's
ID: 440304 · Report as offensive
kittyman Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 9 Jul 00
Posts: 51468
Credit: 1,018,363,574
RAC: 1,004
United States
Message 440337 - Posted: 20 Oct 2006, 6:01:56 UTC - in response to Message 440299.  

Not to hijack this thread, but I run the same hardware...

I've set my preferences to use only ONE cpu, yet the seti application in task manager still shows affinity for both cores.

So, I've selected the seti job(s) and manually adjusted their affinity. This lasts until the workunit is done - aparently the BIONIC manager re-initializes the application for each work unit?

I want to assign BIONIC to use no more than 50% total CPU on one core, and keep it that way. Any thoughts?


Could this be yet another problem with changes to preferences not taking effect? Perhaps your preference setting of only using 1 cpu is not being used by Boinc.
"Freedom is just Chaos, with better lighting." Alan Dean Foster

ID: 440337 · Report as offensive
Doug

Send message
Joined: 24 Nov 05
Posts: 17
Credit: 459,347
RAC: 0
United States
Message 440342 - Posted: 20 Oct 2006, 6:24:51 UTC

Interestingly enough the fact that it will use seperate cores for seperate process's doesnt bother me. The only game I really play is Planetside and it only uses one core on a dual core system anyways(or else you run around twice as fast as you should and get the ban hammer dropped on you).

It doesnt interfere as Planetside max's out the core it wants to use so the WU gets postponed until I stop playing.

As far as pref's go, I thought that by setting my contact server to every 1.5 days it would download enough work to keep itself busy for approximately that amount of time, however if that is true it isnt doing it.
ID: 440342 · Report as offensive
bigjohn
Avatar

Send message
Joined: 3 May 01
Posts: 20
Credit: 4,902,549
RAC: 75
United States
Message 440533 - Posted: 20 Oct 2006, 13:54:13 UTC

I think it is indeed a distinct possibility that preferences are not being properly called. Either that or "one CPU" to BIONC is being interpreted differently than Windows. You should be able in your preferences, when setting that option, to choose which CPU as well.
ID: 440533 · Report as offensive
Profile Jim-R.
Volunteer tester
Avatar

Send message
Joined: 7 Feb 06
Posts: 1494
Credit: 194,148
RAC: 0
United States
Message 440564 - Posted: 20 Oct 2006, 15:40:31 UTC - in response to Message 440342.  

Interestingly enough the fact that it will use seperate cores for seperate process's doesnt bother me. The only game I really play is Planetside and it only uses one core on a dual core system anyways(or else you run around twice as fast as you should and get the ban hammer dropped on you).

It doesnt interfere as Planetside max's out the core it wants to use so the WU gets postponed until I stop playing.

As far as pref's go, I thought that by setting my contact server to every 1.5 days it would download enough work to keep itself busy for approximately that amount of time, however if that is true it isnt doing it.

It's true that right now we are having problems updating preferences from our servers. My suggestion is if you are not already attached to another project, join and attach to another project, make changes to your settings there and update that project. The changes will migrate through all projects and will take effect. If you do not care to run the other project simply unattach from it after you have made the changes and updated them.
Jim

Some people plan their life out and look back at the wealth they've had.
Others live life day by day and look back at the wealth of experiences and enjoyment they've had.
ID: 440564 · Report as offensive
Profile Benher
Volunteer developer
Volunteer tester

Send message
Joined: 25 Jul 99
Posts: 517
Credit: 465,152
RAC: 0
United States
Message 440576 - Posted: 20 Oct 2006, 16:17:51 UTC
Last modified: 20 Oct 2006, 16:19:50 UTC

Hello all,

It has been questioned in the past also by Crunch3r and Trux. Trux wrote a specialized version of BOINC to set affinity for launched science applications.

We've also had this discussion over at Chicken's site in the test user area. We are doing some testing of the concept now.

The default for windows or unix, when launching any application (read as science_app started by BOINC manager) is to have it run with full affinities, that is all affinities possible on that machine (can you say infinity affinities?). BOINC does not currently modify this

The operating system interrupts applications (science_apps) all the time to do stuff (respond to mouse movement, key press, internal timers, etc.). These in/outs are called context switches. Whenever the O/S returns to an app, it can get it running on any CPU that is affinity allowed, available, and not percentage "busy" at that time.

This is why, even if you say "use only 1 cpu" the affinities show activity on multiple cores/threads. However BOINC will only launch one science_app per "use __ cpus" value, and the O/S will only let it use 1 CPUs worth of time (eg: 50% on dual, 25% on quad).

Is single affinity useful? Will it make the app crunch faster? Does it matter more or less on Dual core vs Hyperthread vs Multi-CPU systems? How about different CPU vendors, or even generations of CPUs from each vendor? Does whether groups of threads/cores share L2 cache matter?

All good questions. No definitive answers yet.
ID: 440576 · Report as offensive
Profile KWSN - MajorKong
Volunteer tester
Avatar

Send message
Joined: 5 Jan 00
Posts: 2892
Credit: 1,499,890
RAC: 0
United States
Message 440580 - Posted: 20 Oct 2006, 16:19:14 UTC - in response to Message 440533.  
Last modified: 20 Oct 2006, 16:23:51 UTC

I think it is indeed a distinct possibility that preferences are not being properly called. Either that or "one CPU" to BIONC is being interpreted differently than Windows. You should be able in your preferences, when setting that option, to choose which CPU as well.


To BOINC, one CPU = one instance of a science app running at a time. Thread scheduling is up to the OS. The standard BOINC client does not request CPU affinity. On my dual-core system under windows, with only one project running, it 'runs' on both CPUs, in somewhere between a 80%-20% and a 60%-40% split between the two cores. It's the way Windoze handles things. When it is BOINC/SETI's 'turn' to get another time slice, Windoze schedules it on whichever core is next available. Most of the time it is the first one, but sometimes the first one is busy for too long, and it runs on the second core. If I am (almost all the time) running BOINC using both CPUs, Windows schedules things in a similar manner.

I have found that this does not slow things down much. If this does not meet your needs, you need to lobby The Powers That Be to change the BOINC client to actually set the CPU affinity, and change it if circumstances need it to change. Currently, the 'use # of CPUs' preference only causes the standard BOINC client to run additional work at the same time (if, and only if, your computer reports having at least that many CPUs), and does NOT specify which CPU to use for what.

Edit: What Benher said.. They gave a better explanation.
https://youtu.be/iY57ErBkFFE

#Texit

Don't blame me, I voted for Johnson(L) in 2016.

Truth is dangerous... especially when it challenges those in power.
ID: 440580 · Report as offensive
bigjohn
Avatar

Send message
Joined: 3 May 01
Posts: 20
Credit: 4,902,549
RAC: 75
United States
Message 440644 - Posted: 20 Oct 2006, 17:47:56 UTC - in response to Message 440580.  

I think it is indeed a distinct possibility that preferences are not being properly called. Either that or "one CPU" to BIONC is being interpreted differently than Windows. You should be able in your preferences, when setting that option, to choose which CPU as well.


To BOINC, one CPU = one instance of a science app running at a time. Thread scheduling is up to the OS. The standard BOINC client does not request CPU affinity. On my dual-core system under windows, with only one project running, it 'runs' on both CPUs, in somewhere between a 80%-20% and a 60%-40% split between the two cores. It's the way Windoze handles things. When it is BOINC/SETI's 'turn' to get another time slice, Windoze schedules it on whichever core is next available. Most of the time it is the first one, but sometimes the first one is busy for too long, and it runs on the second core. If I am (almost all the time) running BOINC using both CPUs, Windows schedules things in a similar manner.

I have set for "one" cpu, and it's running 2 seti's - so something is not right there.

I have found that this does not slow things down much. If this does not meet your needs, you need to lobby The Powers That Be to change the BOINC client to actually set the CPU affinity, and change it if circumstances need it to change. Currently, the 'use # of CPUs' preference only causes the standard BOINC client to run additional work at the same time (if, and only if, your computer reports having at least that many CPUs), and does NOT specify which CPU to use for what.

Edit: What Benher said.. They gave a better explanation.

On a dual core, the 0 core still has 'priority', if I understand AMD's document correctly. The second core, core 1, is most effective for computationally intensive stuff. If the entire 'workload' fit into the L2 cache, for example, it would not hit any other bottlenecks and would process just as if it were a separate computer..

I may be completely off base, but this leads me to belive that using core 1 for BIONC apps yields the same effective throughput as core 0, yet leaves core 0 for the OS and other resource intensive processes. Of course, being that I don't write machine code (at least not since the Z80), i may be completely off base...

John
ID: 440644 · Report as offensive
Profile Jim-R.
Volunteer tester
Avatar

Send message
Joined: 7 Feb 06
Posts: 1494
Credit: 194,148
RAC: 0
United States
Message 440656 - Posted: 20 Oct 2006, 18:16:13 UTC - in response to Message 440644.  


I have set for "one" cpu, and it's running 2 seti's - so something is not right there.


First did you attach to another project and make changes to your preferences there? As I mentioned we are currently having problems updating preferences from the SETI website. A fix has been found but the server code must be changed before it will be applied.
Second are you sure that it's not just cycling between two work units? Many times if you have work in your cache with a deadline nearer than the one you are crunching at the moment, the client will pause that one and start crunching on the other one.

The "cpu afinity" is to be a part of the new version of BOINC but it has not been released yet.

Jim

Some people plan their life out and look back at the wealth they've had.
Others live life day by day and look back at the wealth of experiences and enjoyment they've had.
ID: 440656 · Report as offensive
Profile STUART

Send message
Joined: 17 Oct 06
Posts: 1
Credit: 1,926
RAC: 0
United Kingdom
Message 441429 - Posted: 21 Oct 2006, 21:44:19 UTC
Last modified: 21 Oct 2006, 21:55:48 UTC

pc is old tec now new apple G5 got a 4 Core cpus2 2.8ghz i think intel
64 gb off ram do youthink it wood run seti faster ? i am think off get 1
ID: 441429 · Report as offensive

Message boards : Number crunching : Dual Core Question


 
©2024 University of California
 
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.