| | 1 | = BOINC support for science portals = |
| | 2 | |
| | 3 | A '''science portal''' is a web site serving a group of scientists in a particular area. |
| | 4 | In addition to other features, science portals typically offer a facility |
| | 5 | for computing, in which scientists can submit, via a web interface, |
| | 6 | sets of jobs to be run against standard applications. |
| | 7 | Currently these jobs are run on clusters or Grids. |
| | 8 | |
| | 9 | This document proposes additions to BOINC to facilitate using |
| | 10 | a BOINC project as a computing resource for science portals. |
| | 11 | There are two related parts: |
| | 12 | |
| | 13 | * A mechanism for allocating computing resources among scientists |
| | 14 | * A mechanism for handling batches of jobs |
| | 15 | |
| | 16 | == Computing share == |
| | 17 | |
| | 18 | Demand for computing power may exceed supply, |
| | 19 | in which case we need a mechanism for dividing the supply among scientists. |
| | 20 | Assume that every job is associated with a particular BOINC user, |
| | 21 | representing either a scientist or some other organizational entity, |
| | 22 | and that each such user has a numeric '''computing share''' proportional to |
| | 23 | the fraction of the computing resource they should get. |
| | 24 | |
| | 25 | The way in which computing shares are determined is outside the scope, |
| | 26 | but some possibilities are: |
| | 27 | |
| | 28 | * Each scientist attaches their own PCs to the BOINC project, |
| | 29 | and their computing share is the recent average credit of these hosts. |
| | 30 | * Volunteers attached to the project can assign shares of their resource |
| | 31 | to scientists, and a scientist's overall share is the sum of these, |
| | 32 | weighted by the volunteer average credit. |
| | 33 | * A scientist's share is increased if they contribute to the portal, |
| | 34 | e.g. by participating in the message boards. |
| | 35 | |
| | 36 | What are the precise semantics of computing share? |
| | 37 | Ideally this should accommodate two classes of scientists: |
| | 38 | |
| | 39 | * '''Throughput-oriented''': those who have an infinite stream of jobs. |
| | 40 | They want maximum throughput, and don't care about the turnaround times |
| | 41 | of individual jobs. |
| | 42 | |
| | 43 | * '''Latency-oriented''': those who occasionally have large batches of jobs, |
| | 44 | and who want the entire batch to be finished fast. |
| | 45 | Such a user, for example, might not submit any jobs for a month, |
| | 46 | then submit a batch that takes a day to complete using the entire resource. |
| | 47 | |
| | 48 | To accommodate both extremes, |
| | 49 | we propose a system in which each user has an associated '''debt''', |
| | 50 | i.e. how much computation the system owes to that user. |
| | 51 | |
| | 52 | A user's debt continually increases at a rate equal to their computing share. |
| | 53 | Debt is capped at a value corresponding to, say, |
| | 54 | use of the entire computing resource for 1 week. |
| | 55 | |
| | 56 | When a job completes (successfully or not) its user's debt is decremented |
| | 57 | by the amount of computing done |
| | 58 | (more precisely, but the amount of computing that would have been done |
| | 59 | by the job's resources running at peak speed for the job's elapsed time). |
| | 60 | |
| | 61 | In this scheme, latency-oriented user can build up a debt that allows their |
| | 62 | batches (if they are sufficiently infrequent) to get the full computing resource |
| | 63 | and finish as fast as possible. |