Separate schedules for separate GPUs

Message boards : Questions and problems : Separate schedules for separate GPUs
Message board moderation

To post messages, you must log in.

AuthorMessage
rjenkins

Send message
Joined: 1 Apr 10
Posts: 4
Poland
Message 31893 - Posted: 1 Apr 2010, 6:46:00 UTC

I'm running Linux version of BOINC (6.10.17). I have 2 nvidia GPUs - 8600GT and GT220 - on a newly aquired dual PCI-16x motherboard. Now I run GPUGrid on the GT220 but would like to run PowerGrid on the 8600GT. BUT! using the computer (including watching HD movies) is a bit sluggish while running BOINC and that's why I bought the dual video card motherboard. I have my PC running 24hr. I would like to achieve the following:

1- GT220 will be dedicated to GPUGrid only and run 24hr (already working)

2- 8600GT will be dedicated to PowerGrid only and run from say midnight to 8:00am (while I'm not using the PC)

3- I do not want BOINC to use the GT220 to run PowerGrid (waste of power) and do not want BOINC to run GPUGrid (too slow).

Now using the GPUexclusiveApp option will not work since it will stop both GPUs (not good). Cannot use the built-in schedule capability either since it will also stop both GPUs (not good).

Tried to run 2 instances of BOINC in 2 separate folders and 2 separate cc_config but no success.

Any bright mind out there with some idea how to achieve this?

Thanks
ID: 31893 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5082
United Kingdom
Message 31895 - Posted: 1 Apr 2010, 9:25:34 UTC

There's a configuration directive available for <ignore_cuda_dev>, which allows you to deselect a particular device by ID. You could have a 'day' cc_config.xml file which ignores the 8600GT, and a 'night' file which allows it to be used - use a timed script to switch them over. [You'd need to upgrade BOINC to at least v6.10.19 for this to work].

That would help with the sluggishness and the movie-watching: haven't thought of a way of pinning the applications, though you could suspend/resume the PowerGrid project at the same times in the script.
ID: 31895 · Report as offensive
rjenkins

Send message
Joined: 1 Apr 10
Posts: 4
Poland
Message 31897 - Posted: 1 Apr 2010, 11:05:02 UTC - in response to Message 31895.  

Hey, that's right! I did read about it and yes a script should do the trick.

I don't believe BOINC would stop GPUGrid on one GPU to give the next time slot to PrimeGrid (like it does on the CPU, giving each project his "share") since PrimeGrid is already working on the other GPU. But then. who know's how this thing works...

Definitively will give it a try. For those who might be interested I will post the results of this "experiment".

Thanks a lot.
ID: 31897 · Report as offensive
rjenkins

Send message
Joined: 1 Apr 10
Posts: 4
Poland
Message 31898 - Posted: 1 Apr 2010, 18:27:57 UTC - in response to Message 31897.  

Ok, not too good.

The stupid BOINC will activate a second GPUGrid WU on the second GPU as soon as I suspend PowerGrid. I would have to de-activate the slow GPU using the "ignore_CUDA" function and then suspend PowerGrid during the day and perform the reverse at night. But seems like my script is not working properly. Even when I have it to work by doing it manually (from the command line), damm BOINC wastes no time and start downloading a new WU for the available GPU and as you know, you don't want to download GPUGrid WU too early because you will loose the early report bonus....

The only other solution would be to either:

1) force BOINC into limiting the number of active WU for a given project (in my case GPUGrid) to 1 so that when I stop PowerGrid, it won't download a new WU

2) run 2 separate instances of BOINC where in the first one, I have GPUGrid project attached and in the second, PowerGrid. Using the appropriate "ignore_CUDA" function in each instance, I can have one BOINC using one GPU and the second BOINC using the other GPU.

Anybody knows how to do one of the above???? Digging the Web but didn't find anything yet.
ID: 31898 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5082
United Kingdom
Message 31899 - Posted: 1 Apr 2010, 18:34:07 UTC - in response to Message 31898.  

Set networking off
Disable GPU
Suspend proect
Set networking on

and reverse?
ID: 31899 · Report as offensive
rjenkins

Send message
Joined: 1 Apr 10
Posts: 4
Poland
Message 31915 - Posted: 2 Apr 2010, 17:46:46 UTC - in response to Message 31899.  

Ok, I give up. Tried a few things, including running 2 separate BOINC clients and using Boincview to access both. I was able to get them up and running with GPUgrid on one and Primegrid on the other, but the second one would not run PrimeGrid on the GPU. It would only download CPU tasks and sit there as I've configured the project only to use GPU.

Then I tried this modified script on a single instance of BOINC:
- stop network
- stop all projects
- close BOINC
- change cc_config to use both GPU
- restart BOINC (which automatically loads the new cc_config file)
- re-activate network
- resume all project activities

Then it will download Primegrid GPU WU as it should, but will sit there and only run GPUgrid on one GPU and Primegrid waiting, even though I can see from the messages list that both GPU are ready and activated.

Bottom line, until (and if ever) BOINC developpers do something about allowing independant schedule and/or parameters for separate GPU, the only hope is to either run projects supported by all GPUs, disable GPU that cannot run the project you want, or the most expensive solution, buy powerful enough GPUs that they will not time out your WU.

So for now, I am just wasting some GPU crunching power.... Not too "green"!!!!

But thanks Richard for your support.
ID: 31915 · Report as offensive

Message boards : Questions and problems : Separate schedules for separate GPUs

Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.