multiple cpu's and multiple projects

Message boards : Number crunching : multiple cpu's and multiple projects
Message board moderation

To post messages, you must log in.

1 · 2 · Next

AuthorMessage
Profile mikey
Volunteer tester
Avatar

Send message
Joined: 17 Dec 99
Posts: 4215
Credit: 3,474,603
RAC: 0
United States
Message 226318 - Posted: 5 Jan 2006, 13:15:39 UTC

I have a pc with 4 cpu's, 2 real and 2 virtual, can I setup Boinc to use 2 for one project and 2 for another? Or any other combination I choose?

ID: 226318 · Report as offensive
Aaron Finney
Volunteer tester

Send message
Joined: 11 Feb 02
Posts: 73
Credit: 202,674
RAC: 0
United States
Message 226319 - Posted: 5 Jan 2006, 13:19:38 UTC - in response to Message 226318.  
Last modified: 5 Jan 2006, 13:20:49 UTC

I have a pc with 4 cpu's, 2 real and 2 virtual, can I setup Boinc to use 2 for one project and 2 for another? Or any other combination I choose?


No.. you can't really have it setup that way. It's best just to let the scheduler handle your project debt.
ID: 226319 · Report as offensive
Profile Paul D. Buck
Volunteer tester

Send message
Joined: 19 Jul 00
Posts: 3898
Credit: 1,158,042
RAC: 0
United States
Message 226331 - Posted: 5 Jan 2006, 13:58:48 UTC

On my dual Xeons, when I have one project the system obviously does just that one project. If I have more than one, one or more CPUs will work on one project, and the others on others.

Because of the simplisity of one portion of the CPU Scheduler this can lead to some isssues that have been identified, and if I got JM VII's message right he has fixed.

WIth, say, 7 projects, my "typical" loading, I may have all 4 CPUs working on one project, or on 4 different ones. Over time, the CPUs will stop and start projects and work as the switch time, resource shares and other factors come into play.

Over time, you will do the work according to the resource allocations you have selected.
ID: 226331 · Report as offensive
Profile trux
Volunteer tester
Avatar

Send message
Joined: 6 Feb 01
Posts: 344
Credit: 1,127,051
RAC: 0
Czech Republic
Message 226362 - Posted: 5 Jan 2006, 15:40:22 UTC

Please keep on mind that current official BOINC clients launch project applications without the CPU affinity set. It means, even if there are multiple applications running, they are all being processed by all available CPU's - so actually it is the OS that decides which instructions are being processed by which CPU.

If you want to assure that each application instance is being calculated by only one CPU, you can use the modified client from http://boinc.truxoft.com, that allows setting the CPU affinity. Theoretically, it can lead to better and more efficient usage of the CP cache, and faster calculation. Practically, you have to test it, to see if it has any impact. With that client version, you can also modify the process priority, but similarly - you have to test whether it has any positive impact, and whether it does not otherwise slow down other important tasks on your machine.
trux
BOINC software
Freediving Team
Czech Republic
ID: 226362 · Report as offensive
Profile mikey
Volunteer tester
Avatar

Send message
Joined: 17 Dec 99
Posts: 4215
Credit: 3,474,603
RAC: 0
United States
Message 226420 - Posted: 5 Jan 2006, 17:45:17 UTC - in response to Message 226331.  

On my dual Xeons, when I have one project the system obviously does just that one project. If I have more than one, one or more CPUs will work on one project, and the others on others.
Because of the simplisity of one portion of the CPU Scheduler this can lead to some isssues that have been identified, and if I got JM VII's message right he has fixed.
WIth, say, 7 projects, my "typical" loading, I may have all 4 CPUs working on one project, or on 4 different ones. Over time, the CPUs will stop and start projects and work as the switch time, resource shares and other factors come into play.
Over time, you will do the work according to the resource allocations you have selected.

What I would like to do is to take 3 of my cpus and mark them for Seti only and then set the 4th to run a different project.
Sounds like the boinc.truxoft.com program may work.

ID: 226420 · Report as offensive
Astro
Volunteer tester
Avatar

Send message
Joined: 16 Apr 02
Posts: 8026
Credit: 600,015
RAC: 0
Message 226424 - Posted: 5 Jan 2006, 17:48:28 UTC

I'm not a whiz in cpu management, but how would you identify on particular processor? are they named somewhere in stone?? If they can't be identifies universally, I could see where this might be problematic.

