Changes between Version 114 and Version 115 of ProjectOptions
- Timestamp:
- Nov 12, 2011, 5:11:03 AM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ProjectOptions
v114 v115 2 2 3 3 = Project configuration = 4 5 The following elements in the `<config>` section of your [ProjectConfigFile config.xml] file 6 control various aspects of your project. 7 Booleans default to false, and can be expressed as 4 The following elements in the `<config>` section of your [wiki:ProjectConfigFile config.xml] file control various aspects of your project. Booleans default to false, and can be expressed as 5 8 6 {{{ 9 7 <tag>1</tag> (true) … … 11 9 <tag/> (true) 12 10 }}} 13 14 11 == Scheduler == 15 16 These options control how jobs are dispatched to clients. 17 This is also affected by the parameters you 18 pass to the [BackendPrograms feeder]. 12 These options control how jobs are dispatched to clients. This is also affected by the parameters you pass to the [wiki:BackendPrograms feeder]. 19 13 20 14 === General === 21 22 15 {{{ 23 16 <ban_cpu>regexp</ban_cpu> 24 17 }}} 25 Any host for which p_vendor<tab>p_model matches the given regular expression will not be sent jobs. 26 This is a POSIX extended regular expression. 18 Any host for which p_vendor<tab>p_model matches the given regular expression will not be sent jobs. This is a POSIX extended regular expression. 19 27 20 {{{ 28 21 <ban_os>regexp</ban_os> 29 22 }}} 30 Any host for which os_name<tab>os_version matches the given regular expression will not be sent jobs. 31 This is a POSIX extended regular expression. 23 Any host for which os_name<tab>os_version matches the given regular expression will not be sent jobs. This is a POSIX extended regular expression. 24 32 25 {{{ 33 26 <distinct_beta_apps>0|1</distinct_beta_apps> 34 27 }}} 35 If set, [AppFiltering user application selection] applies to [BetaTest beta test applications] as well as others. 28 If set, [wiki:AppFiltering user application selection] applies to [wiki:BetaTest beta test applications] as well as others. 29 36 30 {{{ 37 31 <homogeneous_redundancy>N</homogeneous_redundancy> 38 32 }}} 39 If zero (default) don't use the [HomogeneousRedundancy homogeneous redundancy] mechanism. 40 Otherwise, specifies the granularity of host classification (1=fine, 2=coarse). 41 (Note: you may also specify this on a per-application basis). 33 If zero (default) don't use the [wiki:HomogeneousRedundancy homogeneous redundancy] mechanism. Otherwise, specifies the granularity of host classification (1=fine, 2=coarse). (Note: you may also specify this on a per-application basis). 34 42 35 {{{ 43 36 <ignore_delay_bound/> 44 37 }}} 45 By default, results are not sent to hosts too slow to complete them within delay bound. 46 If this flag is set, this rule is not enforced. 38 By default, results are not sent to hosts too slow to complete them within delay bound. If this flag is set, this rule is not enforced. 39 47 40 {{{ 48 41 <multiple_clients_per_host>0|1</multiple_clients_per_host> 49 42 }}} 50 Set this if some of your hosts run multiple BOINC clients simultaneously 51 (this is the case on projects that use Condor and/or grid resources, 52 which require each client to use only 1 CPU). 53 If set, the scheduler will skip a check that tries to locate the host 54 based on its IP address. 43 Set this if some of your hosts run multiple BOINC clients simultaneously (this is the case on projects that use Condor and/or grid resources, which require each client to use only 1 CPU). If set, the scheduler will skip a check that tries to locate the host based on its IP address. 44 55 45 {{{ 56 46 <nowork_skip> 0|1 </nowork_skip> 57 47 }}} 58 If the scheduler has no work, it replies to RPCs without doing any database access 59 (e.g., without looking up the user or host record). 60 This reduces DB load, but it fails to update preferences when users click on Update. 61 Use it if your server DB is overloaded. 48 If the scheduler has no work, it replies to RPCs without doing any database access (e.g., without looking up the user or host record). This reduces DB load, but it fails to update preferences when users click on Update. Use it if your server DB is overloaded. 49 62 50 {{{ 63 51 <prefer_primary_platform> 0|1 </prefer_primary_platform> 64 52 }}} 65 Send hosts app versions for their primary platform if one exists; 66 e.g. if a host is 64-bit, don't send it a 32-bit CPU version if a 64-bit CPU version exists. 67 Use this option only if you're sure that your 64-bit versions are faster than the 32-bit versions. 53 Send hosts app versions for their primary platform if one exists; e.g. if a host is 64-bit, don't send it a 32-bit CPU version if a 64-bit CPU version exists. Use this option only if you're sure that your 64-bit versions are faster than the 32-bit versions. 54 68 55 {{{ 69 56 <report_grace_period>x</report_grace_period> 70 57 }}} 71 A "grace period" for task reporting. 72 A task is considered time-out (and a new replica generated) 73 if it is not reported by client_deadline + x. 58 A "grace period" for task reporting. A task is considered time-out (and a new replica generated) if it is not reported by client_deadline + x. 74 59 75 60 {{{ 76 61 <user_filter>0|1</user_filter> 77 62 }}} 78 If set, use the "batch" field of workunits to select which user is 79 allowed to process the job. 80 If batch is nonzero, only send the job to the user with that ID. 63 If set, use the "batch" field of workunits to select which user is allowed to process the job. If batch is nonzero, only send the job to the user with that ID. 81 64 82 65 {{{ 83 66 <workload_sim>0|1</workload_sim> 84 67 }}} 85 Use a more expensive, but more accurate, method to decide whether 86 hosts can complete jobs within their delay bound. 68 Use a more expensive, but more accurate, method to decide whether hosts can complete jobs within their delay bound. 87 69 88 70 === Job limits === … … 90 72 <one_result_per_user_per_wu/> 91 73 }}} 92 If set, send at most one instance of a given job to a given user. 93 This increases the effectiveness of replication-based validation 94 by making it more difficult for hackers to get all the instances of a given job. 74 If set, send at most one instance of a given job to a given user. This increases the effectiveness of replication-based validation by making it more difficult for hackers to get all the instances of a given job. 75 95 76 {{{ 96 77 <one_result_per_host_per_wu/> 97 78 }}} 98 If present, send at most one result of a given workunit to a given host. 99 This is weaker than `one_result_per_user_per_wu`; 100 it's useful if you're using homogeneous redundancy 101 and most of the hosts of a particular class belong to a single user. 79 If present, send at most one result of a given workunit to a given host. This is weaker than `one_result_per_user_per_wu`; it's useful if you're using homogeneous redundancy and most of the hosts of a particular class belong to a single user. 102 80 103 81 {{{ 104 82 <min_sendwork_interval> N </min_sendwork_interval> 105 83 }}} 106 Minimum number of seconds between sending jobs to a given host. 107 You can use this to limit the impact of faulty hosts. 84 Minimum number of seconds between sending jobs to a given host. You can use this to limit the impact of faulty hosts. 108 85 109 86 {{{ … … 111 88 <max_wus_in_progress_gpu> M </max_wus_in_progress_gpu> 112 89 }}} 113 Limit the number of jobs in progress on a given host 114 (and thus limit average turnaround time). 115 Starting with 6.8, the BOINC client report the resources used by in-progress jobs; 116 in this case, the max CPU jobs in progress is '''N*NCPUS''' 117 and the max GPU jobs in progress is '''M*NGPUs'''. 118 Otherwise, the overall maximum is '''N*NCPUS + M*NGPUS)'''. 119 120 See the following section for a more powerful way of expressing 121 limits on in-progress jobs. 90 Limit the number of jobs in progress on a given host (and thus limit average turnaround time). Starting with 6.8, the BOINC client report the resources used by in-progress jobs; in this case, the max CPU jobs in progress is '''N*NCPUS''' and the max GPU jobs in progress is '''M*NGPUs'''. Otherwise, the overall maximum is '''N*NCPUS + M*NGPUS)'''. 91 92 See the following section for a more powerful way of expressing limits on in-progress jobs. 122 93 123 94 {{{ 124 95 <gpu_multiplier> GM </gpu_multiplier> 125 96 }}} 126 If your project uses GPUs, set this to roughly the ratio 127 of GPU speed to CPU speed. 128 Used in the calculation of job limits (see next 2 items). 97 If your project uses GPUs, set this to roughly the ratio of GPU speed to CPU speed. Used in the calculation of job limits (see next 2 items). 98 129 99 {{{ 130 100 <max_wus_to_send> N </max_wus_to_send> 131 101 }}} 132 Maximum jobs returned per scheduler RPC is '''N*(NCPUS + GM*NGPUS)'''. 133 You can use this to limit the impact of faulty hosts. 134 Default is 10. 102 Maximum jobs returned per scheduler RPC is '''N*(NCPUS + GM*NGPUS)'''. You can use this to limit the impact of faulty hosts. Default is 10. 103 135 104 {{{ 136 105 <max_ncpus>N</max_ncpus> 137 106 }}} 138 An upper bound on NCPUS (default: 16)107 An upper bound on NCPUS (default: 64) 139 108 140 109 {{{ 141 110 <daily_result_quota> N </daily_result_quota> 142 111 }}} 143 Each host has a field MRD in the interval [1 .. daily_result_quota]; 144 it's initially daily_result_quota, 145 and is adjusted as the host sends good or bad results. 146 The maximum number of jobs sent to a given host in a 24-hour period is 147 '''MRD*(NCPUS + GM*NGPUS)'''. 148 You can use this to limit the impact of faulty hosts. 112 Each host has a field MRD in the interval [1 .. daily_result_quota]; it's initially daily_result_quota, and is adjusted as the host sends good or bad results. The maximum number of jobs sent to a given host in a 24-hour period is '''MRD*(NCPUS + GM*NGPUS)'''. You can use this to limit the impact of faulty hosts. 149 113 150 114 === Job limits (advanced) === 151 The following is a 152 more adaptable way of expressing limits on the number of jobs in progress on a host. 153 You can specify limits for specific apps, and for your projects as a whole. 154 Within each of these, you can specify limits for CPU jobs, GPU jobs, or total. 155 In the case of CPU and GPU jobs, you can specify whether the limit should be 156 scaled by the number of devices present on the host. 157 158 This uses a separate config file, '''config_aux.xml'''. 159 The syntax is: 115 The following is a more adaptable way of expressing limits on the number of jobs in progress on a host. You can specify limits for specific apps, and for your projects as a whole. Within each of these, you can specify limits for CPU jobs, GPU jobs, or total. In the case of CPU and GPU jobs, you can specify whether the limit should be scaled by the number of devices present on the host. 116 117 This uses a separate config file, '''config_aux.xml'''. The syntax is: 118 160 119 {{{ 161 120 <?xml version="1.0" ?> … … 183 142 </config> 184 143 }}} 185 186 144 === Job-cache scheduling === 187 188 This is the default. 189 The feeder (a daemon program) maintains a cache of jobs in shared memory. 190 Instances of the scheduler get jobs from this cache, 191 reducing their database access overhead. 145 This is the default. The feeder (a daemon program) maintains a cache of jobs in shared memory. Instances of the scheduler get jobs from this cache, reducing their database access overhead. 192 146 193 147 {{{ … … 195 149 }}} 196 150 The size of the job cache. Default is 100 jobs. 151 197 152 {{{ 198 153 <feeder_query_size>N</feeder_query_size> … … 201 156 202 157 === Matchmaker scheduling === 203 204 This is a variant of job-cache scheduling. 205 The job selection policy is determined by a "score function"; 206 this highest-scoring jobs are sent to the client. 158 This is a variant of job-cache scheduling. The job selection policy is determined by a "score function"; this highest-scoring jobs are sent to the client. 207 159 208 160 {{{ … … 210 162 }}} 211 163 If set, enable matchmaker scheduling. 164 212 165 {{{ 213 166 <mm_min_slots>N</mm_min_slots> 214 167 <mm_max_slots>N</mm_max_slots> 215 168 }}} 216 Specify the min and max number of jobs to scan for a given client request. 217 Defaults are 20 and 50. 169 Specify the min and max number of jobs to scan for a given client request. Defaults are 20 and 50. 170 218 171 {{{ 219 172 <job_size_matching>0|1</job_size_matching> 220 173 }}} 221 If set, include a term in the score function that 222 favors sending large jobs to fast hosts. 223 To use this, you must run the census program as a periodic task 224 to maintain statistics on the distribution of host speeds. 174 If set, include a term in the score function that favors sending large jobs to fast hosts. To use this, you must run the census program as a periodic task to maintain statistics on the distribution of host speeds. 225 175 226 176 === Accelerating retries === 227 228 The goal of this mechanism (which works with job-cache and matchmaker scheduling, 229 but not locality scheduling) is to send timeout-generated retries to 230 hosts that are likely to finish them fast. 231 Here's how it works: 177 The goal of this mechanism (which works with job-cache and matchmaker scheduling, but not locality scheduling) is to send timeout-generated retries to hosts that are likely to finish them fast. Here's how it works: 178 232 179 * Hosts are deemed "reliable" (a slight misnomer) if they satisfy turnaround time and error rate criteria. 233 180 * A job instance is deemed "need-reliable" if its priority is above a threshold. 234 * The scheduler tries to send need-reliable jobs to reliable hosts. 235 When it does, it reduces the delay bound of the job. 236 * When job replicas are created in response to errors or timeouts, 237 their priority is raised relative to the job's base priority. 181 * The scheduler tries to send need-reliable jobs to reliable hosts. When it does, it reduces the delay bound of the job. 182 * When job replicas are created in response to errors or timeouts, their priority is raised relative to the job's base priority. 238 183 239 184 The configurable parameters are: 185 240 186 {{{ 241 187 <reliable_on_priority>X</reliable_on_priority> 242 188 }}} 243 Results with priority at least '''reliable_on_priority''' are treated as "need-reliable". 244 With matchmaker scheduling, they'll be sent preferentially to reliable hosts; 245 with job-cache scheduling, they'll be sent ONLY to reliable hosts. 189 Results with priority at least '''reliable_on_priority''' are treated as "need-reliable". With matchmaker scheduling, they'll be sent preferentially to reliable hosts; with job-cache scheduling, they'll be sent ONLY to reliable hosts. 246 190 247 191 {{{ … … 249 193 <reliable_max_error_rate>X</reliable_max_error_rate> 250 194 }}} 251 Hosts whose average turnaround is at most reliable_max_avg_turnaround 252 and whose error rate is at most reliable_max_error_rate are considered 'reliable'. 253 Make sure you set these low enough that a significant fraction (e.g. 25%) of your hosts qualify. 195 Hosts whose average turnaround is at most reliable_max_avg_turnaround and whose error rate is at most reliable_max_error_rate are considered 'reliable'. Make sure you set these low enough that a significant fraction (e.g. 25%) of your hosts qualify. 196 254 197 {{{ 255 198 <reliable_reduced_delay_bound>X</reliable_reduced_delay_bound> 256 199 }}} 257 When a need-reliable result is sent to a reliable host, 258 multiply the delay bound by '''reliable_reduced_delay_bound''' (typically 0.5 or so). 200 When a need-reliable result is sent to a reliable host, multiply the delay bound by '''reliable_reduced_delay_bound''' (typically 0.5 or so). 201 259 202 {{{ 260 203 <reliable_priority_on_over>X</reliable_priority_on_over> 261 204 <reliable_priority_on_over_except_error>X</reliable_priority_on_over_except_error> 262 205 }}} 263 264 If '''reliable_priority_on_over''' is nonzero, 265 increase the priority of duplicate jobs by that amount over the job's base priority. 266 Otherwise, if '''reliable_priority_on_over_except_error''' is nonzero, 267 increase the priority of duplicates caused by timeout (not error) by that amount. 268 (Typically only one of these is nonzero, and is equal to '''reliable_on_priority'''.) 269 270 NOTE: this mechanism can be used to preferentially send ANY job, 271 not just retries, to fast/reliable hosts. 272 To do so, set the workunit's priority to '''reliable_on_priority''' or greater. 206 If '''reliable_priority_on_over''' is nonzero, increase the priority of duplicate jobs by that amount over the job's base priority. Otherwise, if '''reliable_priority_on_over_except_error''' is nonzero, increase the priority of duplicates caused by timeout (not error) by that amount. (Typically only one of these is nonzero, and is equal to '''reliable_on_priority'''.) 207 208 NOTE: this mechanism can be used to preferentially send ANY job, not just retries, to fast/reliable hosts. To do so, set the workunit's priority to '''reliable_on_priority''' or greater. 273 209 274 210 === Locality scheduling === … … 276 212 <locality_scheduling/> 277 213 }}} 278 When possible, send work that uses the same files that the host already has. 279 This is intended for projects which have large data files, 280 where many different workunits use the same data file. 281 In this case, to reduce download demands on the server, 282 it may be advantageous to retain the data files on the hosts, 283 and send them work for the files that they already have. See [LocalityScheduling Locality Scheduling]. 214 When possible, send work that uses the same files that the host already has. This is intended for projects which have large data files, where many different workunits use the same data file. In this case, to reduce download demands on the server, it may be advantageous to retain the data files on the hosts, and send them work for the files that they already have. See [wiki:LocalityScheduling Locality Scheduling]. 215 284 216 {{{ 285 217 <locality_scheduling_wait_period> N </locality_scheduling_wait_period> 286 218 }}} 287 This element only has an effect when used in conjunction with the previous locality scheduling element. 288 It tells the scheduler to use 'trigger files' to inform the project 289 that more work is needed for specific files. 290 The period is the number of seconds which the scheduler will wait to see 291 if the project can create additional work. 292 Together with project-specific daemons or scripts this can be used for 'just-in-time' workunit creation. 293 See [LocalityScheduling Locality Scheduling]. 219 This element only has an effect when used in conjunction with the previous locality scheduling element. It tells the scheduler to use 'trigger files' to inform the project that more work is needed for specific files. The period is the number of seconds which the scheduler will wait to see if the project can create additional work. Together with project-specific daemons or scripts this can be used for 'just-in-time' workunit creation. See [wiki:LocalityScheduling Locality Scheduling]. 294 220 295 221 === Job retransmission === … … 297 223 <resend_lost_results> 0|1 </resend_lost_results> 298 224 }}} 299 If set, and a <other_results> list is present in scheduler request, resend any in-progress results not in the list. 300 This is recommended; it may increase the efficiency of your project. 301 For reasons that are not well understood, a BOINC client sometimes fails to receive the scheduler reply. 302 This flag addresses that issue: it causes the SAME results to be resent by the scheduler, 303 if the client has failed to receive them. 304 Note: this will increase the load on your DB server; you can minimize this by creating an index: 225 If set, and a <other_results> list is present in scheduler request, resend any in-progress results not in the list. This is recommended; it may increase the efficiency of your project. For reasons that are not well understood, a BOINC client sometimes fails to receive the scheduler reply. This flag addresses that issue: it causes the SAME results to be resent by the scheduler, if the client has failed to receive them. Note: this will increase the load on your DB server; you can minimize this by creating an index: 226 305 227 {{{ 306 228 alter table result add index res_host_state (hostid, server_state); … … 309 231 <send_result_abort>0|1</send_result_abort> 310 232 }}} 311 If set, and the client is processing a result for a WU that has been canceled or is not in the DB 312 (i.e. there's no chance of getting credit), tell the client to abort the result regardless of state. 313 If client is processing a result for a WU that has been assimilated or is overdue 314 (i.e. there's a chance of not getting credit) tell the client to abort the result if it hasn't started yet. 315 Note: this will increase the load on your DB server. 316 233 If set, and the client is processing a result for a WU that has been canceled or is not in the DB (i.e. there's no chance of getting credit), tell the client to abort the result regardless of state. If client is processing a result for a WU that has been assimilated or is overdue (i.e. there's a chance of not getting credit) tell the client to abort the result if it hasn't started yet. Note: this will increase the load on your DB server. 317 234 318 235 === Data distribution === … … 320 237 <replace_download_url_by_timezone>URL</replace_download_url_by_timezone> 321 238 }}} 322 OUTDATED: BERND, PLEASE UPDATE. 323 When the scheduler sends work to hosts, 324 it replaces the download URL appearing in the data and executable file descriptions 325 with the download URL closest to the host's timezone. 326 The project must provide a two-column file called 'download_servers' in the project root directory. 327 This is a list of all download servers that will be inserted when work is sent to hosts. 328 The first column is an integer listing the server's offset in seconds from UTC. 329 The second column is the server URL in the format such as !http://einstein.phys.uwm.edu. 330 The download servers must have identical file hierarchies and contents, 331 and the path to file and executables must start with '/download/...' 332 as in '!http://X/download/123/some_file_name'. 239 OUTDATED: BERND, PLEASE UPDATE. When the scheduler sends work to hosts, it replaces the download URL appearing in the data and executable file descriptions with the download URL closest to the host's timezone. The project must provide a two-column file called 'download_servers' in the project root directory. This is a list of all download servers that will be inserted when work is sent to hosts. The first column is an integer listing the server's offset in seconds from UTC. The second column is the server URL in the format such as !http://einstein.phys.uwm.edu. The download servers must have identical file hierarchies and contents, and the path to file and executables must start with '/download/...' as in '!http://X/download/123/some_file_name'. 240 333 241 {{{ 334 242 <cache_md5_info> 0|1 </cache_md5_info> 335 243 }}} 336 When creating work, keep a record (in files called foo.md5) of the file length 337 and md5 sum of data files and executables. 338 This can greatly reduce the time needed to create work, 339 if (1) these files are re-used, and (2) there are many of these files, 340 and (3) reading the files from disk is time-consuming. 244 When creating work, keep a record (in files called foo.md5) of the file length and md5 sum of data files and executables. This can greatly reduce the time needed to create work, if (1) these files are re-used, and (2) there are many of these files, and (3) reading the files from disk is time-consuming. 341 245 342 246 === Logging === 343 344 247 The contents of the scheduler log file is controlled by the following: 345 248 … … 347 250 <debug_assignment/> 348 251 }}} 349 Explain the sending of [AssignedWork assigned work]. 252 Explain the sending of [wiki:AssignedWork assigned work]. 253 350 254 {{{ 351 255 <debug_edf_sim_detail/> 352 256 }}} 353 257 Show the details of EDF simulation 258 354 259 {{{ 355 260 <debug_edf_sim_workload/> 356 261 }}} 357 262 Show the initial conditions of EDF simulation 263 358 264 {{{ 359 265 <debug_handle_results/> 360 266 }}} 361 267 Show the handling of reported jobs. 268 362 269 {{{ 363 270 <debug_locality> 364 271 }}} 365 272 Show locality scheduling debugging info. 273 366 274 {{{ 367 275 <debug_prefs/> 368 276 }}} 369 277 Show the propagation of global prefs. 278 370 279 {{{ 371 280 <debug_quota/> 372 281 }}} 373 282 Show info related to job quotas (per RPC, max in progress, max per day) 283 374 284 {{{ 375 285 <debug_request_details/> 376 286 }}} 377 287 Show details of request message. 288 378 289 {{{ 379 290 <debug_request_headers/> 380 291 }}} 381 292 Show HTTP request headers. 293 382 294 {{{ 383 295 <debug_send/> 384 296 }}} 385 297 Explain the sending of jobs. 298 386 299 {{{ 387 300 <debug_user_messages/> 388 301 }}} 389 302 Show messages we're sending to the user. 303 390 304 {{{ 391 305 <debug_version_select/> … … 394 308 395 309 The overall verbosity is controlled by the following: 310 396 311 {{{ 397 312 <sched_debug_level> N </sched_debug_level> 398 313 }}} 399 Log messages have a "level": 1=minimal, 2=normal, 3=debug. 400 The messages enabled by the above flags have level=2. 401 If you set this option to N, only messages of level N or less will be written. 402 403 314 Log messages have a "level": 1=minimal, 2=normal, 3=debug. The messages enabled by the above flags have level=2. If you set this option to N, only messages of level N or less will be written. 404 315 405 316 === Client control === #client-control … … 407 318 <next_rpc_delay>x</next_rpc_delay> 408 319 }}} 409 In each scheduler reply, tell the clients to do another scheduler RPC after at most X seconds, 410 regardless of whether they need work. 411 This is useful, e.g., to ensure that in-progress jobs can be canceled in a bounded amount of time. 320 In each scheduler reply, tell the clients to do another scheduler RPC after at most X seconds, regardless of whether they need work. This is useful, e.g., to ensure that in-progress jobs can be canceled in a bounded amount of time. 321 412 322 {{{ 413 323 <verify_files_on_app_start/> 414 324 }}} 415 416 Before starting or restarting an app, 417 check contents of input files and app version files by either MD5 or digital signature check. 418 Detects user tampering with file 419 (but doesn't really increase security, since user could also change MD5s or signatures in client state file). 325 Before starting or restarting an app, check contents of input files and app version files by either MD5 or digital signature check. Detects user tampering with file (but doesn't really increase security, since user could also change MD5s or signatures in client state file). 326 420 327 {{{ 421 328 <symstore>URL</symstore> 422 329 }}} 423 330 URL of your project's symbol store, used for debugging Windows applications. 331 424 332 {{{ 425 333 <min_core_client_version_announced> N </min_core_client_version_announced> 426 334 }}} 427 Announce a new version of the BOINC core client, 428 which in the future will be the minimum required version. 429 In conjunction with the next tag, 430 you can warn users with version below this to upgrade by a specified deadline. 431 The version number is encoded as 10000*major + 100*minor + release. 335 Announce a new version of the BOINC core client, which in the future will be the minimum required version. In conjunction with the next tag, you can warn users with version below this to upgrade by a specified deadline. The version number is encoded as 10000*major + 100*minor + release. 336 432 337 {{{ 433 338 <min_core_client_upgrade_deadline> N </min_core_client_upgrade_deadline> 434 339 }}} 435 Use in conjunction with the previous tag. 436 The value given here is the Unix epoch returned by time(2) until which hosts can update their core client. 437 After this time, they may be shut out of the project. 438 Before this time, they will receive messages warning them to upgrade. 340 Use in conjunction with the previous tag. The value given here is the Unix epoch returned by time(2) until which hosts can update their core client. After this time, they may be shut out of the project. Before this time, they will receive messages warning them to upgrade. 341 439 342 {{{ 440 343 <msg_to_host/> 441 344 }}} 442 345 If present, check the msg_to_host table on each RPC, and send the client any messages queued for it. 346 443 347 {{{ 444 348 <non_cpu_intensive> 0|1 </non_cpu_intensive> … … 447 351 448 352 * The client will download one result at a time. 449 * This result will be executed whenever computation is enabled (bypassing the normal scheduling mechanism). 450 451 This is intended for [NonCpuIntensive applications that use little CPU time], 452 e.g. that do network or host measurements. 353 * This result will be executed whenever computation is enabled (bypassing the normal scheduling mechanism). 354 355 This is intended for [wiki:NonCpuIntensive applications that use little CPU time], e.g. that do network or host measurements. 453 356 454 357 === Deprecated options === 455 456 358 {{{ 457 359 <no_amd_k6>1</no_amd_k6> 458 360 }}} 459 361 Don't issue work to clients with AMD K6 processors. Equivalent to 362 460 363 {{{ 461 364 <ban_cpu>.*AMD.*\t.*Family 5 Model 8 Stepping 0.*</ban_cpu> 462 365 }}} 463 464 366 == Upload certificates == 465 367 {{{ 466 368 <dont_generate_upload_certificates/> 467 369 }}} 468 Don't put upload certificates in results. 469 This makes result generation a lot faster, 470 since no encryption is done, but you lose protection against DoS attacks on your upload servers. 370 Don't put upload certificates in results. This makes result generation a lot faster, since no encryption is done, but you lose protection against DoS attacks on your upload servers. 371 471 372 {{{ 472 373 <ignore_upload_certificates/> 473 374 }}} 474 If upload certificates are not generated, 475 this option must be enabled to force the file upload handler to accept files. 375 If upload certificates are not generated, this option must be enabled to force the file upload handler to accept files. 476 376 477 377 == Default preferences == … … 479 379 <default_disk_max_used_gb> X </default_disk_max_used_gb> 480 380 }}} 481 Sets the default value for the `disk_max_used_gb` preference so it's consistent 482 between the scheduler and web pages. 483 The scheduler uses it when a request for work doesn't include preferences, 484 or the preference is set to zero. 485 The web page scripts use it to set the initial value when displaying or editing preferences the first time, 486 or when the user never saved them. 487 Default is 100. 381 Sets the default value for the `disk_max_used_gb` preference so it's consistent between the scheduler and web pages. The scheduler uses it when a request for work doesn't include preferences, or the preference is set to zero. The web page scripts use it to set the initial value when displaying or editing preferences the first time, or when the user never saved them. Default is 100. 382 488 383 {{{ 489 384 <default_disk_max_used_pct> X </default_disk_max_used_pct> 490 385 }}} 491 Sets the default value for the `disk_max_used_pct` preference so its consistent 492 between the scheduler and web pages. 493 The scheduler uses it when a request for work doesn't include preferences, 494 or the preference is set to zero. 495 The web page scripts use it to set the initial value when displaying 496 or editing preferences the first time, 497 or when the user never saved them. Default is 50. 386 Sets the default value for the `disk_max_used_pct` preference so its consistent between the scheduler and web pages. The scheduler uses it when a request for work doesn't include preferences, or the preference is set to zero. The web page scripts use it to set the initial value when displaying or editing preferences the first time, or when the user never saved them. Default is 50. 387 498 388 {{{ 499 389 <default_disk_min_free_gb> X </default_disk_min_free_gb> 500 390 }}} 501 Sets the default value for the `disk_min_free_gb` preference so its consistent 502 between the scheduler and web pages. 503 The scheduler uses it when a request for work doesn't include preferences. 504 The web page scripts use it to set the initial value when displaying or editing preferences the first time, 505 or when the user never saved them. 506 Also, the scheduler uses this setting to override any smaller preference from the host, 507 it enforces a 'minimum free disk space' to keep from filling up the drive. 508 Recommend setting this no smaller than .001 (1MB or 1,000,000 bytes). Default is .001. 509 391 Sets the default value for the `disk_min_free_gb` preference so its consistent between the scheduler and web pages. The scheduler uses it when a request for work doesn't include preferences. The web page scripts use it to set the initial value when displaying or editing preferences the first time, or when the user never saved them. Also, the scheduler uses this setting to override any smaller preference from the host, it enforces a 'minimum free disk space' to keep from filling up the drive. Recommend setting this no smaller than .001 (1MB or 1,000,000 bytes). Default is .001. 510 392 511 393 == Credit == 512 (See also the command-line options of the [ValidationIntro validator]). 394 (See also the command-line options of the [wiki:ValidationIntro validator]). 395 513 396 {{{ 514 397 <granted_credit_weight>X</granted_credit_weight> … … 520 403 <fp_benchmark_weight> X </fp_benchmark_weight> 521 404 }}} 522 The weighting given to the Whetstone benchmark in the calculation of claimed credit. 523 Must be in [0 .. 1]. Projects whose applications are floating-point intensive should use 1; pure integer applications, 0. 524 Choosing an appropriate value will reduce the disparity in claimed credit between hosts. 525 The script html/ops/credit_study.php, run against the database of a running project, will suggest what value to use. 405 The weighting given to the Whetstone benchmark in the calculation of claimed credit. Must be in [0 .. 1]. Projects whose applications are floating-point intensive should use 1; pure integer applications, 0. Choosing an appropriate value will reduce the disparity in claimed credit between hosts. The script html/ops/credit_study.php, run against the database of a running project, will suggest what value to use. 406 526 407 {{{ 527 408 <granted_credit_weight>X</granted_credit_weight> … … 533 414 <delete_delay_hours>X</delete_delay_hours> 534 415 }}} 535 Wait X hours before deleting files. 536 This provides a 'grace period' during which late results will still get credit. 416 Wait X hours before deleting files. This provides a 'grace period' during which late results will still get credit. 417 537 418 {{{ 538 419 <httpd_user>username</httpd_user> 539 420 }}} 540 The user name under which the web server runs. 541 As a safeguard, the file deleter skips files not owned by this user. 421 The user name under which the web server runs. As a safeguard, the file deleter skips files not owned by this user. 542 422 543 423 == Server status page options == #server-status … … 546 426 }}} 547 427 Host name of web server. 428 548 429 {{{ 549 430 <sched_host>hostname</sched_host> 550 431 }}} 551 432 Host name of scheduling server. 433 552 434 {{{ 553 435 <uldl_host>hostname</uldl_host> 554 436 }}} 555 437 Host name of upload/download server. 438 556 439 {{{ 557 440 <uldl_pid>path</uldl_pid> 558 441 }}} 559 442 pid file of upload/download server (default: `/etc/httpd/run/httpd.pid`). 443 560 444 {{{ 561 445 <ssh_exe>path</ssh_exe> 562 446 }}} 563 447 path to `ssh` (default: `/usr/bin/ssh`). 448 564 449 {{{ 565 450 <ps_exe>path</ps_exe> … … 567 452 path to `ps` (which supports "w" flag) (default: `/bin/ps`). 568 453 569 570 454 == Web site features == #website 571 455 {{{ … … 573 457 }}} 574 458 If present, don't show profile pictures until they've been screened and approved by project admins. 459 575 460 {{{ 576 461 <show_results/> 577 462 }}} 578 463 Enable web site features that show results (per user, host, etc.). 464 579 465 {{{ 580 466 <dont_suppress_pending/> 581 467 }}} 582 468 Do not hide incomplete results when using adaptive replication. 469 583 470 {{{ 584 471 <no_forum_rating/> 585 472 }}} 586 473 Disable forum post rating. 474 587 475 {{{ 588 476 <no_web_account_creation/> 589 477 }}} 590 478 Don't allow account creation via the web. 479 591 480 {{{ 592 481 <akismet_key> 1234567890ab </akismet_key> 593 482 }}} 594 If set, akismet.com is used to check post contents to protect forums from spam. 595 See [ProtectionFromSpam Protecting message boards from spam] for more information. 483 If set, akismet.com is used to check post contents to protect forums from spam. See [wiki:ProtectionFromSpam Protecting message boards from spam] for more information. 484 596 485 {{{ 597 486 <users_per_page>N</users_per_page> 598 487 }}} 599 488 Number of entries per page for top users/teams/hosts. Default is 20. 489 600 490 {{{ 601 491 <teams_per_page>N</teams_per_page> … … 608 498 <recaptcha_private_key>X</recaptcha_private_key> 609 499 }}} 610 Enable the use of Recaptcha for profile creation/editing; 611 see [ProtectionFromSpam Protecting message boards from spam] for more information. 500 Enable the use of Recaptcha for profile creation/editing; see [wiki:ProtectionFromSpam Protecting message boards from spam] for more information. 501 612 502 {{{ 613 503 <profile_min_credit>X</profile_min_credit> 614 504 }}} 615 505 The minimum amount of credit to create or edit a profile. 506 616 507 {{{ 617 508 <team_forums_members_only>0|1</team_forums_members_only> 618 509 }}} 619 510 If set, team message boards are visible only to team members. 511 620 512 {{{ 621 513 <moderators_vote_to_ban>0|1</moderators_vote_to_ban> 622 514 }}} 623 515 If set, banishments require a majority vote among moderators. 516 624 517 {{{ 625 518 <no_computing>0|1</no_computing> 626 519 }}} 627 If set, web pages have no references to computing (tasks, credit etc.). 628 For projects that are using Bossa or Bolt. 520 If set, web pages have no references to computing (tasks, credit etc.). For projects that are using Bossa or Bolt. 629 521 630 522 == Miscellaneous == #misc … … 632 524 <min_core_client_version> N </min_core_client_version> 633 525 }}} 634 If the scheduler gets a request from a client with a version number less than this, 635 it returns an error message and doesn't do any other processing. 636 The version number is expressed as an integer with the encoding 10000*major + 100*minor + release. 637 You can also specify this separately for each [AppVersion application]. 526 If the scheduler gets a request from a client with a version number less than this, it returns an error message and doesn't do any other processing. The version number is expressed as an integer with the encoding 10000*major + 100*minor + release. You can also specify this separately for each [wiki:AppVersion application]. 527 638 528 {{{ 639 529 <ended>0|1</ended> 640 530 }}} 641 531 Project has permanently ended. Tell clients so user can be notified. 532 642 533 {{{ 643 534 <disable_account_creation/> 644 535 }}} 645 536 If present, disallow account creation. 537 646 538 {{{ 647 539 <min_passwd_length> N </min_passwd_length> 648 540 }}} 649 541 Minimum length of user passwords. Default is 6. 542 650 543 {{{ 651 544 <request_time_stats_log/> 652 545 }}} 653 If present, the scheduler will tell clients (via scheduler replies) to 654 upload (via scheduler requests) their time stats log 655 (which contains records of when the client started and stopped running). 546 If present, the scheduler will tell clients (via scheduler replies) to upload (via scheduler requests) their time stats log (which contains records of when the client started and stopped running). 547 656 548 {{{ 657 549 <fuh_debug_level> N </fuh_debug_level> 658 550 }}} 659 551 Verbosity level for file upload handler log output. 1=minimal, 2=normal (default), 3=verbose. 552 660 553 {{{ 661 554 <dont_store_success_stderr/> 662 555 }}} 663 If present, don't store the stderr log in the database for successful workunits. 664 May be useful to save on database size. Available since r18528. 556 If present, don't store the stderr log in the database for successful workunits. May be useful to save on database size. Available since r18528. 665 557 666 558 == Database info == #db … … 679 571 [ <replica_db_passwd>database_password</replica_db_passwd> ] 680 572 }}} 681 Description a replica database server, which is used for read-only queries (optional). 682 NOTE: according to Bernd Machenschalk, 683 using a separate user account with read-only access to the replica 684 increases the apparent consistency between main and replica. 573 Description a replica database server, which is used for read-only queries (optional). NOTE: according to Bernd Machenschalk, using a separate user account with read-only access to the replica increases the apparent consistency between main and replica. 685 574 686 575 == Hosts, directories, and URLs == #dirs 687 688 (These are created by [MakeProject make_project]; normally you don't need to change them.) 576 (These are created by [wiki:MakeProject make_project]; normally you don't need to change them.) 577 689 578 {{{ 690 579 <master_url>URL</master_url> … … 696 585 <host>hostname</host> 697 586 }}} 698 name of project's main host, as given by Python's `socket.hostname()`. 699 Daemons and tasks run on this host by default. 700 587 name of project's main host, as given by Python's `socket.hostname()`. Daemons and tasks run on this host by default. 701 588 702 589 {{{ … … 704 591 }}} 705 592 ID of scheduler shared memory. Must be unique on host. 593 706 594 {{{ 707 595 <download_url>URL</download_url> 708 596 }}} 709 597 URL of data server for download. 598 710 599 {{{ 711 600 <download_dir>path</download_dir> 712 601 }}} 713 602 absolute path of download directory. 603 714 604 {{{ 715 605 <uldl_dir_fanout>N</uldl_dir_fanout> 716 606 }}} 717 fan-out factor of upload and download directories 718 (see [DirHierarchy Hierarchical upload/download directories]). 607 fan-out factor of upload and download directories (see [wiki:DirHierarchy Hierarchical upload/download directories]). 608 719 609 {{{ 720 610 <upload_url>URL</upload_url> 721 611 }}} 722 612 URL of file upload handler. 613 723 614 {{{ 724 615 <upload_dir>path</upload_dir> 725 616 }}} 726 617 absolute path of upload directory. 618 727 619 {{{ 728 620 <cgi_url>URL</cgi_url> 729 621 }}} 730 622 URL of scheduler. 623 731 624 {{{ 732 625 <log_dir>path</log_dir> 733 626 }}} 734 627 absolute path of logfile directory. 628 735 629 {{{ 736 630 <bin_dir>relative-path</bin_dir> <!-- relative to project_dir --> … … 742 636 <sched_lockfile_dir>path</sched_lockfile_dir> 743 637 }}} 744 Enables scheduler locking (recommended) and specifies directory where scheduler lockfiles are stored. 745 Must be writable to the Apache user. 638 Enables scheduler locking (recommended) and specifies directory where scheduler lockfiles are stored. Must be writable to the Apache user. 746 639 747 640 = Parsing project options = #parsing-config 748 749 641 A program or script can access project options as follows: 750 642 … … 752 644 * PHP: use the get_config() and parse_config() functions in inc/util.inc 753 645 * scripts: use the bin/parse_config program 754