Scheduling 2 GPUs

Message boards : Questions and problems : Scheduling 2 GPUs
Message board moderation

To post messages, you must log in.

AuthorMessage
BobmALCS

Send message
Joined: 22 Feb 12
Posts: 19
United Kingdom
Message 87568 - Posted: 10 Aug 2018, 10:56:51 UTC

I have 2 identical GPUs on my PC. GPU0 supports my screen and GPU1 runs BOINC project tasks.

At the monment I use the statement "<ignore_nvidia_dev>0</ignore_nvidia_dev>" in cc_config.xml to only allow GPU1 to run BOINC tasks. However I would like to utilise GPU0 to run BOINC tasks during those hours when I'm unlikely to be using the PC (typically overnight).

One way I can see to do this is to write a procedure (Windows 10) to add/delete the cc_config statement and issue the "boinccmd" command to reread the config file according to a schedule.

This raises a few questions though. What happens to a task running on GPU0 when the config file is changed to disallow GPU0 being scheduled to run a task.
1) Is the task just terminated.
2) Does the task then lie dormant until scheduling on GPU0 is enabled again.
3) Is the task put back in the queue and eventually rescheduled on GPU1 when possible.
ID: 87568 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5077
United Kingdom
Message 87569 - Posted: 10 Aug 2018, 12:57:33 UTC - in response to Message 87568.  

I think <ignore_nvidia_dev> is one of those cc_config items which can't be changed dynamically while the client is running.

You would have to use boinccmd --quit and then restart the client - that can be done from the command line too, but it's best to allow 10-15 seconds for all processes to clean up and shut down before the restart.

Apart from that, your idea sounds feasible, and is the only way to achieve what you want until we finally get #41 implemented. Both running GPU tasks will be stopped when the client is stopped, and only one will be restarted in 'day' mode. The second will sit 'waiting to run' until a GPU becomes available, and then be restarted in preference to a new task starting.

[As it happens, I'm writing this on a computer where GPU0 is driving two high-res screens, and I've been doing some programming work all morning. I'd almost forgotten that GPU0 has also been running an intensive GPUGrid task all the time. If you haven't experimented recently to see if BOINC can co-exist with your foreground work, you might consider doing so.]
ID: 87569 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15478
Netherlands
Message 87571 - Posted: 10 Aug 2018, 14:07:42 UTC - in response to Message 87569.  

I think ignore_nvidia_dev is one of those cc_config items which can't be changed dynamically while the client is running.
Yes, all GPU detection decisions are made at BOINC startup. There's one caveat, and that's the fast user switch/remote desktop protocol login, that one will disable all GPUs when it's detected and re-enable them when it's gone.
ID: 87571 · Report as offensive
BobmALCS

Send message
Joined: 22 Feb 12
Posts: 19
United Kingdom
Message 87574 - Posted: 10 Aug 2018, 22:27:20 UTC - in response to Message 87569.  
Last modified: 10 Aug 2018, 22:28:08 UTC

Thanks for the reply.

I've now got a reasonable idea how to do what I want. When (if ?) I get it programmed and running I'll report back here on the slight chance that others might be interested.

Many thanks.
ID: 87574 · Report as offensive
mmonnin

Send message
Joined: 1 Jul 16
Posts: 146
United States
Message 87704 - Posted: 18 Aug 2018, 16:00:42 UTC

Run a BOINC client per GPU so that one can stop GPU processing when the PC is no longer idle or use the scheduler one the GPU client running your monitor.
ID: 87704 · Report as offensive

Message boards : Questions and problems : Scheduling 2 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.