ajm wrote:Then for slower systems, there should be a possibility to transfer an initiated WU using checkpoints when it appears that the machine won't make it on time, for some reason, instead of just waiting for the deadline, dumping and reassigning.
Assuming we'll still have projects that run on more than a day's work per WU, that function would help save a lot of time and power. Such scenarios are likely on laptops, most of which won't be used 100%. But laptops are extremely commun computers nowadays, so that we really should use them. Such partial WUs could be exchanged more freely on a local network, for example, without cluttering FAH's servers. And people with broadband Internet (in my region, 10Gbit/s at home already is a thing) could offer some sort of swapping space on their system for such situations, a bit like they now offer CPUs and GPUs.
All assignments are considered to be time-sensitive. FAH wants
every result returned as quickly as possible. The QRB bonuses are designed specifically to reward anybody who can do better than they've been doing. Moreover they don't to waste any more of anybody's processing time if it can be avoided. Also consider the fact that you're volunteering your resources and you can change your operating hours any time you feel like it or dump a WU any time you feel like it or simply quit. Now design a system that can meet all those requirements ... but also try to optimize the assignments.
A whole series of segments of each trajectory must be completed as soon as the previous segment is returned. How long should it take to maximize the length of the trajectory before the results much be inspected. WUs
should be assigned only once and every one of them has to be completed.
The timeout
should reassign every WU that's lost because they have to force the work to be unnecessarily repeated if it's just "late" Thus a precise assignment can only be achieved if the number of hours per day that your system processes the WU can be predicted. The cost in wasted/duplicated work becomes a tradeoff forced on FAH when that prediction turns out to be wrong.
Suppose I have a precise benchmark for your machine and my prediction becomes imprecise because you happen to alter your operating hours. (We can't force you to adhere to my prediction.) What happens after I make the prediction, if you change your mind about something.
At this point, we don't have a field to record a prediction for your each of your slots and it's probably not worth creating one. This makes the benchmark information only slightly better that simply using random assignments because the timeout/reassign method has to accommodate whatever corrections are necessary.