Changes between Version 97 and Version 98 of ProjectOptions


Ignore:
Timestamp:
Jun 1, 2010, 4:17:47 PM (11 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ProjectOptions

    v97 v98  
    1515
    1616=== General ===
     17
     18{{{
     19<ignore_delay_bound/>
     20}}}
     21By default, results are not sent to hosts too slow to complete them within delay bound.
     22If this flag is set, this rule is not enforced.
     23{{{
     24<ban_os>regexp</ban_os>
     25}}}
     26Any host for which os_name<tab>os_version matches the given regular expression will not be sent jobs.
     27This is a POSIX extended regular expression.
     28{{{
     29<ban_cpu>regexp</ban_cpu>
     30}}}
     31Any host for which p_vendor<tab>p_model matches the given regular expression will not be sent jobs.
     32This is a POSIX extended regular expression.
     33{{{
     34<workload_sim>0|1</workload_sim>
     35}}}
     36Do a simulation, based on current client workload, in deciding whether a job's deadline can be met.
     37{{{
     38<homogeneous_redundancy>N</homogeneous_redundancy>
     39}}}
     40If zero (default) don't use the [HomogeneousRedundancy homogeneous redundancy] mechanism.
     41Otherwise, specifies the granularity of host classification (1=fine, 2=coarse).
     42(Note: you may also specify this on a per-application basis).
     43{{{
     44<distinct_beta_apps>0|1</distinct_beta_apps>
     45}}}
     46If set, [AppFiltering user application selection] applies to [BetaTest beta test applications] as well as others.
     47{{{
     48<nowork_skip> 0|1 </nowork_skip>
     49}}}
     50If the scheduler has no work, it replies to RPCs without doing any database access
     51(e.g., without looking up the user or host record).
     52This reduces DB load, but it fails to update preferences when users click on Update.
     53Use it if your server DB is overloaded.
     54{{{
     55<multiple_clients_per_host>0|1</multiple_clients_per_host>
     56}}}
     57Set this if some of your hosts run multiple BOINC clients simultaneously
     58(this is the case on projects that use Condor and/or grid resources,
     59which require each client to use only 1 CPU).
     60If set, the scheduler will skip a check that tries to locate the host
     61based on its IP address.
     62
     63=== Job limits ===
    1764{{{
    1865<one_result_per_user_per_wu/>
     
    2673If present, send at most one result of a given workunit to a given host.
    2774This is weaker than `one_result_per_user_per_wu`;
    28 it is useful if you're using homogeneous redundancy and most of the hosts of a particular class belong to a single user.
     75it's useful if you're using homogeneous redundancy
     76and most of the hosts of a particular class belong to a single user.
    2977
    3078{{{
     
    4694
    4795{{{
     96<max_jobs_in_progress>
     97        <project>
     98                <total_limit>
     99                        <jobs>N</jobs>
     100                </total_limit>
     101                [ <gpu_limit> ]
     102                        <jobs>N</jobs>
     103                        [ <per_proc/> ]
     104                                if set, limit is per processor
     105                [ <cpu_limit> ]
     106                ...
     107        </project>
     108        <app>
     109                <app>name</app>
     110                [ <total_limit> ... ]
     111                [ <cpu_limit> ... ]
     112                [ <gpu_limit> ... ]
     113        </app>
     114        ...
     115</max_jobs_in_progress>
     116}}}
     117A more adaptable way of expressing limits on the number of jobs in progress on a host.
     118You can specify limits for specific apps, and for your projects as a whole.
     119Within each of these, you can specify limits for CPU jobs, GPU jobs, or total.
     120In the case of CPU and GPU jobs, you can specify whether the limit should be
     121scaled by the number of devices present on the host.
     122
     123{{{
    48124<gpu_multiplier> GM </gpu_multiplier>
    49125}}}
     
    57133You can use this to limit the impact of faulty hosts.
    58134Default is 10.
     135{{{
     136<max_ncpus>N</max_ncpus>
     137}}}
     138An upper bound on NCPUS (default: 16)
    59139
    60140{{{
     
    62142}}}
    63143Each host has a field MRD in the interval [1 .. daily_result_quota];
    64 it's initially daily_result_quota, and is adjusted as the host sends good or bad results.
    65 The maximum number of jobs sent to a given host in a 24-hour period is '''MRD*(NCPUS + GM*NGPUS)'''.
     144it's initially daily_result_quota,
     145and is adjusted as the host sends good or bad results.
     146The maximum number of jobs sent to a given host in a 24-hour period is
     147'''MRD*(NCPUS + GM*NGPUS)'''.
    66148You can use this to limit the impact of faulty hosts.
    67 {{{
    68 <ignore_delay_bound/>
    69 }}}
    70 By default, results are not sent to hosts too slow to complete them within delay bound.
    71 If this flag is set, this rule is not enforced.
    72 {{{
    73 <ban_os>regexp</ban_os>
    74 }}}
    75 Any host for which os_name<tab>os_version matches the given regular expression will not be sent jobs.
    76 This is a POSIX extended regular expression.
    77 {{{
    78 <ban_cpu>regexp</ban_cpu>
    79 }}}
    80 Any host for which p_vendor<tab>p_model matches the given regular expression will not be sent jobs.
    81 This is a POSIX extended regular expression.
    82 {{{
    83 <workload_sim>0|1</workload_sim>
    84 }}}
    85 Do a simulation, based on current client workload, in deciding whether a job's deadline can be met.
    86 {{{
    87 <homogeneous_redundancy>N</homogeneous_redundancy>
    88 }}}
    89 If zero (default) don't use the [HomogeneousRedundancy homogeneous redundancy] mechanism.
    90 Otherwise, specifies the granularity of host classification (1=fine, 2=coarse).
    91 {{{
    92 <distinct_beta_apps>0|1</distinct_beta_apps>
    93 }}}
    94 If set, [AppFiltering user application selection] applies to [BetaTest beta test applications] as well as others.
    95 {{{
    96 <nowork_skip> 0|1 </nowork_skip>
    97 }}}
    98 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).
    99 This reduces DB load, but it fails to update preferences when users click on Update.
    100 Use it if your server DB is overloaded.
    101 {{{
    102 <multiple_clients_per_host>0|1</multiple_clients_per_host>
    103 }}}
    104 Set this if some of your hosts run multiple BOINC clients simultaneously
    105 (this is the case on projects that use Condor and/or grid resources,
    106 which require each client to use only 1 CPU).
    107 If set, the scheduler will skip a check that tries to locate the host
    108 based on its IP address.
    109 {{{
    110 <max_ncpus>N</max_ncpus>
    111 }}}
    112 An upper bound on NCPUS (default: 8)
    113 
    114 {{{
    115 <ignore_dcf>0|1</ignore_dcf>
    116 }}}
    117 If true, ignore duration correction factor.
    118 Use this temporarily if you've made a major change to your workunit FLOPS estimates.
     149
    119150=== Job-cache scheduling ===
    120151
     
    165196 * Hosts are deemed "reliable" (a slight misnomer) if they satisfy turnaround time and error rate criteria.
    166197 * A job instance is deemed "need-reliable" if its priority is above a threshold.
    167  * The scheduler tries to send need-reliable jobs to reliable hosts.  When it does, it reduces the delay bound of the job.
    168  * When job replicas are created in response to errors or timeouts, their priority is raised relative to the job's base priority.
     198 * The scheduler tries to send need-reliable jobs to reliable hosts.
     199   When it does, it reduces the delay bound of the job.
     200 * When job replicas are created in response to errors or timeouts,
     201   their priority is raised relative to the job's base priority.
    169202
    170203The configurable parameters are:
     
    216249<locality_scheduling_wait_period> N </locality_scheduling_wait_period>
    217250}}}
    218 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 [LocalityScheduling Locality Scheduling].
     251This element only has an effect when used in conjunction with the previous locality scheduling element.
     252It tells the scheduler to use 'trigger files' to inform the project that more work is needed for specific files.
     253The period is the number of seconds which the scheduler will wait to see if the project can create additional work.
     254Together with project-specific daemons or scripts this can be used for 'just-in-time' workunit creation.
     255See [LocalityScheduling Locality Scheduling].
    219256
    220257=== Job retransmission ===
     
    222259<resend_lost_results> 0|1 </resend_lost_results>
    223260}}}
    224 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:
     261If set, and a <other_results> list is present in scheduler request, resend any in-progress results not in the list.
     262This is recommended; it may increase the efficiency of your project.
     263For reasons that are not well understood, a BOINC client sometimes fails to receive the scheduler reply.
     264This flag addresses that issue: it causes the SAME results to be resent by the scheduler,
     265if the client has failed to receive them.
     266Note: this will increase the load on your DB server; you can minimize this by creating an index:
    225267{{{
    226268alter table result add index res_host_state (hostid, server_state);
     
    229271<send_result_abort>0|1</send_result_abort>
    230272}}}
    231 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.
     273If set, and the client is processing a result for a WU that has been canceled or is not in the DB
     274(i.e. there's no chance of getting credit), tell the client to abort the result regardless of state.
     275If client is processing a result for a WU that has been assimilated or is overdue
     276(i.e. there's a chance of not getting credit) tell the client to abort the result if it hasn't started yet.
     277Note: this will increase the load on your DB server.
    232278
    233279
     
    237283}}}
    238284OUTDATED: BERND, PLEASE UPDATE.
    239 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'.
     285When the scheduler sends work to hosts,
     286it replaces the download URL appearing in the data and executable file descriptions
     287with the download URL closest to the host's timezone.
     288The project must provide a two-column file called 'download_servers' in the project root directory.
     289This is a list of all download servers that will be inserted when work is sent to hosts.
     290The first column is an integer listing the server's offset in seconds from UTC.
     291The second column is the server URL in the format such as !http://einstein.phys.uwm.edu.
     292The download servers must have identical file hierarchies and contents,
     293and the path to file and executables must start with '/download/...' as in '!http://X/download/123/some_file_name'.
    240294{{{
    241295<cache_md5_info> 0|1 </cache_md5_info>
    242296}}}
    243 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.
     297When creating work, keep a record (in files called foo.md5) of the file length and md5 sum of data files and executables.
     298This can greatly reduce the time needed to create work, if (1) these files are re-used, and (2) there are many of these files,
     299and (3) reading the files from disk is time-consuming.
    244300
    245301=== Logging ===
     
    362418<dont_generate_upload_certificates/>
    363419}}}
    364 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.
     420Don't put upload certificates in results.
     421This makes result generation a lot faster,
     422since no encryption is done, but you lose protection against DoS attacks on your upload servers.
    365423{{{
    366424<ignore_upload_certificates/>
     
    372430<default_disk_max_used_gb> X </default_disk_max_used_gb>
    373431}}}
    374 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.
     432Sets the default value for the `disk_max_used_gb` preference so it's consistent between the scheduler and web pages.
     433The scheduler uses it when a request for work doesn't include preferences, or the preference is set to zero.
     434The 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.
     435Default is 100.
    375436{{{
    376437<default_disk_max_used_pct> X </default_disk_max_used_pct>
    377438}}}
    378 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.
     439Sets the default value for the `disk_max_used_pct` preference so its consistent between the scheduler and web pages.
     440The scheduler uses it when a request for work doesn't include preferences, or the preference is set to zero.
     441The web page scripts use it to set the initial value when displaying or editing preferences the first time,
     442or when the user never saved them. Default is 50.
    379443{{{
    380444<default_disk_min_free_gb> X </default_disk_min_free_gb>
    381445}}}
    382 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.
    383 
    384 
     446Sets the default value for the `disk_min_free_gb` preference so its consistent between the scheduler and web pages.
     447The scheduler uses it when a request for work doesn't include preferences.
     448The web page scripts use it to set the initial value when displaying or editing preferences the first time,
     449or when the user never saved them.
     450Also, the scheduler uses this setting to override any smaller preference from the host,
     451it enforces a 'minimum free disk space' to keep from filling up the drive.
     452Recommend setting this no smaller than .001 (1MB or 1,000,000 bytes). Default is .001.
    385453
    386454
     
    396464<fp_benchmark_weight> X </fp_benchmark_weight>
    397465}}}
    398 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.
     466The weighting given to the Whetstone benchmark in the calculation of claimed credit.
     467Must be in [0 .. 1]. Projects whose applications are floating-point intensive should use 1; pure integer applications, 0.
     468Choosing an appropriate value will reduce the disparity in claimed credit between hosts.
     469The script html/ops/credit_study.php, run against the database of a running project, will suggest what value to use.
    399470{{{
    400471<granted_credit_weight>X</granted_credit_weight>
     
    457528<akismet_key> 1234567890ab </akismet_key>
    458529}}}
    459 If set, akismet.com is used to check post contents to protect forums from spam. See [ProtectionFromSpam Protecting message boards from spam] for more information.
     530If set, akismet.com is used to check post contents to protect forums from spam.
     531See [ProtectionFromSpam Protecting message boards from spam] for more information.
    460532{{{
    461533<users_per_page>N</users_per_page>
     
    472544<recaptcha_private_key>X</recaptcha_private_key>
    473545}}}
    474 Enable the use of Recaptcha for profile creation/editing; see [ProtectionFromSpam Protecting message boards from spam] for more information.
     546Enable the use of Recaptcha for profile creation/editing;
     547see [ProtectionFromSpam Protecting message boards from spam] for more information.
    475548{{{
    476549<profile_min_credit>X</profile_min_credit>
     
    524597<dont_store_success_stderr/>
    525598}}}
    526 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.
     599If present, don't store the stderr log in the database for successful workunits.
     600May be useful to save on database size. Available since r18528.
    527601
    528602== Hosts, directories, and URLs == #dirs
     
    538612<host>hostname</host>
    539613}}}
    540 name of project's main host, as given by Python's `socket.hostname()`. Daemons and tasks run on this host by default.
     614name of project's main host, as given by Python's `socket.hostname()`.
     615Daemons and tasks run on this host by default.
    541616{{{
    542617<db_name>name</db_name>
     
    600675<sched_lockfile_dir>path</sched_lockfile_dir>
    601676}}}
    602 Enables scheduler locking (recommended) and specifies directory where scheduler lockfiles are stored. Must be writable to the Apache user.
     677Enables scheduler locking (recommended) and specifies directory where scheduler lockfiles are stored.
     678Must be writable to the Apache user.
    603679
    604680= Parsing project options = #parsing-config