| 1 | = Prioritizing jobs in a multi-user project = |
| 2 | |
| 3 | By default, BOINC processes jobs in a roughly first-in, first-out order. |
| 4 | If your project has multiple job submitters, |
| 5 | this is probably not what you want: |
| 6 | users who submits lots of jobs would get more than their share of the project's capacity. |
| 7 | BOINC has a set of mechanisms that address this issue. |
| 8 | To use them, do the following: |
| 9 | |
| 10 | == Set the desired quotas for job submitters == |
| 11 | |
| 12 | Create a user account for each job submitter, |
| 13 | and [MultiUser set their quotas]. |
| 14 | |
| 15 | == Modify your job submission scripts or work generators == |
| 16 | |
| 17 | Wherever you create jobs - e.g. [RemoteJobs web scripts for remote job submission] |
| 18 | and [WorkGeneration work generators] - you must set the priority of the jobs |
| 19 | as follows: |
| 20 | |
| 21 | * Compute the total FLOP estimate (workunit.rsc_fpops_est) |
| 22 | of the set of jobs. |
| 23 | * Run '''adjust_user_priority''' to update and return the priority |
| 24 | of the submitter: |
| 25 | {{{ |
| 26 | adjust_user_priority --user userID --flops X --app appname |
| 27 | }}} |
| 28 | For example, in PHP: |
| 29 | {{{ |
| 30 | $cmd = "cd ../../bin; ./adjust_user_priority --user $user->id --flops $flops --app $app->name"; |
| 31 | $x = system($cmd); |
| 32 | if (!is_numeric($x) || (double)$x == 0) { |
| 33 | ... handle error |
| 34 | } |
| 35 | $priority = (double)$x; |
| 36 | }}} |
| 37 | |
| 38 | * Set job priorities. For example, use the '''--priority''' option to '''create_work'''. |
| 39 | Also, if you're creating a batch, set batch.logical_end_time to the priority |
| 40 | (this is not used for scheduling, but is used in displaying batches on the web). |
| 41 | |
| 42 | == Use the right feeder options == |
| 43 | |
| 44 | Run the feeder with the '''--priority_asc''' option. |
| 45 | |
| 46 | Note: currently this can't be used in combination with the --all_apps option, |
| 47 | or with homogeneous redundancy. |