Tip: How to obtain zero GPU buffer size and normal CPU buffer size

Message boards : Number crunching : Tip: How to obtain zero GPU buffer size and normal CPU buffer size
Message board moderation

To post messages, you must log in.

1 · 2 · Next

AuthorMessage
Jim1348

Send message
Joined: 28 Jul 12
Posts: 819
Credit: 1,591,285,971
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39554 - Posted: 21 Jan 2015, 15:07:24 UTC

I run both GPU and CPU projects on BOINC, and maintain a low buffer size to ensure a timely return of GPUGrid work units for the bonus points. However, I would prefer a larger buffer size for the CPU work, but BOINC does not allow for separate buffer sizes for GPU and CPU work.

Recently I tried a technique that allows for effectively zero (0) buffer size for GPUGrid work, while still allowing for any buffer size for CPU work for other projects. To implement it, you just set the Resource Share for GPUGrid to 0 percent in your Account "GPUGRID preferences" settings. Then, you won't get a new work unit until the current one finishes. It takes only about a minute or two on a fast Internet connection to download and start a new work unit after the old one finishes.

Caveats:

(1) You need a version of BOINC that works properly for 0 resource share; some have bugs, but the current released version (7.4.36) works fine.

(2) For this trick to work, you need to run GPUGrid as your only GPU project. That is, if you run other GPU projects, then you will never get GPUGrid work unless the other projects don't have any available.

I have used it on GPUGrid with 3 machines and a total of 4 GPU cards with no problems, while running World Community Grid and Climate Prediction Network for the CPU projects with a normal buffer size.
ID: 39554 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Beyond
Avatar

Send message
Joined: 23 Nov 08
Posts: 1112
Credit: 6,162,416,256
RAC: 0
Level
Tyr
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39561 - Posted: 21 Jan 2015, 16:38:37 UTC - in response to Message 39554.  

I used to do this on all my machines prior to switching to the 750Ti cards. It works. There was a bug that broke the backup project support (0 setting) for quite a while but as you mention it's been fixed in the current version (7.4.36). I think there's a plan to eventually allow separate CPU & GPU queue settings. Jacob Klein could provide more information about if and when this will happen. I also proposed a while ago that a scheduler setting be added to allow an arbitrary smaller queue, perhaps a setting of 1 that would try to maintain 1 hour of work for instance. Never saw any comments in reply on the tread so dropped it at the time. I think it would be a valuable addition.
ID: 39561 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jim1348

Send message
Joined: 28 Jul 12
Posts: 819
Credit: 1,591,285,971
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39562 - Posted: 21 Jan 2015, 16:48:40 UTC - in response to Message 39561.  

Separate GPU and CPU buffer queue settings would be ideal. But the last time I checked on the BOINC forum, it did not seem to be in the cards.
http://boinc.berkeley.edu/dev/forum_thread.php?id=6375&postid=58538#58538

Maybe Jacob can give us an authoritative answer on it.
ID: 39562 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
ExtraTerrestrial Apes
Volunteer moderator
Volunteer tester
Avatar

Send message
Joined: 17 Aug 08
Posts: 2705
Credit: 1,311,122,549
RAC: 0
Level
Met
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39714 - Posted: 25 Jan 2015, 22:49:30 UTC

Jim, the drawbacks of your solution are:

- you can't set up a real backup project
- you'll only ever have 1 GPU-Grid WU at a time. Depending on your upload speed there's goping to be some serious idle time for the GPU

Personally I prefer using small cache setting, around 1/4 of a day, together with backup projects for CPU and GPU.

MrS
Scanning for our furry friends since Jan 2002
ID: 39714 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Beyond
Avatar

Send message
Joined: 23 Nov 08
Posts: 1112
Credit: 6,162,416,256
RAC: 0
Level
Tyr
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39726 - Posted: 26 Jan 2015, 18:26:34 UTC - in response to Message 39714.  