tony

ID: 226424 · Report as offensive
Profile Tern
Volunteer tester
Avatar

Send message
Joined: 4 Dec 03
Posts: 1122
Credit: 13,376,822
RAC: 44
United States
Message 226430 - Posted: 5 Jan 2006, 18:00:18 UTC - in response to Message 226362.  
Last modified: 5 Jan 2006, 18:01:32 UTC

that allows setting the CPU affinity


Trux, I don't understand the details of what will happen when you use this... I see that in the "normal" state, where 4 CPUs are running 4 projects, having each dedicated to a single processor will improve performance. I don't follow what will happen when the scheduler decides that it needs to be running, say, 3 SETIs; does the CPU affinity setting prevent this from happening? Do all three run on the same CPU, leaving 2 CPUs idle?

If I had a Quad, I'd play with it... :-)

I'm not a whiz in cpu management, but how would you identify on particular processor?


Tony, they're numbered 0-n.
ID: 226430 · Report as offensive
paperdragon
Volunteer tester
Avatar

Send message
Joined: 27 Aug 99
Posts: 174
Credit: 1,452,115
RAC: 0
Canada
Message 226435 - Posted: 5 Jan 2006, 18:11:52 UTC

have you tried setting the resource share accordingly?

If you view all the computing time of your computer as 100%, then each processor of your processors does 25% of the work. So SETI will get 3 processors worth, which is equal to 25 + 25 +25 or 75. The other project will get one processors worth or 25.

So SETI resource share would be 75, and the other project would have a resource share of 25.


You need a second life? Seconlife.com
ID: 226435 · Report as offensive
Profile Paul D. Buck
Volunteer tester

Send message
Joined: 19 Jul 00
Posts: 3898
Credit: 1,158,042
RAC: 0
United States
Message 226445 - Posted: 5 Jan 2006, 18:27:07 UTC

Setting processor affinity only affects work units that are running. And, at this time, without manuall intervention on each and every work unit, it is not practical to "force" a 3 and 1 ratio.

Even if you did, other tasks on the computer will over time cause a shift in the actual allocation. So, though it will not AT ALL TIMES be running 3 and 1, over time, if you don't sweat it, you will see a 3 and 1 ratio. And, most likely, most of the time you will also see this on your running system.

But, you cannot force it to work this way at this time.
ID: 226445 · Report as offensive
Profile mikey
Volunteer tester
Avatar

Send message
Joined: 17 Dec 99
Posts: 4215
Credit: 3,474,603
RAC: 0
United States
Message 226454 - Posted: 5 Jan 2006, 18:33:18 UTC - in response to Message 226435.  

have you tried setting the resource share accordingly?

If you view all the computing time of your computer as 100%, then each processor of your processors does 25% of the work. So SETI will get 3 processors worth, which is equal to 25 + 25 +25 or 75. The other project will get one processors worth or 25.

So SETI resource share would be 75, and the other project would have a resource share of 25.

did not make any difference.
ALL 4 work on one project and then ALL 4 switch to the other project.

ID: 226454 · Report as offensive
Profile mikey
Volunteer tester
Avatar

Send message
Joined: 17 Dec 99
Posts: 4215
Credit: 3,474,603
RAC: 0
United States
Message 226457 - Posted: 5 Jan 2006, 18:36:03 UTC - in response to Message 226445.  

Setting processor affinity only affects work units that are running. And, at this time, without manuall intervention on each and every work unit, it is not practical to "force" a 3 and 1 ratio.

Even if you did, other tasks on the computer will over time cause a shift in the actual allocation. So, though it will not AT ALL TIMES be running 3 and 1, over time, if you don't sweat it, you will see a 3 and 1 ratio. And, most likely, most of the time you will also see this on your running system.

But, you cannot force it to work this way at this time.

It seems as though you are correct, I have tried what I know how to do and it just puts all cpus onto one project and then suspends it and then all 4 cpus switch to the other project.
Maybe this is an idea for a future release of Boinc for those with multiple cpus.

ID: 226457 · Report as offensive
Profile Paul D. Buck
Volunteer tester

Send message
Joined: 19 Jul 00
Posts: 3898
Credit: 1,158,042
RAC: 0
United States
Message 226459 - Posted: 5 Jan 2006, 18:37:45 UTC - in response to Message 226454.  

did not make any difference.
ALL 4 work on one project and then ALL 4 switch to the other project.

