/usr/include/boinc/sched_config.h is in libboinc-app-dev 7.2.42+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 | // This file is part of BOINC.
// http://boinc.berkeley.edu
// Copyright (C) 2008 University of California
//
// BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
// as published by the Free Software Foundation,
// either version 3 of the License, or (at your option) any later version.
//
// BOINC is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with BOINC. If not, see <http://www.gnu.org/licenses/>.
#ifndef _SCHED_CONFIG_
#define _SCHED_CONFIG_
#include <regex.h>
#include <vector>
#include <cstdio>
#include "sched_limit.h"
using std::vector;
// constants related to consecutive_valid.
// These could be made configurable.
#define CONS_VALID_RELIABLE 10
// host is eligible to be considered "reliable"
#define CONS_VALID_HOST_SCALE 10
// host is eligible for host scaling of credit
#define CONS_VALID_UNREPLICATED 10
// host is eligible for single replication
// server configuration
// MISNAMED - should be SERVER_CONFIG,
// and should factor out scheduler-specific stuff into SCHED_CONFIG
//
struct SCHED_CONFIG {
char master_url[256];
char long_name[256];
char db_name[256];
char db_user[256];
char db_passwd[256];
char db_host[256];
char replica_db_name[256];
char replica_db_user[256];
char replica_db_passwd[256];
char replica_db_host[256];
int shmem_key;
char project_dir[256];
char key_dir[256];
char download_url[256];
char download_dir[256];
char upload_url[256];
char upload_dir[256];
int report_grace_period;
// grace period for reporting results;
// server's report deadline is client's deadline + this
double delete_delay;
bool msg_to_host;
bool non_cpu_intensive;
bool verify_files_on_app_start;
int homogeneous_redundancy;
bool hr_allocate_slots;
bool ignore_upload_certificates;
bool dont_generate_upload_certificates;
int uldl_dir_fanout; // fanout of ul/dl dirs; 0 if none
bool cache_md5_info;
int fuh_debug_level;
int reliable_priority_on_over;
// additional results generated after at least one result
// is over will have their priority boosted by this amount
int reliable_priority_on_over_except_error;
// additional results generated after at least one result is over
// (unless there is an error) will have their priority boosted
// by this amount
int reliable_on_priority;
// results with a priority equal or greater than this value
// will be sent to reliable hosts
bool distinct_beta_apps;
// allow users to select beta apps independently
bool ended;
// Project has ended - tell clients to detach
int shmem_work_items;
// number of work items in shared memory
int feeder_query_size;
// number of work items to request in each feeder query
char httpd_user[256];
// user name under which web server runs (default: apache)
bool enable_assignment;
bool enable_vda;
double vda_host_timeout;
bool enable_assignment_multi;
bool job_size_matching;
bool dont_send_jobs;
//////////// STUFF RELEVANT ONLY TO SCHEDULER FOLLOWS ///////////
vector<regex_t> *ban_cpu;
vector<regex_t> *ban_os;
int daily_result_quota; // max results per day is this * mult
char debug_req_reply_dir[256];
// keep sched_request and sched_reply in files in this directory
double default_disk_max_used_gb;
double default_disk_max_used_pct;
double default_disk_min_free_gb;
vector<int> dont_search_host_for_userid;
bool dont_store_success_stderr;
int file_deletion_strategy;
// select method of automatically deleting files from host
int gpu_multiplier; // mult is NCPUS + this*NGPUS
bool ignore_delay_bound;
bool locality_scheduling;
double locality_scheduler_fraction;
bool locality_scheduling_sorted_order;
int locality_scheduling_wait_period;
int locality_scheduling_send_timeout;
vector<regex_t> *locality_scheduling_workunit_file;
vector<regex_t> *locality_scheduling_sticky_file;
bool matchmaker;
int max_download_urls_per_file;
int max_ncpus;
JOB_LIMITS max_jobs_in_progress;
int max_results_accepted;
// skip reported jobs beyond this limit
// (they'll get reported in the next RPC)
// This limits the memory usage of the scheduler;
// otherwise it can crash if the client is reporting thousands of jobs.
int max_wus_to_send; // max results per RPC is this * mult
int min_core_client_version;
int min_core_client_version_announced;
int min_core_client_upgrade_deadline;
int min_sendwork_interval;
int mm_min_slots;
int mm_max_slots;
double next_rpc_delay;
bool no_amd_k6;
// don't allow AMD K6 CPUs
bool no_vista_sandbox;
bool nowork_skip;
bool one_result_per_host_per_wu;
bool one_result_per_user_per_wu;
int reliable_max_avg_turnaround;
// max average turnaround for a host to be declared reliable
double reliable_max_error_rate;
// DEPRECATED
// max error rate for a host to be declared reliable
double reliable_reduced_delay_bound;
// Reduce the delay bounds for reliable hosts by this percent
char replace_download_url_by_timezone[256];
bool prefer_primary_platform;
// When selecting app versions,
// use the client's primary platform if a version exists.
// e.g. send 64-bit versions to 64-bit clients,
// rather than trying the 32-bit version to see if it's faster.
// Do this only if you're sure that the 64-bit versions are
// always faster than the corresponding 32-bit versions
double version_select_random_factor;
// in deciding what version is fastest,
// multiply projected FLOPS by a random var with mean 1 and this stddev.
int report_max;
bool request_time_stats_log;
bool resend_lost_results;
int sched_debug_level;
int scheduler_log_buffer;
char sched_lockfile_dir[256];
bool send_result_abort;
char symstore[256];
bool user_filter;
// send a job to a user only if wu.batch == user.id
// DEPRECATED: use assignment instead
bool workload_sim;
// Do workload simulation in deciding whether to send a result
bool estimate_flops_from_hav_pfc;
// Use host_app_version peak flop count rather than elapsed time
// to calculate projected_flops when choosing version.
// scheduler log flags
//
bool debug_array; // debug job-cache scheduling
bool debug_array_detail; // show slot-level info
bool debug_assignment;
bool debug_credit;
bool debug_edf_sim_detail; // show details of EDF sim
bool debug_edf_sim_workload; // show workload for EDF sim
bool debug_fcgi;
bool debug_client_files; // stuff related to sticky files on client
bool debug_handle_results;
bool debug_locality; // locality scheduling
bool debug_locality_lite; // locality scheduling Lite
bool debug_prefs;
bool debug_quota;
bool debug_request_details;
bool debug_request_headers;
bool debug_resend;
bool debug_send;
bool debug_user_messages;
bool debug_vda;
bool debug_version_select;
int parse(FILE*);
int parse_aux(FILE*);
int parse_file(const char *dir = 0);
int upload_path(const char*, char*);
int download_path(const char*, char*);
const char *project_path(const char *, ...);
};
extern SCHED_CONFIG config;
#endif
|