Posts by Matthew Burch

1) Message boards : BOINC client : Suggestion: Perform resource share calculations on the local machine (Message 59852)
Posted 20 Jan 2015 by Matthew Burch
Post:
I have completed the Asteroids work that was started, and will never again adopt any other project besides SETI, even if SETI runs out of work, unless I see that the BOINC project manager is tweaked so that resource control can be managed at the local machine.

To be clear:

If it's not possible for me to firmly control what my computing resources are used for when two or more projects are being 'managed' by BOINC, then I'm not wasting my time trying to finesse some sort of solution that tricks the BOINC manager into doing what I expect it to do without micromanaging.
2) Message boards : BOINC client : Suggestion: Perform resource share calculations on the local machine (Message 59676)
Posted 15 Jan 2015 by Matthew Burch
Post:

Resource sharing is something that actually CAN be done with immediate response. I cannot imagine any reason why it wouldn't be, but I can clearly see that it isn't.

The algorithms is anything but simple. BOINC is open source. You can always submit your simple fix for the developers to look at.

Edit
HINT: Starting point.
Separate the RS for CPU and GPU. Modify server and manager software to implement separate RS. Make sure that the new manager will work properly with projects running older server versions without split RS. Ensure that older version managers wont be broken by the split RS on the server.
Make sure everything works with a mix of projects with old and new software .


Part of the reason why resource sharing is broken is clearly because the calculations are a Rube Goldberg nightmare.

Starting point.
In the next version, add an option for resource share to be processed on the local machine, based on actual resources used. You click the checkmark, and no more Rube Goldberg nightmare code that allows projects to ignore donor wishes.

Please remember the important part here. The current resource management simply does not work when you have one project that is not data aggressive, and another project that is. This needs to end. BOINC users want to choose how resources from our local machines are spent. Let us.
3) Message boards : BOINC client : Suggestion: Perform resource share calculations on the local machine (Message 59670)
Posted 15 Jan 2015 by Matthew Burch
Post:
You are still expecting immediate response. It doesn't work that way. It can take weeks before RS finds a balance. It took me 6 months to balance my SETI and Milkyway project. There is always overshoot by one or the other project, but in the long term a balance is maintained. The trick was to make incremental changes. Next I will tackle Einstein which took a big jump ahead when SETI was misbehaving for almost a month.


Two months is not an immediate response. Despite that, yes, I do expect resource sharing to be a process where there is immediate response.

Resource sharing is something that actually CAN be done with immediate response. I cannot imagine any reason why it wouldn't be, but I can clearly see that it isn't.
4) Message boards : BOINC client : Suggestion: Perform resource share calculations on the local machine (Message 59626)
Posted 13 Jan 2015 by Matthew Burch
Post:
BOINC Manager is the graphical user interface, that allows you to command and control the BOINC client. BOINC Manager on its own makes no command decisions.

But as you have been told many times now, your problem stems from elsewhere, from your demand to run a cache with 10 days worth of work, when Seti cannot fulfill that demand due to them having a 100 task limit in place. Aside from varying deadlines.

You can continue to post your complaint in all forums we have, but in the end it is you who has to change your settings, or your choice of projects. And else... there's always the source code, now also available at Github. Download, change to your heart's content, compile and run your own MOINC.


I have changed my settings. I have made my choices. And they are being ignored.

As you say, BOINC Manager doesn't make it's own command decisions. However, it should abide by MY command decisions. I have required a certain division of resources in the BOINC manager. Those requirements are being ignored.

Your argument about the cache and the task limit are irrelevant when one looks at the underlying problem. The BOINC manager isn't managing. The BOINC manager is simply allowing individual projects to claim my machine resources, regardless of what I want my resources to be devoted to. My machine simply puts the vast majority of my system resources towards whatever project I am signed up for that has the most aggressive dev team.

I believe that part of the reason that BOINC exists is to allow people to participate in more than one project, should we wish to do so. I wish to do so. However, right now, I'm not. I am participating in one project, despite my clear wishes as noted in the resource share settings. And that one project is not the project that I would choose to be involved in if I can only participate in one project.

