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
Peter Hucker of the Scottish B...
Avatar

Send message
Joined: 6 Oct 06
Posts: 1491
United Kingdom
Message 106860 - Posted: 24 Jan 2022, 18:54:43 UTC
Last modified: 24 Jan 2022, 18:55:48 UTC

I cannot choose to only pause ONE gpu. I cannot choose to pause the CPU without pausing the GPUs aswell. I found this has been raised only a few months ago here: https://boinc.berkeley.edu/dev/forum_thread.php?id=14412#105470 but it won't let me reply to the thread.

Some programs use a lot of CPU and don't use the GPU. Actually pretty much everything apart from games, yet this option isn't present. "Exclusive applications" seems to have been written for gamers only.
ID: 106860 · Report as offensive
Profile Dave
Help desk expert

Send message
Joined: 28 Jun 10
Posts: 1765
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: 1101
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: 1101
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
Peter Hucker of the Scottish B...
Avatar

Send message
Joined: 6 Oct 06
Posts: 1491
United Kingdom
Message 106864 - Posted: 24 Jan 2022, 20:38:42 UTC - in response to Message 106863.  

The amount of CPU used for the GPU is minimal. For example I have a 24 core CPU. The GPUs use 1 core each at most. If I need to run a program that wants most of the CPU, that won't bother it, but 24 CPU tasks will.

Sorry, I have no idea how to use Github, I'm obviously not geeky enough!
ID: 106864 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 14993
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
Peter Hucker of the Scottish B...
Avatar

Send message
Joined: 6 Oct 06
Posts: 1491
United Kingdom
Message 106866 - Posted: 24 Jan 2022, 21:03:55 UTC - in response to Message 106865.  

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.
But the amount of CPU effort to support a GPU is minimal, which is why most people are running GPU and CPU Boinc projects at once. There should be an option to pause CPU tasks. Obviously this would leave the GPU tasks running, on both the GPU and CPU, but stop the CPU intensive ones that use it completely. That would make my 24 core Ryzen be only using about 2 cores, leaving 22 for the other program to use.
ID: 106866 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 14993
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: 35
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
Peter Hucker of the Scottish B...
Avatar

Send message
Joined: 6 Oct 06
Posts: 1491
United Kingdom
Message 106869 - Posted: 25 Jan 2022, 0:53:42 UTC - in response to Message 106867.  

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.
I can't believe you just said that. Boinc clearly distinguishes between GPU tasks and CPU tasks, you can see it requesting them seperately in the messages tab. All it has to do is pause the CPU tasks. For some reason you're thinking I want it to block access to the CPU altogether. No, just pause the CPU tasks. I can do that manually at the click of the mouse, why can't it do that automatically when a certain program starts?
ID: 106869 · Report as offensive
Peter Hucker of the Scottish B...
Avatar

Send message
Joined: 6 Oct 06
Posts: 1491
United Kingdom
Message 106870 - Posted: 25 Jan 2022, 0:54:17 UTC - in response to Message 106868.  

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.
Easier just to suspend the CPU tasks.
ID: 106870 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 14993
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: 1765
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
Peter Hucker of the Scottish B...
Avatar

Send message
Joined: 6 Oct 06
Posts: 1491
United Kingdom
Message 106873 - Posted: 25 Jan 2022, 19:38:09 UTC - in response to Message 106871.  

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.
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.
ID: 106873 · Report as offensive
Peter Hucker of the Scottish B...
Avatar

Send message
Joined: 6 Oct 06
Posts: 1491
United Kingdom
Message 106874 - Posted: 25 Jan 2022, 19:39:13 UTC - in response to Message 106872.  
Last modified: 25 Jan 2022, 19:39:39 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.
Well mine must be negative because I can't follow a conversation on there at all. It's way more complicated than any other forum, and I use loads. Feel free to pass on my request once I've persuaded you I'm right.
ID: 106874 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 14993
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
Peter Hucker of the Scottish B...
Avatar

Send message
Joined: 6 Oct 06
Posts: 1491
United Kingdom
Message 106876 - Posted: 25 Jan 2022, 22:35:48 UTC - in response to Message 106875.  
Last modified: 25 Jan 2022, 22:36:11 UTC

Ah, thanks for that. Seems like it's a lot more complicated than I expected. That's the trouble with a system that's evolved and had stuff added to over time by different people, it ends up tangled, rather like Microsoft Windows.

By the way, have you any idea why Boinc would give this?

1/23/2022 5:37:15 PM | | GPU detection failed: process exited with status 0x1: Incorrect function. (0x1)
1/23/2022 5:37:15 PM | | No usable GPUs found

It's Greg_BE over in Rosetta, he added an M2 drive, which stopped Boinc from seeing his GPUs, but Folding at home still uses them fine, and they display on the monitor ok. 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?

It's at the end of this thread: https://boinc.bakerlab.org/rosetta/forum_thread.php?id=6893&postid=104494#104494
ID: 106876 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 14993
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
Peter Hucker of the Scottish B...
Avatar

Send message
Joined: 6 Oct 06
Posts: 1491
United Kingdom
Message 106878 - Posted: 25 Jan 2022, 23:19:12 UTC - in response to Message 106877.  
Last modified: 25 Jan 2022, 23:23:18 UTC

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.
I think it should work in the second M2 slot, I've asked him to try. As far as I can see, since he doesn't have the 570 chipset which boosts the lane numbers, 4 go to the chipset, 16 go to the first two PCI-Express slots, and he has two cards, so they get 8 each. The second M2 slot and the 3rd PCI-Express slot take the last 4, but you can only use one or the other. He thought he couldn't use the second M2 slot since it would disable a SATA port, but it's a PCI-Express M2 device, so it would disable the PCI-Express socket, not the SATA port. From your link:

"SATA1 port will be unavailable when installing SATA M.2 SSD in M2_2 slot.
PCI_E6 slot will be unavailable when installing PCIe M.2 SSD in M2_2 slot."
ID: 106878 · Report as offensive
Peter Hucker of the Scottish B...
Avatar

Send message
Joined: 6 Oct 06
Posts: 1491
United Kingdom
Message 106879 - Posted: 26 Jan 2022, 1:33:34 UTC - in response to Message 106875.  

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.
Isn't it possible to just suspend all tasks marked with a plan class that isn't GPU? I can do that by clicking on them all and pressing suspend. It should therefore be able to do that automatically. The way it's doing it seems overly complicated, when it could just call the same function as is used when the user chooses to suspend things. Of course it would also have to set no new work to stop piles of tasks incoming from other projects.
ID: 106879 · Report as offensive

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

Copyright © 2022 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.