Exclusive applications is very limited

Message boards : Questions and problems : Exclusive applications is very limited
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile Dave
Help desk expert

Send message
Joined: 28 Jun 10
Posts: 2518
United Kingdom
Message 106861 - Posted: 24 Jan 2022, 19:54:19 UTC - in response to Message 106860.  

I cannot choose to pause the CPU without pausing the GPUs aswell.


That is because the GPU apps all use a small amount of CPU.
ID: 106861 · Report as offensive
robsmith
Volunteer tester
Help desk expert

Send message
Joined: 25 May 09
Posts: 1283
United Kingdom
Message 106862 - Posted: 24 Jan 2022, 20:12:03 UTC - in response to Message 106861.  

...but some GPU applications need nearly whole CPU core to run - it depends how they have been coded.
ID: 106862 · Report as offensive
robsmith
Volunteer tester
Help desk expert

Send message
Joined: 25 May 09
Posts: 1283
United Kingdom
Message 106863 - Posted: 24 Jan 2022, 20:13:57 UTC - in response to Message 106860.  

This could be a good idea. Have a look and select a couple of examples that prove your point and go over to GitHub and suggest it (sadly not many of the developers bother to read what we write here).
ID: 106863 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15477
Netherlands
Message 106865 - Posted: 24 Jan 2022, 20:52:36 UTC - in response to Message 106864.  

The amount of CPU used for the GPU is minimal.
All science applications run on the CPU. Whether they do their science only on the CPU, or partly on the GPU, the actual science application runs on the CPU. Which is why you cannot pause the CPU without pausing the GPU as well. Games do exactly the same thing, they run on the CPU and output data to the GPU. The GPU doesn't actually run any program, GPUs aren't capable of running any programs.

When doing work on the GPU, the CPU does all the heavy lifting. It will translate the data that needs to run on the GPU into kernels that the GPU understands, transfer the kernels to the GPU, have a pause while the GPU runs that work, transfer the outcoming data back to RAM, translate it back into something the humans can understand and write it to disk. There's really not much that the GPU does in this, other than run kernel after kernel after kernel.
ID: 106865 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15477
Netherlands
Message 106867 - Posted: 24 Jan 2022, 21:28:25 UTC - in response to Message 106866.  

But the amount of CPU effort to support a GPU is minimal.
It doesn't matter if the CPU uses 1% or 99% to run the application that does the translating of the data from the task to kernels that the GPU can run. As long as the CPU runs the application, you cannot pause only CPU tasks and continue to run work on the GPU, because without the CPU the science application can't run any work on the GPU.

There should be an option to pause CPU tasks.
How do you make the distinction between tasks running on the CPU only and tasks that run on the CPU but do translation work for the GPU? Both run on the CPU. Both show in Windows Task Manager as prutteldeprut.exe
There's no distinction between the two. GPU work runs on the CPU. A lot of tasks even do a majority of work on the CPU and only a little bit on the GPU.
ID: 106867 · Report as offensive
Harri Liljeroos

Send message
Joined: 25 Jul 18
Posts: 62
Finland
Message 106868 - Posted: 24 Jan 2022, 21:45:28 UTC

Just change locally the allowed percentage of CPU usage to a value that corresponds to what GPU support requires. Boinc will most likely then run only GPU tasks if it is not in panic mode with CPU task deadlines. When you have finished your work with the application, you can clear local preferences or return to your previous local preferences.
ID: 106868 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15477
Netherlands
Message 106871 - Posted: 25 Jan 2022, 1:44:30 UTC - in response to Message 106869.  
Last modified: 25 Jan 2022, 14:18:17 UTC

When you manually suspend a task, the BOINC client suspends that task's science application based on its process ID in the threads list. BOINC therefore enumerates all running threads and has to identify those belonging to the process you want to suspend. It may look easy, "look I point and click and it pauses", but you don't know what kind of code sits behind that. It's 176 lines of C++ code.
ID: 106871 · Report as offensive
Profile Dave
Help desk expert

Send message
Joined: 28 Jun 10
Posts: 2518
United Kingdom
Message 106872 - Posted: 25 Jan 2022, 7:58:55 UTC

Sorry, I have no idea how to use Github, I'm obviously not geeky enough!
Git-Hub doesn't require a particularly high geek rating.
ID: 106872 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15477
Netherlands
Message 106875 - Posted: 25 Jan 2022, 21:56:44 UTC - in response to Message 106873.  

Can it not distinguish between a "CPU task" and a "GPU task"? I can see when it asks for work it requests one or the other or both from each project. In the tasks tab, status column of boinc manager, it clearly states when a task requires the use of a GPU, so it must know which are which.
BOINC doesn't suspend tasks, instead it suspends the executing of the actual science application. And to know where those are in the memory of the computer, it needs to figure out which are which and separate them from all the other processes running on the computer and then halt the correct one as usually you have more than one of them running.

That you can see tasks by CPU or GPU in BOINC Manager is just because the projects and the client use something called a plan class, in which it's stipulated whether an application should run on a particular host; what resources it will use (# of CPUs and GPUs, optionally memory usage); how fast it is expected to run. But even with these plan classes in place, BOINC still doesn't know which science application does what and more critically, where it's at this moment on the computer (or which process ID it uses).

And while it is wiser to actually name the science application for the plan class, not all projects may do that. It's not necessary to name an application that runs its data on Nvidia GPUs prutteldeprut_nvidia.exe, as BOINC doesn't care about that, although it helps the human trying to make heads or tails from things. A majority of the OpenCL applications are exactly the same between hardware versions and while the project could get away with just releasing the one app one time (that runs on all hardware), they now usually release one per hardware iteration (Nvidia, AMD, Intel).

Now, all this is very lightly explained, if you need extremely more detail you can always dive into the available documentation. You don't have to be a rocket scientist to understand that, but a bit of technical knowledge and programming insight will help.
ID: 106875 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15477
Netherlands
Message 106877 - Posted: 25 Jan 2022, 23:12:42 UTC - in response to Message 106876.  

I'm suspecting he's short of PCI-Express lanes. Does Boinc talk to GPUs differently to Folding at home? Perhaps one is a lower level connection?
I suspect on short notice it's a lack of PCIe lanes as well.

"On Ryzen CPUs, 16 are dedicated to PCIe slots, four are dedicated to other components such as M. 2 slot, USB or SATA controllers and the final 4 connect to the motherboard chipset."

His motherboard details are here.
The amount of lanes are dictated by the CPU, he has 24.
ID: 106877 · Report as offensive

Message boards : Questions and problems : Exclusive applications is very limited

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.