So, when my Asteroids work runs out, I will be dropping Asteroids and participating 100% in SETI again, since BOINC cannot properly manage my system resources. I will not participate in any other non-SETI project again unless I hear that BOINC has been modified so that it locally implements resource share allocations that are stipulated by donors.
5) Message boards : BOINC client : Suggestion: Perform resource share calculations on the local machine (Message 59586)
Posted 13 Jan 2015 by Matthew Burch
Post:
If I, the operator of a machine, choose to donate the resources of the machine in a specific proportion based on resource share, then my machine should be devoting processing time in that ratio, and only based on local calculations of local resources.

This should be regardless of scheduling or crunch time shenanigans. For two months now, my machine, which is set with a resource share of one hundred (100) on SETI and five (5) on Asteroids, has touched no SETI work while SETI work units are locally available. This is apparently because, whether intentional or not, Asteroids is abusing BOINC's crunch time management.

I have SETI and Asteroids work units available on my machine now. I have partially completed SETI work units sitting idle.

Asteroids has taken over my machine, and BOINC is doing nothing about it because the work coming from Asteroids is automatically prioritizing itself over all SETI work.

In order to prevent my machine from simply donating computing power to the project with the most aggressive data schedule, resource share needs to have meaning. Right now, BOINC is not managing my donation of resources in the manner which I have indicated that I wanted the resources donated.

I have set Asteroids to stop retrieving more work. When my machine has completed the work currently available to it, I will be ending my association with Asteroids and concentrating 100% on SETI again. This is not how resource sharing should work. I should not have to manually disassociate myself from a project to force BOINC to perform work for another project.

Simply put, the simplest way to keep BOINC projects from gaming the system and voiding the wishes of donors is to move resource share calculations to the local machine.
6) Message boards : Questions and problems : Switch between applications every X minutes problem (Message 59584)
Posted 13 Jan 2015 by Matthew Burch
Post:
There is no sharing, no matter how you try to calculate it, because at any time when Asteroids has had work available, it has allowed Zero (0) SETI work to process on my machine for over two months now.

I have SETI jobs ready to be worked on, right now. I even have partially completed SETI jobs sitting, waiting to get calculation time.

It appears as if the only way my machine will be able to process SETI work again is if I drop Asteroids, which I will be doing, after I run out of Asteroids work units. I have set Asteroids to no longer retrieve new work.

If my donation of my computer cycles were to BOINC to use as it sees fit, or if I had chosen some sort of option to allow my machine to perform work for crunch time projects only, then I could understand this behavior.

But it's not. My choice is to devote 100 resource share to SETI and 5 resource share to Asteroids. A 20:1 ratio, however you want to try to calculate it. BOINC is failing to allow this, no matter how it is calculated.

This could be addressed very easily by simply calculating CPU and GPU time on each project on the local machine. I work X time on Asteroids, then I work 20X time on SETI.

I do not want to do exclusively SETI work, but I will be forced back to that condition soon. By any and every measure over an extended timeframe, with work units from both projects on my machine now, BOINC is failing to allow me to donate my computer time as I wish. If I am going to be doing SETI work exclusively, what do I need the BOINC project manager for? Please fix this.
7) Message boards : Questions and problems : Switch between applications every X minutes problem (Message 59573)
Posted 13 Jan 2015 by Matthew Burch
Post:
As far as I am aware, there is no functionality for an end user to accurately and reliably tell BOINC how to split our donated system resources.

All we can do is tell BOINC what projects we want do donate time to, and how we want our resources divided. After doing so, BOINC completely ignores our desires and spends all of it's time working on the project whose development team has been more aggressive about cheating the system.

If I say I want a resource share of 100 devoted to one project and a resource share of 5 devoted to another project, I couldn't care less what funny calculations are happening somewhere other than at my computer. My local machine is more than capable of tracking how much real processor time is spent on each project.

All resource share allocations should be performed on the client. Period. But for some strange reason they aren't.

Before some expert cruncher steps up and gives a thirty-step process on how you can modify this, and adjust that while restricting other things in order to maybe have a chance of BOINC doing what you have already told it to do... Once a person who is generous enough to devote cycles to BOINC projects has indicated what they want to contribute to by adjusting resource shares, that's it. Nothing else should be required. End.

This really needs to be fixed.

Your perception is incorect. A project may be able to jump the queue with short deadline forcing priority processing, but this doen't give more processing time to the project in the long term. Boinc just wont ask that project for more work until RS is met with other project.


It is not my 'perception', it is a fact.

I have had resource share set to 100 for SETI@Home currently, and set to 5 for Asteroids@Home. That should yield a 20:1 ratio of SETI processor time to Asteroids time. It is NOT doing so.

