| 1 | = Remote job submission - overview = |
| 2 | |
| 3 | In early versions of BOINC, scientists submitted jobs to |
| 4 | a BOINC server by logging in to the server and running programs or scripts. |
| 5 | More recently, BOINC has been used to build systems in which scientists can submit |
| 6 | jobs without logging in to the BOINC server. |
| 7 | These systems can be structured in various ways |
| 8 | (several examples are shown below); |
| 9 | we collectively call them '''remote job submission''' systems. |
| 10 | |
| 11 | In all these systems, job submitters are identified using accounts on the BOINC project |
| 12 | (the same kind of accounts as volunteers; job submitters can also act as resource providers). |
| 13 | Access control is provided by BOINC's [MultiUser multi-user project features]: |
| 14 | users can submit jobs only if they have been given access by project administrators, |
| 15 | and admins can restrict the apps for which each user is allowed to submit jobs. |
| 16 | Users have '''quotas''' how resources are allocated to their jobs. |
| 17 | |
| 18 | == Components supplied by BOINC == |
| 19 | |
| 20 | BOINC doesn't include a pre-packaged remote job submission system, |
| 21 | but it provides a number of components that can be used to build such systems. |
| 22 | |
| 23 | === Job submission control panel === |
| 24 | |
| 25 | The web page '''submit.php''' allows users to view submitted jobs |
| 26 | and retrieve their output files. |
| 27 | This link should be shown only to authorized users. |
| 28 | You can do this, e.g., by putting the following on your home page (index.php): |
| 29 | {{{ |
| 30 | $user = get_logged_in_user(false); |
| 31 | if ($user && BoincUserSubmit::lookup_userid($user->id); |
| 32 | echo ' |
| 33 | <li><a href=submit.php>Job submission</a> |
| 34 | <li><a href=sandbox.php>File sandbox</a> |
| 35 | '; |
| 36 | } |
| 37 | }}} |
| 38 | (include the "File sandbox" link if you use this feature - see below). |
| 39 | |
| 40 | === Local PHP interfaces === |
| 41 | |
| 42 | === Web RPCs for input file management === |
| 43 | |
| 44 | === Web RPCs for job submission === |
| 45 | |
| 46 | == Example: single-server portal == |
| 47 | |
| 48 | In such systems, users submit jobs using forms on the project web site. |
| 49 | These forms are application-specific; you must develop them yourself. |
| 50 | Two examples are included in the BOINC distribution: |
| 51 | * '''html/user/tree_threader.php''' |
| 52 | * '''html/user/lammps.php''' |
| 53 | |
| 54 | TODO: provide a minimal/generic script. |
| 55 | |
| 56 | [[Image(submit2.png)]] |
| 57 | |
| 58 | == Example: multi-server portal == |
| 59 | |
| 60 | In such systems, users submit jobs using forms on a web site |
| 61 | other than the project web site. |
| 62 | |
| 63 | [[Image(submit.png)]] |
| 64 | |
| 65 | == Example: Condor/BOINC bridge == |
| 66 | |
| 67 | In such systems, users submit jobs to a Condor system |
| 68 | using any a command-line or GUI-based interface. |
| 69 | The Condor system may, depending on load conditions, route the job to |
| 70 | a BOINC project. |
| 71 | This system uses web RPCs for all functions. |
| 72 | |