Which is what I am telling you. You cannot make BOINC run that way. If you let it be, over time it will do 75% work on one project and 25% on the other. Many times it will run 4/0, 3/1, or 2/2. But, give it a couple hours to work on its ratios and debts. BOINC will NOT turn on a dime. It takes time for the CPU Scheduler to "settle" in ...
ID: 226459 · Report as offensive
Profile mikey
Volunteer tester
Avatar

Send message
Joined: 17 Dec 99
Posts: 4215
Credit: 3,474,603
RAC: 0
United States
Message 226460 - Posted: 5 Jan 2006, 18:38:16 UTC - in response to Message 226424.  

I'm not a whiz in cpu management, but how would you identify on particular processor? are they named somewhere in stone?? If they can't be identifies universally, I could see where this might be problematic.

tony

That seems to be the current problem, no way to pick which cpu does what. truxoft seems to set it so each project stays with the cpu that it started on, but I do not see a way to put 3 cpus on Seti and 1 cpu on a different project.

ID: 226460 · Report as offensive
Profile mikey
Volunteer tester
Avatar

Send message
Joined: 17 Dec 99
Posts: 4215
Credit: 3,474,603
RAC: 0
United States
Message 226461 - Posted: 5 Jan 2006, 18:40:22 UTC - in response to Message 226430.  

that allows setting the CPU affinity


Trux, I don't understand the details of what will happen when you use this... I see that in the "normal" state, where 4 CPUs are running 4 projects, having each dedicated to a single processor will improve performance. I don't follow what will happen when the scheduler decides that it needs to be running, say, 3 SETIs; does the CPU affinity setting prevent this from happening? Do all three run on the same CPU, leaving 2 CPUs idle?
If I had a Quad, I'd play with it... :-)

There does not seem to be a way to do it, I have tried the different ideas posted here and some of my own but the 4 cpus all work on one project, suspend it for a bit and start on the other project, using the percentage settings I have set up.

ID: 226461 · Report as offensive
Profile Lee Carre
Volunteer tester

Send message
Joined: 21 Apr 00
Posts: 1459
Credit: 58,485
RAC: 0
Channel Islands
Message 227297 - Posted: 7 Jan 2006, 0:54:13 UTC

tony, yes there is a way to identify/specify an individual/specific processor, although i don't know the details on how this works, i know it's possible

i think trux's client isn't to make sure something only runs on just 1 processor, because all the apps are single threaded anyway, so can't run on more than one (might be an advantage for CPDN to use multi-threading thou)

i think it's so that, say you have a 4 CPU system (2 real and 2/4 virtual (depending on how you look at it)) for best performance you want 2 tasks, each using a different real processor, thus the only way to make sure the OS doesn't have 2 tasks using the same real CPU is to use affinity to tell it to use CPU1 and CPU2 (different hardware CPUs) rather than CPU1 and CPU2 (same hardware CPU)

(windows, at least, numbers physical CPUs first, then virtual ones, so CPU1 and CPU3 are virual CPUs of the same physical CPU, and CPU2 and CPU4 are on the same physical CPU.....

real1 - CPU1
real2 - CPU2
virtual1 - CPU3
virtual2 - CPU4)
ID: 227297 · Report as offensive
Profile trux
Volunteer tester
Avatar

Send message
Joined: 6 Feb 01
Posts: 344
Credit: 1,127,051
RAC: 0
Czech Republic
Message 227721 - Posted: 7 Jan 2006, 22:34:17 UTC - in response to Message 226430.  
Last modified: 7 Jan 2006, 22:36:32 UTC

Trux, I don't understand the details of what will happen when you use this... I see that in the "normal" state, where 4 CPUs are running 4 projects, having each dedicated to a single processor will improve performance. I don't follow what will happen when the scheduler decides that it needs to be running, say, 3 SETIs; does the CPU affinity setting prevent this from happening? Do all three run on the same CPU, leaving 2 CPUs idle?
If BOINC launches more processes than CPU's available (that does not happen unless something is screwed up), then the extra process is assigned no affinity by my client (it means it may be processed by all CPU's). When there are fewer processes permitted in your preference than CPU's, or when for some reason there is no work available for all processors, then the remaining ones will stay unused by any BOINC project (they are still used by the BOINC client itself though - but it doesn't put a lot of load on them).

