Changes between Version 1 and Version 2 of RemoteJobs
- Timestamp:
- Jun 17, 2011, 3:47:44 PM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
RemoteJobs
v1 v2 1 1 = Web services for remote job submission = 2 2 3 job_control.php 3 This document describes remote interfaces for submitting jobs 4 remotely to a BOINC server. 5 The APIs are accessed by sending a POST request, 6 using HTTPS, to PROJECT_URL/job_control.php 7 8 The inputs and outputs of each API or XML. 9 If an operation fails, the output is of the form 10 {{{ 11 <error> 12 <message>X</message> 13 </error> 14 }}} 15 where X is an error message. 16 17 All operations include the authenticator of the user making the request. 18 This user must be marked as a "job submitter" in the BOINC database. 4 19 5 20 == Describing a batch == 6 21 7 A job is described by22 A single job is described by 8 23 {{{ 9 24 <job> 10 25 [<command_line>C</command_line>] 11 [<input_file> F</input_file>]12 ... 26 [<input_file>URL or path</input_file>] 27 ... other input files 13 28 </job> 14 29 }}} 30 C and F are macro-substituted for sweep variables: see below. 15 31 16 C and F are macro-substituted for sweep variables: see below. 32 Each input file is specified by either a URL accessible to the server, 33 or by a path on the server. 17 34 18 35 A parameter sweep is described by … … 26 43 the string "foo" is macro-substituted with values from x to y with increment z. 27 44 45 Sweeps may be nested. 46 28 47 A batch of jobs is described by: 29 48 {{{ … … 36 55 }}} 37 56 57 The names of the input and output template files may be specified; 58 otherwise the defaults '''appname_in''' and '''appname_out''' are used. 59 38 60 == Batch runtime estimation == 39 61 40 Estimates the makespanof a batch.62 Estimates the completion time of a batch. 41 63 Input: 42 64 {{{ … … 47 69 </batch_estimate> 48 70 }}} 71 72 '''Priority''', if specified, is relative to other batches submitted by this user. 49 73 50 74 Output: … … 73 97 == Querying jobs == 74 98 75 <query_batch> 76 <batch_id>N</batch_id> 77 </query_batch> 99 The jobs in a batch are numbered starting from 0. 100 The name of a job is '''batch_ID_N''' 101 where ID is the batch ID and N is the number of the job. 78 102 79 <batch_status> 80 <fraction_done>X</fraction_done> 81 <completed_jobs>N</completed_jobs> 82 <remaining_time>X</remaining_time> 83 </batch_status> 84 103 Input: 104 {{{ 85 105 <query_job> 106 <authenticator>X</authenticator> 86 107 <name>X</name> 87 108 </query_job> 109 }}} 88 110 111 Output: 112 {{{ 89 113 <job_status> 90 114 <aborted/> 91 115 or 92 <unsent/> 93 or 94 <sent> 95 <hostid>N</hostid> 96 <userid>M</userid> 116 <instance> 117 <unsent/> 118 or 119 <hostid>N</hostid> 120 <userid>M</userid> 121 <runtime>X</runtime> 122 <fraction_done>X</fraction_done> 123 </instance> 124 ... other instances 97 125 </job_status> 126 }}} 127 128 == Querying batches == 129 130 Input: 131 {{{ 132 <query_batch> 133 <authenticator>X</authenticator> 134 <batch_id>N</batch_id> 135 </query_batch> 136 }}} 137 138 Output: 139 {{{ 140 <batch_status> 141 <fraction_done>X</fraction_done> 142 <jobs_completed>N</jobs_completed> 143 <remaining_time>X</remaining_time> 144 </batch_status> 145 }}} 98 146 99 147 == Aborting jobs == 100 148 149 Input: 150 {{{ 101 151 <abort_batch> 152 <authenticator>X</authenticator> 102 153 <batch_id>N</batch_id> 103 154 </abort_batch> 155 }}} 156 157 Output: 158 {{{ 159 <aborted/> 160 }}} 104 161 105 162 == Implementation notes =