While Asteroids has work available, My machine has not preformed any SETI work. None. Asteroids@Home has completely dominated my machine. The same nine SETI work units that my machine was processing when new Asteroids work became available have been sitting, completely and utterly untouched.

By every conceivable measurement of "resource sharing" Asteroids isn't sharing. This isn't a small data sample. SETI and Asteroids have been running on my machine for a couple months now. As mentioned above, the only time when Asteroids allowed any SETI work to run at all was when there were no Asteroids work units available.

Here are the stats.

Resource Shares:
Asteroids @ 5
SETI @ 100

Average Work:
Asteroids @ 25,000
SETI @ 1,300 and falling

Total Work?
Asteroids @ 1.36 million
SETI @ 11.62 million

Processor time when Asteroids work units were available?
Asteroids @ 100%
SETI @ 0%

There is clearly no sharing happening here. It's very simple. Whether intentional or not, the Asteroids@Home team is simply abusing BOINC's poorly implemented resource sharing mechanisms.

What good is a resource management program that can't manage resources?
8) Message boards : Questions and problems : Switch between applications every X minutes problem (Message 59569)
Posted 12 Jan 2015 by Matthew Burch
Post:
As far as I am aware, there is no functionality for an end user to accurately and reliably tell BOINC how to split our donated system resources.

All we can do is tell BOINC what projects we want do donate time to, and how we want our resources divided. After doing so, BOINC completely ignores our desires and spends all of it's time working on the project whose development team has been more aggressive about cheating the system.

If I say I want a resource share of 100 devoted to one project and a resource share of 5 devoted to another project, I couldn't care less what funny calculations are happening somewhere other than at my computer. My local machine is more than capable of tracking how much real processor time is spent on each project.

All resource share allocations should be performed on the client. Period. But for some strange reason they aren't.

Before some expert cruncher steps up and gives a thirty-step process on how you can modify this, and adjust that while restricting other things in order to maybe have a chance of BOINC doing what you have already told it to do... Once a person who is generous enough to devote cycles to BOINC projects has indicated what they want to contribute to by adjusting resource shares, that's it. Nothing else should be required. End.

This really needs to be fixed.
9) Message boards : Questions and problems : Resource sharing is not properly functional (Message 59215)
Posted 1 Jan 2015 by Matthew Burch
Post:
There are another couple recent threads on this board about this issue. The figures that BOINC uses in the work fetch are REC numbers, not RAC numbers, assuming you are using a reasonably recent version of BOINC. If Asteroids is using credit inflation, they are, then the RAC numbers you see will be way out of line. This in addition to the new fetching can cause users to think BOINC is beserk. The new fetch will grab as much work as possible, until the buffer is full, from a SINGLE project. So if it attempts to get work from SETI and there isn't any -- AT THAT PRECISE MICROSECOND -- then it will go to Asteroids and gorge itself, no matter the relative work fractions.


I am arguing that there's a whole lot of meaningless calculations going on. If I have SETI@home set to 100 resource share, and Asteroids@home set to 5 resource share, then BOINC should monitor how much actual, REAL CPU/GPU time is devoted to each project on the local machine.

For example, using 8 cores of CPU, set SETI 100 and Asteroids 5:

Once SETI has completed 100 hours of CPU work, a series of Asteroids tasks are started. Once those jobs are completed, Asteroids is determined to have done 20 hours of work. That's fine. BOINC then has SETI do 300 hours of work before starting any more Asteroids work. When SETI is at 400 and Asteroids is at 20, BOINC starts two more Asteroids jobs. If that ends up being less than 5 hours, BOINC pulls another job for Asteroids. From that point on, the client would start one Asteroids job every time the actual CPU time ratio of SETI to Asteroids exceeds 20:1. It's not rocket science.

If a local method of tracking resources is utilized, then it doesn't matter what individual projects do to try to skew the numbers, either intentionally, or by accident. In the example above, 100 hours of CPU is spent on one project for every 5 hours spent on another. Period. Done. No shenanigans allowed.

What this will do is encourage projects to develop more efficient algorithms, so they get more bang per hour.

Other than the time it would take to code the changes, I can think of no legitimate reason for NOT doing resource sharing calculations at the client.

