Questions about process priorities

Message boards : Questions and problems : Questions about process priorities
Message board moderation

To post messages, you must log in.

AuthorMessage
Alvinillo

Send message
Joined: 7 Jan 09
Posts: 4
Spain
Message 22321 - Posted: 7 Jan 2009, 12:36:10 UTC

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.
ID: 22321 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15483
Netherlands
Message 22322 - Posted: 7 Jan 2009, 12:49:17 UTC - in response to Message 22321.  

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.
ID: 22322 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5082
United Kingdom
Message 22324 - Posted: 7 Jan 2009, 13:22:34 UTC

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.
ID: 22324 · Report as offensive
Alvinillo

Send message
Joined: 7 Jan 09
Posts: 4
Spain
Message 22329 - Posted: 7 Jan 2009, 16:18:22 UTC

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
ID: 22329 · Report as offensive
Alvinillo

Send message
Joined: 7 Jan 09
Posts: 4
Spain
Message 22332 - Posted: 7 Jan 2009, 19:25:18 UTC

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
ID: 22332 · Report as offensive
Alvinillo

Send message
Joined: 7 Jan 09
Posts: 4
Spain
Message 22335 - Posted: 7 Jan 2009, 21:40:47 UTC

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
ID: 22335 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5082
United Kingdom
Message 22336 - Posted: 7 Jan 2009, 22:01:52 UTC - in response to Message 22333.  
Last modified: 7 Jan 2009, 22:06:04 UTC

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).
ID: 22336 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15483
Netherlands
Message 22340 - Posted: 8 Jan 2009, 1:16:37 UTC - in response to Message 22324.  

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.
ID: 22340 · Report as offensive

Message boards : Questions and problems : Questions about process priorities

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.