Compute model: work distribution

Results are not necessarily dispatched one at a time. Instead, each participant host maintains an estimate of the amount of work remaining (i.e. the time until one of its processors will be idle). Each host also has two scheduling parameters, the high-water mark and the low-water mark (these are part of the host's "preferences", discussed later).

Normally the work remaining is between the high- and low-water marks. Then the work remaining reaches the low-water mark, the core client contacts one or more scheduling servers, and attempts to get enough work to exceed the high-water mark. The scheduling server sends a minimum of one hour of work and a maximum of four weeks of work.

The amount of work (measured in FP/int ops) sent in a single scheduling RPC can be limited by the project, on a per-application basis.

This scheme allows hosts that are sporadically connected (because they're portable or have modem-based connections) to avoid becoming idle due to lack of work.

To do: per-workunit flag saying to return the result ASAP?