And that's the exact purpose of the feature: imagine you have a server with four processors; know that it is currently overpowered for your needs, so you dedicate 2 CPU's to BOINC. Normally, with the official client, although only two WU processes are launched, all four processors may work on them (since they have no CPU affinity assigned). Although the S@H application is not developed as multithread, there are plenty of subroutines that can be processed in threads. Just view the number of threads in Task Manager, and you'll see that they are mostly at least two threads per S@H process. It means that even if you limit the number of CPU's to be used by BOINC to two in your global references, it still may suck power from all four of them. This won't happen with my client, when the CPU affinity assignment is enabled. You can then really have some of the CPU's completely free for other tasks.

As for assigning individual project to individual CPU's - that's currently not available, but certainly possible.

trux
BOINC software
Freediving Team
Czech Republic
ID: 227721 · Report as offensive
kevint
Volunteer tester

Send message
Joined: 17 May 99
Posts: 414
Credit: 11,680,240
RAC: 0
United States
Message 234433 - Posted: 20 Jan 2006, 21:06:04 UTC - in response to Message 227721.  

Thanks for the link Trux -
Is there a mod that can be programed into Boinc that will allow me to dedicate cpus to different boinc projects ?
If I am running rosetta, einstien etc.. I only want it to run on a single processor - (not all 4 or 2 depending on the machine), while I have have the other 2 cpus running seti -
There must be some type of configuration that can handle this.
I am not a programmer now - at least I have not touched a line of code in a couple of years but have some experiance in the art.

Thank you


ID: 234433 · Report as offensive
John McLeod VII
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 15 Jul 99
Posts: 24806
Credit: 790,712
RAC: 0
United States
Message 234435 - Posted: 20 Jan 2006, 21:08:17 UTC - in response to Message 234433.  

Thanks for the link Trux -
Is there a mod that can be programed into Boinc that will allow me to dedicate cpus to different boinc projects ?
If I am running rosetta, einstien etc.. I only want it to run on a single processor - (not all 4 or 2 depending on the machine), while I have have the other 2 cpus running seti -
There must be some type of configuration that can handle this.
I am not a programmer now - at least I have not touched a line of code in a couple of years but have some experiance in the art.

Thank you


There is not any good way of doing a mod that will guarantee this. However, I am working on a scheduler mod that will tend to do this under most circimstances.


BOINC WIKI
ID: 234435 · Report as offensive
kevint
Volunteer tester

Send message
Joined: 17 May 99
Posts: 414
Credit: 11,680,240
RAC: 0
United States
Message 234438 - Posted: 20 Jan 2006, 21:10:08 UTC - in response to Message 234435.  

Thanks for the link Trux -
Is there a mod that can be programed into Boinc that will allow me to dedicate cpus to different boinc projects ?
If I am running rosetta, einstien etc.. I only want it to run on a single processor - (not all 4 or 2 depending on the machine), while I have have the other 2 cpus running seti -
There must be some type of configuration that can handle this.
I am not a programmer now - at least I have not touched a line of code in a couple of years but have some experiance in the art.

Thank you


There is not any good way of doing a mod that will guarantee this. However, I am working on a scheduler mod that will tend to do this under most circimstances.


That would be very cool, as it seems that Rosetta has a BIG problem with the switching between apps - I found out that I must have "leave in membry" so the WU does not abort when boinc decides it is time to work on something else for awhile.

ID: 234438 · Report as offensive
Profile Dorsai
Avatar

Send message
Joined: 7 Sep 04
Posts: 474
Credit: 4,504,838
RAC: 0
United Kingdom
Message 234445 - Posted: 20 Jan 2006, 21:16:27 UTC

It would be nice if it was possible to set a Boinc PC up such that it could do 2 differenct things at onece, or more, depending on the CPU's it had.

If it had a 50:50 share (and 2 CPU), it did one task on one CPU, and another task onthe otehr CPU, for example.

or, if it was 50:25:25 (2 cpu), it did one thing on one cpu, and alternated between the two others on the other CPU.

ATM, it insists on doing one thing at a time. This meens multi CPU systems have to have multi WU's to crunch for each project.

Oh well, I'm sure the Devs will work out how to please every body, all the time, sometime.



Foamy is "Lord and Master".
(Oh, + some Classic WUs too.)
ID: 234445 · Report as offensive
1 · 2 · Next

Message boards : Number crunching : multiple cpu's and multiple projects


 
©2025 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.