Message boards : Number crunching : Tip: How to obtain zero GPU buffer size and normal CPU buffer size
Author | Message |
---|---|
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. | |
ID: 39554 | Rating: 0 | rate: / Reply Quote | |
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: / Reply Quote | |
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. | |
ID: 39562 | Rating: 0 | rate: / Reply Quote | |
Jim, the drawbacks of your solution are: | |
ID: 39714 | Rating: 0 | rate: / Reply Quote | |
- you can't set up a real backup project 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: / Reply Quote | |
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: / Reply Quote | |
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: / Reply Quote | |
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: / Reply Quote | |
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. 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: / Reply Quote | |
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. 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: / Reply Quote | |
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: / Reply Quote | |
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. 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: / Reply Quote | |
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: / Reply Quote | |
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. 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: / Reply Quote | |
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: / Reply Quote | |
Saw my name dropped a couple times here. Chuckled. | |
ID: 39796 | Rating: 0 | rate: / Reply Quote | |
(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: / Reply Quote | |
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: / Reply Quote | |
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: / Reply Quote | |
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: / Reply Quote | |
Have you tried gaming while simply letting the GPU crunch? I know it will not always work well, but for some games (e.g. Civ V) I really don't mind it. In fact I feel less guilty for "wasting" my time with that if at least the GPU continues to do so real work ;) | |
ID: 40590 | Rating: 0 | rate: / Reply Quote | |
Variable wrote: 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? I have been able to get two clients running but it has been a while. Here is a thread over on the Test4Theory project that has some discussion about getting two clients to run at the same time. Be sure to read all the way through the thread as there are suggestions offered throughout. http://lhcathome2.cern.ch/vLHCathome/forum_thread.php?id=1154&postid=13411 Also, here is a post over at WCG that I put together for Ubuntu. Windows is a bit different, but maybe this will help. https://secure.worldcommunitygrid.org/forums/wcg/viewpostinthread?post=460711 Obviously, you will have to put some parameters in the cc_config.xml file for each BOINC client to tell it which GPU to exclude. In Windows, in the BOINC Manager you can click on "Advanced", "Launch another BOINC Manager" and have multiple BOINC managers running at the same time. When you start the second BOINC manager, you can attach to BOINC client #2 and be able to control both clients at the same time. If you get through all this and are still having trouble, let us know and I will try to help. Disclaimer: I had this working for WCG and Test4Theory. I can't remember ever trying it with multiple gpu's on the gpugrid project. If you have trouble with that aspect, let me know and I will do some testing. Hope that helps. | |
ID: 40594 | Rating: 0 | rate: / Reply Quote | |
There is another way to do this. | |
ID: 40595 | Rating: 0 | rate: / Reply Quote | |
Message boards : Number crunching : Tip: How to obtain zero GPU buffer size and normal CPU buffer size