Message boards :
Questions and problems :
Questions about process priorities
Message board moderation
Author | Message |
---|---|
Send message Joined: 7 Jan 09 Posts: 4 |
Hi. I've been a Boinc user for years (previously I was a Seti user) and I've had no problems until now. Recently I've updated to Boinc 6.4.5 and I've noticed something new, most work units are running in normal priority! That is, they are competing for CPU with other Windows applications, not just Boinc projects. I've read that Boinc manages priorities to not to skip deadlines, but right now I have 2 WU with a 'To completion' time of about 90 minutes and their respective deadlines are 10 days ahead... and they run in Normal priority. Is it not supposed that Boinc will use only inactive CPU time? My real experience is that: - Right now Boinc Work Units steals CPU power from my 3dsmax renderings and I have to quit Boinc to get the most of my computer. This is a tested reality. - When I install Boinc onto a friends computer or something similar, their first words are "...but I will not notice it, right?" I'll no longer install Boinc on another computers because of this :( - I turn on my computer mainly to work, and I shut down when I've finished the work or lurking Internet like now. If I change Boinc Preferences to work only when computer is idle, then I'd crunch almost nothing. So, I don't know exactly from which Boinc version this happens, but I'm very sorry to say that if priorities issue are not fixed, then I'll have to uninstall it and advise to my friends about this behaviour. Sorry for my english and thanks in advance. |
Send message Joined: 29 Aug 05 Posts: 15512 |
BOINC doesn't set the priority levels on any tasks, that's done by the project's science applications. So you'd have to take it up with the project or projects you see this behaviour on, for them to check if their apps are still set to run tasks at the lowest possible priority. |
Send message Joined: 5 Oct 06 Posts: 5095 |
Judging by yesterday's discussion "Power saving vs Boinc vs user control & confusion" on the BOINC Dev mailing list (sparked by Martin's suggestion, first posted at Einstein), BOINC *does* set the process priority levels. Note one possible source of confusion: the BOINC log message "Running, high priority" does *NOT* refer to thread or process priority as discussed here. It merely means what used to be described as "Earliest Deadline First" or EDF mode: this affects the sequence tasks are processed in, but does not affect the priority ('niceness') at the CPU level. There have been observations at SETI that if the CPU stub which feeds a CUDA application runs at lowest priority, then the CUDA part of the application is starved of data and runs extremely slowly. Using a tweak in the science app to over-ride BOINC's priority setting seems to help out. All of which suggests that more attention needs to be given to process priority settings as BOINC v6.4 / v6.6 / v6.8 is developed for CUDA / OpenCL support. |
Send message Joined: 7 Jan 09 Posts: 4 |
Thanks for the replies. I understand the difference between "Boinc logs priority messages" and the real thread priorities. Magically, now all three threads started by Boinc are set to Very Low priority (?). Even with all processes set to Very Low Priority, CPU performance is degraded about 15%. I must admit that I don't know if this is a new issue or if I've just now became aware of it. @Dagorath Thanks for that info. Under another circumstances it would be really helpful, but if Boinc stops when I use certain application (wich I most use), then it would crunch almost nothing. @Ageless When I say BOINC I mean BOINC and the slave applications as a whole. Really it doesn't matter to me who sets the priorities, I just want them to be set to "very low". My point is that BOINC is supposed to be an unnoticed application, and I think that this is the reason that makes BOINC so popular. It looks that current situation is that the user must be aware of BOINC and I think those are not good news. Regards |
Send message Joined: 7 Jan 09 Posts: 4 |
Excuse me, Dagorath, but I didn't intend to complain about anyone, nor I expect Ageless to do the work for me. English isn't my mother language and may be I sounded rude, but sure, that was not my intention. I really appreciate the help given, but I wanted to express what, to my knowledge, isn't working well in BOINC. If this is complaining then yes, I'm complaining. Anyway thanks for the help. Regards |
Send message Joined: 7 Jan 09 Posts: 4 |
No problem, Dagorath. Well, I own a Dual Xeon 3.2 with Hyperthreading enabled, that is, Windows sees 4 CPUs. Boinc is installed as a service (Default installation) onto a fresh Windows Vista 32bits installation. When I installed BOINC, there where 3 working units, 1 from Seti(astropulse unit) and another 2 from World Community Grid. All three where launched with normal priority and I thought it wasn't fine. Some hours later I discover that Work Units are being launched at Very Low Priority. I don't know why this happened, but my opinion is that all projects should work with low priority ever. As it has been said, it's unclear who sets priorities, so nothing clear here. The other question that I don't understand and more confuse me is how many priority levels there are. I only can see/change them in Task Manager, but I'm not sure if the programmers can choose more level of priorities. I say this because some time ago I did some test with priorities and found that Seti/Boinc always were the last ones in terms of priority. Let's say that if I set a render process priority to 'Very Low', Seti got 0% of CPU and render got 100%. I was used to that and I found it perfect! Now things work different, may be it is Windows Vista, maybe be it is this 3dsmax version, may be it is BOINC, may be are the projects developers, I don't know, but now BOINC clearly interfere with some main application. It is possible that some applications launch processes with very low priority, which could cause problems and it wouldn't be BOINC fault at all. Regards |
Send message Joined: 5 Oct 06 Posts: 5095 |
Now I must confess that I didn't see Richard's message about BOINC being responsible for setting the priority of the science apps. Maybe he is right, maybe Ageless and I are wrong. All I know for sure is that all the projects I am attached to run at lowest priority. I've had a quick look at the source code. Note the comment at line 366 of /client/app_start.cpp: // if this job uses a GPU and not much CPU, run it at normal priority and the parameter prio_mask in CREATE_NEW_PROCESS_GROUP. I think it's BOINC wot does it. edit - also see the Trac Revision Log for that same file (requires trac login). |
Send message Joined: 29 Aug 05 Posts: 15512 |
There have been observations at SETI that if the CPU stub which feeds a CUDA application runs at lowest priority, then the CUDA part of the application is starved of data and runs extremely slowly. Using a tweak in the science app to over-ride BOINC's priority setting seems to help out. But that's something that's easily explained, as to why it needs to run at a normal priority. And considering that it only does this for a few seconds over the whole task (which can take over an hour to complete in the GPU), it's 'neglectable'. The only thing that the CPU does at that time is feed the data from the disk to the VRAM and back. You'd want that to happen as quickly as possible, to make sure the data doesn't get lost. The science application itself, doing the task, is never in main memory... it only runs in the video card's RAM, where its priority (whatever it is) would only impact the speed at which the pixels on your screen are refreshed. In all other cases, aka non-CUDA, the science application sets the priority at which it runs the tasks. |
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.