PDA

View Full Version : BOINC: manual debt manipulation?



zombie67
03-30-12, 10:23 PM
I want to zero out the debt for a couple of projects. But I don't want to use the reset button from the manager. That does a bunch of other stuff to, like aborting your queue.

Back in the day, you could just quit BOINC, go in to the client state file and edit a line, and then restart BOINC. I just tried that, but can't find the line I need to edit. I think they must have changed it to something a bit more obscure (I am using 7.0.20). Does anyone know how to do this now?

Cruncher Pete
03-30-12, 11:08 PM
Got to: Program Data > BOINC> Client_state.xml, look for <short_term_debt> and edit to read 0.000000 There is a script for this somewhere and is a slow process if you are going to do it for all projects. But you can just find the project you want to fix and do that on its own.

Mumps
03-30-12, 11:40 PM
Well, I don't know about the current version, but the older ones supported


<cc_config>
<options>
<zero_debts>1</zero_debts>
</options>
</cc_config>
So, have you tried that? Get that into your cc_config.xml file and restart BOINC. No loss of cache, but resets the debts everytime you restart BOINC.

zombie67
03-31-12, 12:23 AM
Got to: Program Data > BOINC> Client_state.xml, look for <short_term_debt> and edit to read 0.000000 There is a script for this somewhere and is a slow process if you are going to do it for all projects. But you can just find the project you want to fix and do that on its own.

Yeah, this is what I was looking for. But it does not exist any more. At least not with 7.0.20.

zombie67
03-31-12, 12:25 AM
Well, I don't know about the current version, but the older ones supported


<cc_config>
<options>
<zero_debts>1</zero_debts>
</options>
</cc_config>
So, have you tried that? Get that into your cc_config.xml file and restart BOINC. No loss of cache, but resets the debts everytime you restart BOINC.

D'oh! Forgot all about that! Thanks!

coronicus
03-31-12, 11:59 AM
What does this do again... Im still learning... What does debt mean in this situation?

Mumps
03-31-12, 01:36 PM
What does this do again... Im still learning... What does debt mean in this situation?

Basically, it affects BOINCs work fetch decision making. I think it works something like this, but with as much as DA has been dorking around with how the system works, this may or may not apply, depending on the version of BOINC you have installed. :)

BOINC tries to keep track of how much time has been spent on running WU's for each of the projects you have running on a given host. If a project has more time spent on it than it's "fair share" based on your Resource Share settings, BOINC will notice that because of the "debt." It will then bias the work fetch requests to try to request work to run for the other projects until they're back in line with your resource share ratios. As well as adjusting the scheduling to preferably run the projects that are behind. But sometimes, things happen that affect the "work done" to "resource share" ratio. Say, setting a project to "No New Tasks" or having a project (like SIMAP) that doesn't always have work. In cases like that, the "debt" accumulates so when you re-enable that project, or the project does suddenly have work, the host gets out of hand and tries to run that project that's real far behind almost exclusively. Resetting the debt basically tells the BOINC client that you don't care that the work done to resource share ratio is not aligned. Allowing the client to run your Resource share ratio of work rather than using that bias to run more of one project than the other to "catch up," even though your resource share settings would normally cause it to do otherwise.

There's actually two types of debt. Long-term and short-term. They each affect work fetch and scheduling slightly differently.

Slicker
04-02-12, 05:51 PM
What Mumps said.

For example, if you have DiRT set at a resource share of 100 and Collatz at 100 and DiRT is down for a week, when it comes back up, you may expect BOINC to go back to 50% Collatz and 50% DiRT but instead, it will run Collatz at 100% for a week to "catch up". For Collatz and DiRT, it really doesn't matter, but some projects have apps that use huge amounts of RAM and you only want to run one of them at a time. That is basically impossible to do with BOINC without suspending/resuming tasks manually. By zeroing the debts, in theory, you can get a computer with 4 projects and 4 cores to run 1 of each on each core. It never really works that way though. I'm gotten so fed up with the way BOINC schedules work that I just suspend all projects except the one I'm working on and then I control when I want it to change to another project.