Message boards : Server programs : BOINC scheduling feature I'd like to see
Message board moderation
Author | Message |
---|---|
Send message Joined: 1 Oct 11 Posts: 17 ![]() |
Set up BOINC so that you can designate alternate projects. Hear me out before you say we already have this, because we don't, or if we do, it's buried. What I mean is that we can select several priority levels, all of which would use 100% of available CPU time, but we prioritize them so that they cascade. For instance: Priority 1 : SETI @ 100% Priority 2 : Einstein @ 100% Priority 3 : Climate Prediction @50% & Milky Way at 50% Priority 4 : All unselected BOINC projects What would happen is that whenever SETI work is available, SETI work would use 100% of available processor time. If SETI cannot provide work units, and processors are idle, then BOINC goes looking for Einstein workunits. If Einstein workunits are available, it pulls them a few at a time, preferrably with completion dates far, far into the future, and works them while it waits for SETI units. If neither Einstein or SETI units are available, it pulls 50/50 Climate Prediction & Milky Way projects. If none of the above are available, BOINC pulls work from random projects. Now, if SETI workunits become available again, BOINC would immediately suspend other work and go back to SETI. If the SETI work queue grows on the local machine to 10 days, then BOINC returns all work units from other projects. ** It might be nice to include an option for BOINC to allow completion of work units from other projects, rather than simply returning them when SETI has filled up it's queue. |
Send message Joined: 1 Oct 11 Posts: 17 ![]() |
BOINC already has something similar to what you want. If you want only project A tasks when project A has them and want project B tasks only when A doesn't have tasks then give A a resource share greater than 0 and give B a resource share of 0. If you're worried that both A and B might not have work simultaneously then give project C a share of 0 as well. It's not likely that all 3 would not have work at the same time. So if I give SETI a 100% share, and Einstein a 0% share, then Einstein would never pull work units unless SETI has none to offer? What happens when SETI has work units again? Does Einstein finish it's active work? Will I actually be causing problems for the Einstein project by holding work units till they expire? |
![]() Send message Joined: 29 Aug 05 Posts: 15585 ![]() |
BOINC will do all work before the deadline, so you can only "hold back work" by suspending that work or suspending the project. The Einstein project being the backup project will fill the cache only when Seti is out of work, and because Einstein has a zero resource share, all work for it will be done immediately and in high priority. Even when Seti has work again, the Einstein work will be done first, because of the zero resource share. |
Send message Joined: 1 Oct 11 Posts: 17 ![]() |
BOINC will do all work before the deadline, so you can only "hold back work" by suspending that work or suspending the project. The Einstein project being the backup project will fill the cache only when Seti is out of work, and because Einstein has a zero resource share, all work for it will be done immediately and in high priority. Even when Seti has work again, the Einstein work will be done first, because of the zero resource share. Wow, ok, I wish I had been able to find this functionality documented clearly. Can I put clear documentation of this feature on the page where the settings are chosen on my wish list? :) |
Send message Joined: 1 Oct 11 Posts: 17 ![]() |
I've enabled Einstein as a 0% share, and it did download some work units when SETI didn't have work. Unfortunately even though it is set at 0% share, it is continuing to start new Einstein work units even though I now have SETI units to work. Is there a way for me to set it so that all unstarted work units from 0% share projects be returned as soon as the 100% project has work again? I don't mind finishing a work unit I've started, but when I set a project to 0% I don't want it starting any new work at all if there is startable new work for the 100% project. |
Send message Joined: 6 Dec 11 Posts: 1 ![]() |
to solve the "project priority" problem, i wrote a simple script to monitor the boinc process and insure that when one project runs out of work, the next lower project will start accepting work. for example, if you identify 4 projects that are attached, you can define their priority as such: Priority 1 : SETI Priority 2 : Einstein Priority 3 : Climate Prediction Priority 4 : Milky Way if you want only one project at a time active, then seti will occupy all of your cpu cycles until it runs out of work, at which time einstein will be told to start accepting work. if einstein has no work then climate will be told to accept work, and so on. you may specify that two or three, etc, projects should be kept active although i see little point in that. when a higher level project sees work available it begins working on it and the lowest level project is told to stop accepting work which allows it to finish it's current task. anyone interested in using it can contact me directly. |
Copyright © 2025 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.