That being said, BOINC is being actively developed, so the time and effort required to make BOINC capable of doing its job and letting donors reliably and accurately manage their resource allocations would seem to be a strong priority.
10) Message boards : Questions and problems : Resource sharing is not properly functional (Message 59202)
Posted 31 Dec 2014 by Matthew Burch
Post:
As I pointed out on the SETI forum. Stick to a small cache, and leave BOINC to stabilize. Then you can make incremental changes to resource share until things reflect you're wishes. Don't forget that if you're using Credits as your benchmark then you have to take into account that some projects do pay out a lot more per computing time then others. GPU's crunching especially have a very large discrepancy between projects.


BOINC has had over 1 million Asteroids "Work Done" units to stabilize, and has not yet done so.

I'm not only using Credits for my benchmark, I'm looking at the same SETI work units that have been sitting untouched since I got more Asteroids work the other day after that project had been down for a while.

I first started doing Asteroids work when the Database at SETI needed to be rebuilt. Asteroids immediately took over every available resource on my machine. I didn't care that much then because I was fairly short on SETI work anyway, and knew that there wasn't any more on the way for a while. The SETI work had deadlines several weeks out. So Asteroids had a couple weeks to establish itself on my machine.

Then the Asteroids servers stopped giving out data, and I worked through entire downloaded selection of Asteroids work units before the SETI work units re-started. SETI provided a few more work units, and I was steadily working SETI until the other day.

Then the Asteroids project returned to service. My machine reported a large number of Asteroids results, and downloaded a lot of new Asteroids work units. Immediately, all SETI work stopped, again. Since Asteroids returned to service, my machine has not even touched any of the nine SETI work units that it was working on.

I cannot see where cache size can possibly have any impact on this. It's abundantly clear that BOINC is not properly arranging for my CPU and GPU time is split between projects the way I want it to be. Why exactly this is happening, I can't say, but I can say that something is clearly broken.
11) Message boards : Questions and problems : Resource sharing is not properly functional (Message 59198)
Posted 31 Dec 2014 by Matthew Burch
Post:
Stop trying to understand the work-sharing algorithm. I gave up a long time ago, when it was significantly changed after version 5.x or 6.x (I don't remember). There are plenty of detailed explanations floating around on this forum regarding the rationale behind the algorithm. I think it fails to satisfy the observer mainly because so many projects do a bad job of estimating their tasks' Time to Completion, especially when that results in a very short deadline and BOINC gets all panicky and urgent. To get the outcome you seek, you either have to micromanage BOINC constantly or leave it alone for a long period of time so it can "learn" how long the assortment of projects/tasks you have chosen actually perform on your machine.


You're correct. I do not need to understand the algorithm. All I have to understand is that BOINC is not donating my processor time the way I want it to. I am donating my CPU and GPU time and have indicated how I want my resources shared. I need BOINC to prevent projects from ignoring my wishes. I will be generous and hope that Asteroids isn't doing it intentionally. The end result for continued failure to split work the way I want it split will be the same though, whether the system gaming is accidental or intentional. Eventually I will drop alternate projects and go back 100% to one project, SETI, if BOINC does not allow me to simply help out other projects while concentrating most of my processing on SETI.
12) Message boards : Questions and problems : Resource sharing is not properly functional (Message 59196)
Posted 31 Dec 2014 by Matthew Burch
Post:
and tell the projects that I want 10 days of data for each of them

The Cache settings are Global, setting a Cache setting of 10 days means 10 days overall, Not 10 days for Seti and 10 days for Asteroids.

Claggy


I will edit my post appropriately to take this into account. Regardless of how one looks at it, it's nor working properly when I'm not spending my donated processor time the way I wish to.

*EDIT* Actually, no I will not edit the post, because I forgot that posts can only be edited for a short time after posting.
13) Message boards : Questions and problems : Resource sharing is not properly functional (Message 59184)
Posted 31 Dec 2014 by Matthew Burch
Post:
Currently, I am running BOINC 7.4.27 (x64)

I have two projects that I am trying to run.

SETI@home is set for 100 resource share.

Asteroids@home is set for 5 resource share.

Unfortunately, Asteroids @ home is completely ignoring it's resource share, and utilizing 100% of my machine's computing resources, and it has been doing so for long enough that it's clearly not a fluke.

At this time:

"Avg. work done" for Asteroids is 28,000+
"Avg. work done" for SETI is 2,600+

Clearly, if resource share is supposed to be based on "Avg. work done" then resource share is being ignored.