- you can't set up a real backup project
- you'll only ever have 1 GPU-Grid WU at a time. Depending on your upload speed there's going to be some serious idle time for the GPU

Two of the reasons I proposed the "1" setting that would try to maintain a small amount of work (proposed 1 hour). This would address both of the above issues.
ID: 39726 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jim1348

Send message
Joined: 28 Jul 12
Posts: 819
Credit: 1,591,285,971
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39730 - Posted: 26 Jan 2015, 20:58:01 UTC - in response to Message 39714.  


- you can't set up a real backup project
- you'll only ever have 1 GPU-Grid WU at a time. Depending on your upload speed there's goping to be some serious idle time for the GPU

Personally I prefer using small cache setting, around 1/4 of a day, together with backup projects for CPU and GPU.

MrS

I used that too for a long time, but decided that I wanted a larger CPU cache. The idle time is less than 2 minutes for me (see above). I get 30 Mbps down and 3.5 Mbps up as measured (I don't know what the official rating is anymore - they keep changing it). So what works for me may not work for everyone, but I doubt that it would be more than 5 minutes in most areas these days, not a major loss. I have not used a backup for GPUGrid anyway, as it has not really been necessary, but yes you lose that advantage.

The BOINC scheduler often does its own thing with scheduling, and I try to avoid multiple projects when possible. In my case, World Community Grid provides its own backup for the CPU, as it includes multiple projects and is usually quite reliable.

I just offer this as an option in case anyone wants it, but don't particularly advocate it.
ID: 39730 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jim1348

Send message
Joined: 28 Jul 12
Posts: 819
Credit: 1,591,285,971
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39732 - Posted: 26 Jan 2015, 21:05:06 UTC - in response to Message 39726.  

Two of the reasons I proposed the "1" setting that would try to maintain a small amount of work (proposed 1 hour). This would address both of the above issues.

The "1" setting addresses the relative amount of time that you devote to one project versus another, but does not change the absolute amount of work in the buffer in terms of time. So it is not quite what I am after in trying to maintain a low GPU cache but a normal CPU cache.
ID: 39732 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Retvari Zoltan
Avatar

Send message
Joined: 20 Jan 09
Posts: 2380
Credit: 16,897,957,044
RAC: 0
Level
Trp
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39733 - Posted: 26 Jan 2015, 22:33:21 UTC - in response to Message 39732.  

So it is not quite what I am after in trying to maintain a low GPU cache but a normal CPU cache.

You can install two separate instance of BOINC manager on a single host, one for low cache setting and the other for normal cache setting, and then add the projects accordingly.
All you have to do is set the advanced options when installing the second copy of BOINC manager, and designate a different program and data folders (for example: add a "2" to the end of their names).
ID: 39733 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jim1348

Send message
Joined: 28 Jul 12
Posts: 819
Credit: 1,591,285,971
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39734 - Posted: 26 Jan 2015, 22:52:45 UTC - in response to Message 39733.  

You can install two separate instance of BOINC manager on a single host, one for low cache setting and the other for normal cache setting, and then add the projects accordingly.
All you have to do is set the advanced options when installing the second copy of BOINC manager, and designate a different program and data folders (for example: add a "2" to the end of their names).

Thanks for the tip. The last time I looked into that it was a pretty involved procedure. Maybe the newer versions of BOINC make it simpler.
ID: 39734 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Richard Haselgrove

Send message
Joined: 11 Jul 09
Posts: 1639
Credit: 10,159,968,649
RAC: 318
Level
Trp
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39735 - Posted: 26 Jan 2015, 23:38:49 UTC - in response to Message 39734.  

You can install two separate instance of BOINC manager on a single host, one for low cache setting and the other for normal cache setting, and then add the projects accordingly.
All you have to do is set the advanced options when installing the second copy of BOINC manager, and designate a different program and data folders (for example: add a "2" to the end of their names).

Thanks for the tip. The last time I looked into that it was a pretty involved procedure. Maybe the newer versions of BOINC make it simpler.

Strictly, you have to install two different copies of the BOINC *client*, and - in theory - you can manage them both with a single instance of the, er, Manager. But that seems to be broken, and (for Windows) BoincTasks seems to handle the scenario much better.
ID: 39735 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jim1348

Send message
Joined: 28 Jul 12
Posts: 819
Credit: 1,591,285,971
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39736 - Posted: 27 Jan 2015, 0:12:54 UTC - in response to Message 39735.  

Strictly, you have to install two different copies of the BOINC *client*, and - in theory - you can manage them both with a single instance of the, er, Manager. But that seems to be broken, and (for Windows) BoincTasks seems to handle the scenario much better.

It is worth a try. I use BoincTasks for much of the management anyway, since I remote into several PCs on the LAN. Thanks.
ID: 39736 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Beyond
Avatar

Send message
Joined: 23 Nov 08
Posts: 1112
Credit: 6,162,416,256
RAC: 0
Level
Tyr
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39737 - Posted: 27 Jan 2015, 4:03:07 UTC - in response to Message 39732.  
Last modified: 27 Jan 2015, 4:03:38 UTC

Two of the reasons I proposed the "1" setting that would try to maintain a small amount of work (proposed 1 hour). This would address both of the above issues.

The "1" setting addresses the relative amount of time that you devote to one project versus another, but does not change the absolute amount of work in the buffer in terms of time. So it is not quite what I am after in trying to maintain a low GPU cache but a normal CPU cache.

Read my 2 previous posts again. The "1" (or whatever) setting was proposed to the BOINC devs (DA) to address the problem you describe. It would tell the client to try to maintain a 1 hour WU buffer for that project. Similar to the "0" setting it would work independently of the present WU buffer.
ID: 39737 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jim1348

Send message
Joined: 28 Jul 12
Posts: 819
Credit: 1,591,285,971
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39743 - Posted: 27 Jan 2015, 9:49:05 UTC - in response to Message 39737.  

Read my 2 previous posts again. The "1" (or whatever) setting was proposed to the BOINC devs (DA) to address the problem you describe. It would tell the client to try to maintain a 1 hour WU buffer for that project. Similar to the "0" setting it would work independently of the present WU buffer.

OK, I see what you are saying. But when you say "for that project", I think that means that BOINC needs a separate project resource share option for the GPU and CPU in order to address the situation I am interested in. However, that seems to be precluded by the response I got on the BOINC forum noted above. Maybe there is another way to implement it; I know nothing about how the scheduler works.
ID: 39743 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Beyond
Avatar

Send message
Joined: 23 Nov 08
Posts: 1112
Credit: 6,162,416,256
RAC: 0
Level
Tyr
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39770 - Posted: 27 Jan 2015, 19:07:13 UTC - in response to Message 39743.  

Read my 2 previous posts again. The "1" (or whatever) setting was proposed to the BOINC devs (DA) to address the problem you describe. It would tell the client to try to maintain a 1 hour WU buffer for that project. Similar to the "0" setting it would work independently of the present WU buffer.

OK, I see what you are saying. But when you say "for that project", I think that means that BOINC needs a separate project resource share option for the GPU and CPU in order to address the situation I am interested in. However, that seems to be precluded by the response I got on the BOINC forum noted above. Maybe there is another way to implement it; I know nothing about how the scheduler works.

Just like the "0" backup project setting is set for the project (more precisely the default, home, work or school setting within the project preferences), the "1" (1 hour) setting would likewise be for that project. For instance, set up GPUGRID NV GPUs with a 1 hour buffer by using my proposed "1" setting and set up your other CPU projects to use whatever you like. If not using a "0" or a "1" they'd work as the current normal project resource shares. Surely you see the advantage for projects such as GPUGRID, the buffer would stay at 1 hour and all other projects could have normal resource shares. No waste of the long UL/DL times you have with the "0" setting.
ID: 39770 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jim1348

Send message
Joined: 28 Jul 12
Posts: 819
Credit: 1,591,285,971
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39777 - Posted: 27 Jan 2015, 21:26:02 UTC - in response to Message 39770.  

My point was not the desirability of it, but the feasibility. I don't know if they can implement it.
ID: 39777 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jacob Klein

Send message
Joined: 11 Oct 08
Posts: 1127
Credit: 1,901,927,545
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39796 - Posted: 28 Jan 2015, 13:08:51 UTC

Saw my name dropped a couple times here. Chuckled.

The original poster's idea of setting GPUGrid as a backup project, will work great on a computer that is constantly connected to the internet and is not attached to any other GPU projects.

Retvari's solution is even more clean, in the sense that you can have a "GPU instance" of BOINC with a low cache, and still be attached to multiple GPU projects, with that instance being separate from your "CPU instance". However, setting it up can be a bit tricky.

Personally, I go the middle-ground route, where I keep my cache setting at 0.5 days minimum, with 0.2 days max additional. I'm not terribly worried about GPUGrid bonus credits, and the settings work nicely to make sure I never have more than 0.7 days of work stored, while also minimizing RPC calls by only contacting projects 5 times a day with that 0.2 setting.

As far as BOINC development goes, although there will be a slight reshuffle of BOINC preferences, it will be subtle, and will not include anything awesome like profiles or resource-specific resource shares, or anything of that nature. I wouldn't count on that changing.

Regards,
Jacob
ID: 39796 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jim1348

Send message
Joined: 28 Jul 12
Posts: 819
Credit: 1,591,285,971
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 40232 - Posted: 22 Feb 2015, 17:05:28 UTC - in response to Message 39554.  

(2) For this trick to work, you need to run GPUGrid as your only GPU project. That is, if you run other GPU projects, then you will never get GPUGrid work unless the other projects don't have any available.

It turns out that that is not entirely correct. During the recent GPUGrid work unit shortages, I added POEM, and also set it as "0 percent" resource share. It works fine; when GPUGrid does not have work, it switches to POEM, and vice-versa.

If both projects have work, then it alternates between the two, I suppose in order to maintain equal shares (0) for both. It works for me.
ID: 40232 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jacob Klein

Send message
Joined: 11 Oct 08
Posts: 1127
Credit: 1,901,927,545
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 40237 - Posted: 23 Feb 2015, 2:57:17 UTC - in response to Message 40232.  

Every project has a "priority" value, even if it has 0 resource share. You can actually look at that value if you look at the Project Properties in BOINC. And BOINC uses those values, as guidelines, when determining which projects to schedule to run, and which projects to ask for work. Fun.
ID: 40237 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Variable

Send message
Joined: 20 Nov 13
Posts: 21
Credit: 480,846,415
RAC: 0
Level
Gln
Scientific publications
watwatwatwatwatwatwatwatwatwat
Message 40544 - Posted: 20 Mar 2015, 14:08:16 UTC - in response to Message 39796.  

Retvari's solution is even more clean, in the sense that you can have a "GPU instance" of BOINC with a low cache, and still be attached to multiple GPU projects, with that instance being separate from your "CPU instance". However, setting it up can be a bit tricky.


I haven't tried yet but would like to implement two separate BOINCs on my main desktop machine if possible. I play games on it during which the BOINC manager will auto-idle, but games only need the primary GPU's resources and there's no need to idle the second GPU along with it. If this is tricky to do, is there a guide/tutorial anywhere?
ID: 40544 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jacob Klein

Send message
Joined: 11 Oct 08
Posts: 1127
Credit: 1,901,927,545
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 40574 - Posted: 22 Mar 2015, 4:32:46 UTC

I won't be able to help you. I attempted it once, and didn't have much luck. Maybe Retvari can explain it. Sorry.
ID: 40574 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
1 · 2 · Next

Message boards : Number crunching : Tip: How to obtain zero GPU buffer size and normal CPU buffer size

©2025 Universitat Pompeu Fabra