Changes between Initial Version and Version 1 of CreditProposal


Ignore:
Timestamp:
Jan 9, 2008, 2:22:14 PM (16 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CreditProposal

    v1 v1  
     1= Proposal for a new credit system =
     2
     3This is a discussion of (and tentative proposal for)
     4a new credit system for BOINC.
     5
     6== Requirements ==
     7
     8 * The system should reflect how much "utility" volunteers provide to projects.  There are many types of utility (see below).  Projects should be able to define utility however they want.
     9 * The system should limit the amount of credits that projects can grant, so that there will be no incentive for average volunteers to select projects based on credit.
     10
     11== Types of utility ==
     12
     13Possible types of utility:
     14
     15 * Computation (FP, integer, or mixed) without tight deadlines (this is typical of most current projects).
     16 * Computation with a tight latency bound (minutes or hours).
     17 * Computation that needs a large amount of RAM.
     18 * Computation that needs a large amount of storage.
     19 * Storage (e.g. GB/day)
     20 * Storage, with network bandwidth and/or availability requirements
     21 * Network bandwidth (e.g. web crawling)
     22 * Network bandwidth at particular times of day (e.g. Internet performance study)
     23 * Deployment on a wide range of computer types (e.g. studies of computer usage)
     24 * Computation with human "steering"
     25 * Human activity (e.g. Stardust@home-type projects)
     26
     27== Proposal ==
     28
     29 * Computers are described by a set of parameters (FP and int benchmarks, #CPUs, cache sizes, memory bandwidth, available RAM, available disk, presence of particular GPUs, network bandwidth, available fraction, connected fraction, maybe others).
     30 * Each project P publishes a "credit function" C(H) specifying, for a host H with given parameters, how much credit per day would be granted if H is attached exclusively to P.
     31 * Normalization rule: the average of C(H) over all hosts participating in BOINC must be about 100.
     32 * Accounting rule: the credit granted by a project P cannot exceed the sum over hosts H of
     33{{{
     34RS(H, P)*C(H)
     35}}}
     36 where RS(H, P) is the fractional resource share of H's attachment to P.
     37
     38The normalization and accounting rules would be evaluated by cross-project statistics sites.
     39
     40== Examples ==
     41
     42 * Computational projects would have to derive a credit function based on how fast various types of computers run their applications (and how much they value each application).  We can supply automated tools for this.
     43 * Suppose a project's application needs at least 16 GB RAM.  Its credit function would be zero for hosts with < 16 GB RAM.  Its value for hosts with at least 16 GB would be limited by the normalization rule.
     44 * For a storage-only projects, C(H) would be proportional to available disk space (possibly with some additional consideration for network bandwidth etc.).
     45 * Using the published credit functions, it would be possible to develop a "credit maximizer" web site, where users can enter the parameters of their computer, and it tells them how much credit/day each project would give them.
     46 * Similarly, it would be possible to develop a web site that tells users how much additional credit/day they could get by adding more disk/RAM/network bandwidth etc. to an existing computer.
     47
     48== Questions and comments ==
     49
     50 * BOINC doesn't currently have code to measure memory bandwidth or cache sizes; we'd need to develop this.
     51 * Credit can no longer be used as a basis for FLOPS estimates; we'll need something else for that purpose (or keep around the existing credit system and use it only to estimate FLOPS).
     52 * Suppose a project's application needs X GB of RAM, and there is only one host in the BOINC population with that much RAM.  Then its credit per day for that host can be 100N, where N is the size of the population.  In other words, that computer can get as much credit as all other computers combined.  Is this desirable?
     53 * The accounting rule doesn't take into account non-competing projects.  E.g. suppose project A uses only CPU and project B uses only disk.  If hosts attach to both projects with equal resource shares, the projects will be limited to issuing 50 credits/day on the average.
     54 * Suppose a project uses a resource that no other project wants (e.g. QCN uses the accelerometer found in some laptops).  Should the project be able to allocate the full 100 credits/day on average?