BUT what if BOINC is calculating over the long haul?

"Work done" for Asteroids is over 1,000,000
"Work done" for SETI is less than 12,000,000

Clearly, if resource share is supposed to be based on "Work done" then resource share is being ignored.

So, what is happening here? Why is BOINC defying my wishes as to how to distribute my computing resources that I am donating?

After bouncing the question around in the SETI forum to see if I was just being dense, the answer seems pretty obvious. I may be partly wrong. I'm no code monkey, but I'm certain that I am mostly right.

When I tell BOINC that I want to devote 100 resource share to SETI and 5 resource share to Asteroids, and tell the projects that I want 10 days of data for each of them, BOINC is giving bad data to the projects, telling BOTH projects what the TOTAL computing power of my machine is. BOTH projects then send me ten days worth of work, as if they were each 100% workload on my machine.

Now, I have 20 days of work on my machine, and 10 days to do the work. This is clearly broken, unless BOINC would like to loan me a Tardis.

To make things worse, some projects assign all their work units in a very close timeframe, less than ten days out, which forces BOINC to assign their work as high priority. This seems to be why Asteroids is running away with my machine.

How can this be fixed?

Logically, it's very simple, and would require three obvious implementations.

1) When BOINC tells a project that I am requesting X days work, that should be sent as X days work at the calculated % of my machine's CPU/GPU capacity that I am willing to devote to it. The project should NOT be given my machine's total computational capacity.

2) To prevent abuse of work unit calculations, the BOINC client should monitor ACTUAL CPU/GPU usage and make certain it matches with the resource share distribution the user requests. This calculation would completely ignore work unit numbers as calculated by individual projects, and focus entirely on processor utilization numbers. If a project goes significantly beyond it's allowed allocation of work based on resource share, the project is throttled until the other project catches up. If this happens regularly, then it is reported to BOINC.

3) If one project runs out of work, it's effective resource share is reduced to zero, numbers are reset, and the client checks every now and then for work. When new work is found, resource share is reverted, numbers are reset, and calculations of comparative resource share resume.

I would like for the BOINC team to remember that I am donating my time here. Your software is the 'vehicle' of my donation of computing resources. When I say I want to donate 100 resource share to one project and 5 resource to the other, that's what I mean. I expect the BOINC manager to make what I want to happen reality.

If I were to go to an accountant and tell them I wanted to give $100 to Charity A and $5 to Charity B, but then noticed that a check had been cut from my account for $105 to charity B, I would immediately demand an explanation. If the accountant could only tell me "Oh, they gamed the system so I gave them all the money you set aside for donations." I would instantly fire them.

That being said, BOINC is not a paid service, and because of that, I will not hold BOINC to the same standards that I would hold a paid service. However, I feel that it IS appropriate for me to hold your feet over the fire a little bit here, because BOINC is not properly managing my resource allocations, as I wish them to be allocated. The methodology above would allow this.

**Logs**

