Changes between Version 2 and Version 3 of RemoteOverview
- Timestamp:
- Feb 15, 2013, 2:18:10 PM (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
RemoteOverview
v2 v3 1 [[PageOutline]] 1 2 = Remote job submission - overview = 2 3 3 4 In early versions of BOINC, scientists submitted jobs to 4 5 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. 6 More recently, BOINC has been used to build systems, 7 collectively called '''remote job submission''' systems, 8 in which scientists can submit jobs without logging in to the BOINC server. 10 9 11 10 In all these systems, job submitters are identified using accounts on the BOINC project … … 16 15 Users have '''quotas''' how resources are allocated to their jobs. 17 16 17 The structure and details of remote job submission systems 18 vary widely. 19 BOINC doesn't include a pre-packaged remote job submission system, 20 but it provides a number of components that can be used to build such systems. 21 We'll list some example systems, then describe the components. 22 18 23 == Example: single-server portal == 24 25 Users submit jobs using forms on the project web site: 19 26 20 27 [[Image(submit2.png)]] 21 28 22 Users submit jobs using forms on the project web site.23 29 These forms are application-specific; you must develop them yourself. 24 30 Two examples are included in the BOINC distribution: … … 29 35 provide a minimal/generic example. 30 36 31 The job-submission scripts use [ foolocal PHP interfaces] to37 The job-submission scripts use [RemoteOverview#LocalPHPinterfaces local PHP interfaces] to 32 38 authenticate users and to create jobs and batches. 33 39 … … 67 73 == Components supplied by BOINC == 68 74 69 BOINC doesn't include a pre-packaged remote job submission system,70 but it provides a number of components that can be used to build such systems.71 72 75 === Job submission control panel === 73 76 … … 89 92 === Local PHP interfaces === 90 93 94 Job-submission scripts to be run on the BOINC server 95 are best implemented in PHP. 96 BOINC provides a large set of PHP APIs for accessing the BOINC database, 97 staging files, and so on. 98 99 For example, you can authorize a job submission request with code like 100 {{{ 101 $user = get_logged_in_user(); 102 $user_submit = BoincUserSubmit::lookup_userid($user->id); 103 if (!$user_submit) error_page("no submit access"); 104 $app = BoincApp::lookup("name='lammps'"); 105 if (!$app) error_page("no lammps app"); 106 if (!$user_submit->submit_all) { 107 $usa = BoincUserSubmitApp::lookup("user_id=$user->id and app_id=$app->id"); 108 if (!$usa) { 109 error_page("no submit access"); 110 } 111 } 112 }}} 113 114 You can create a batch as follows: 115 {{{ 116 $batch_id = BoincBatch::insert( 117 "(user_id, create_time, njobs, name, app_id, state) 118 values ($user->id, $now, $njobs, '$batch_name', $app->id, ".BATCH_STATE_IN_PROGRESS.")" 119 ); 120 }}} 121 122 '''TODO: document these interfaces, or provide simpler examples.''' 123 91 124 === Web RPCs for input file management === 92 125 126 BOINC provides [RemoteInputFiles#Content-basedfilemanagement Web RPCs for remotely managing input files], 127 and a C++ binding of this API. 128 93 129 === Web RPCs for job submission === 130 131 BOINC provides [RemoteJobs Web RPCs for creating and managing jobs]. 132 133 === Per-user file sandbox === 134 135 BOINC provides [RemoteInputFiles#Per-userfilesandbox a web-based system allowing users to remotely manage input files].