12/31/2014 7:29:47 AM | Asteroids@home | Computation for task ps_141205_60445_8_2 finished
12/31/2014 7:29:47 AM | Asteroids@home | Starting task ps_141205_60445_5_2
12/31/2014 7:29:49 AM | Asteroids@home | Started upload of ps_141205_60445_8_2_0
12/31/2014 7:29:57 AM | Asteroids@home | Finished upload of ps_141205_60445_8_2_0
12/31/2014 7:29:59 AM | Asteroids@home | Sending scheduler request: To report completed tasks.
12/31/2014 7:29:59 AM | Asteroids@home | Reporting 1 completed tasks
12/31/2014 7:29:59 AM | Asteroids@home | Not requesting tasks: don't need (CPU: not highest priority project; NVIDIA GPU: not highest priority project)
12/31/2014 7:30:01 AM | Asteroids@home | Scheduler request completed
12/31/2014 7:49:37 AM | Asteroids@home | Computation for task ps_141205_60444_26_2 finished
12/31/2014 7:49:37 AM | Asteroids@home | Starting task ps_141205_60444_15_2
12/31/2014 7:49:39 AM | Asteroids@home | Started upload of ps_141205_60444_26_2_0
12/31/2014 7:49:46 AM | Asteroids@home | Finished upload of ps_141205_60444_26_2_0
12/31/2014 7:49:47 AM | Asteroids@home | Sending scheduler request: To report completed tasks.
12/31/2014 7:49:47 AM | Asteroids@home | Reporting 1 completed tasks
12/31/2014 7:49:47 AM | Asteroids@home | Not requesting tasks: don't need (CPU: not highest priority project; NVIDIA GPU: not highest priority project)
12/31/2014 7:49:49 AM | Asteroids@home | Scheduler request completed
12/31/2014 7:51:06 AM | Asteroids@home | Computation for task ps_141205_60425_16_2 finished
12/31/2014 7:51:06 AM | Asteroids@home | Starting task ps_141205_60416_3_2
12/31/2014 7:51:08 AM | Asteroids@home | Started upload of ps_141205_60425_16_2_0
12/31/2014 7:51:16 AM | Asteroids@home | Finished upload of ps_141205_60425_16_2_0
12/31/2014 7:51:20 AM | Asteroids@home | Sending scheduler request: To report completed tasks.
12/31/2014 7:51:20 AM | Asteroids@home | Reporting 1 completed tasks
12/31/2014 7:51:20 AM | Asteroids@home | Not requesting tasks: don't need (CPU: not highest priority project; NVIDIA GPU: not highest priority project)
12/31/2014 7:51:22 AM | Asteroids@home | Scheduler request completed
12/31/2014 8:20:59 AM | Asteroids@home | Computation for task ps_141205_60442_20_2 finished
12/31/2014 8:20:59 AM | Asteroids@home | Starting task ps_141205_60441_15_2
12/31/2014 8:21:01 AM | Asteroids@home | Started upload of ps_141205_60442_20_2_0
12/31/2014 8:21:09 AM | Asteroids@home | Finished upload of ps_141205_60442_20_2_0
12/31/2014 8:21:14 AM | Asteroids@home | Sending scheduler request: To report completed tasks.
12/31/2014 8:21:14 AM | Asteroids@home | Reporting 1 completed tasks
12/31/2014 8:21:14 AM | Asteroids@home | Not requesting tasks: don't need (CPU: not highest priority project; NVIDIA GPU: not highest priority project)
12/31/2014 8:21:17 AM | Asteroids@home | Scheduler request completed
12/31/2014 8:21:27 AM | Asteroids@home | Sending scheduler request: To report completed tasks.
12/31/2014 8:21:27 AM | Asteroids@home | Reporting 1 completed tasks
12/31/2014 8:21:27 AM | Asteroids@home | Not requesting tasks: don't need (CPU: not highest priority project; NVIDIA GPU: not highest priority project)
12/31/2014 8:21:30 AM | Asteroids@home | Scheduler request completed
12/31/2014 8:27:08 AM | Asteroids@home | Computation for task ps_141205_60414_23_2 finished
12/31/2014 8:27:08 AM | Asteroids@home | Starting task ps_141205_60436_9_2
12/31/2014 8:27:10 AM | Asteroids@home | Started upload of ps_141205_60414_23_2_0
12/31/2014 8:27:18 AM | Asteroids@home | Finished upload of ps_141205_60414_23_2_0
12/31/2014 8:27:20 AM | Asteroids@home | Sending scheduler request: To report completed tasks.
12/31/2014 8:27:20 AM | Asteroids@home | Reporting 1 completed tasks
12/31/2014 8:27:20 AM | Asteroids@home | Not requesting tasks: don't need (CPU: not highest priority project; NVIDIA GPU: not highest priority project)
12/31/2014 8:27:22 AM | Asteroids@home | Scheduler request completed
14) Message boards : Server programs : BOINC scheduling feature I'd like to see (Message 40567)
Posted 6 Oct 2011 by Matthew Burch
Post:
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.
15) Message boards : Server programs : BOINC scheduling feature I'd like to see (Message 40518)
Posted 2 Oct 2011 by Matthew Burch
Post:
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? :)
16) Message boards : Server programs : BOINC scheduling feature I'd like to see (Message 40513)
Posted 2 Oct 2011 by Matthew Burch
Post:
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.

Projects want their tasks returned in a reasonable amount of time so I highly doubt any project would agree to give you a deadline "far, far in the future" just because you're asking for a fill in task.

To me it seems the scheduler is complicated enough already and there's not much to be gained from your scheme compared to what we already have.


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?
17) Message boards : Server programs : BOINC scheduling feature I'd like to see (Message 40503)
Posted 1 Oct 2011 by Matthew Burch
Post:
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.




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.