mirror of https://github.com/BOINC/boinc.git
- scheduler: if we're not sending work because of the user's "no GPUs" pref,
tell them so. - scheduler: fix bug that caused no CUDA jobs to be sent svn path=/trunk/boinc/; revision=16893
This commit is contained in:
parent
7a34e18f84
commit
377545a056
|
@ -180,3 +180,17 @@ David 12 Jan 2009
|
|||
|
||||
lib/
|
||||
coproc.cpp
|
||||
|
||||
David 12 Jan 2009
|
||||
- scheduler: if we're not sending work because of the user's "no GPUs" pref,
|
||||
tell them so.
|
||||
- scheduler: fix bug that caused no CUDA jobs to be sent
|
||||
|
||||
lib/
|
||||
coproc.cpp,h
|
||||
common_defs.h
|
||||
sched/
|
||||
handle_request.cpp
|
||||
sched_send.cpp
|
||||
sched_plan.cpp
|
||||
server_types.h
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
#define MODE_QUIT 6
|
||||
#define NGRAPHICS_MSGS 7
|
||||
|
||||
// message priorities
|
||||
// priorities for client messages
|
||||
//
|
||||
#define MSG_INFO 1
|
||||
// write to stdout
|
||||
|
|
|
@ -116,7 +116,7 @@ int COPROCS::parse(FILE* fin) {
|
|||
return ERR_XML_PARSE;
|
||||
}
|
||||
|
||||
COPROC* COPROCS::lookup(char* type) {
|
||||
COPROC* COPROCS::lookup(const char* type) {
|
||||
for (unsigned int i=0; i<coprocs.size(); i++) {
|
||||
COPROC* cp = coprocs[i];
|
||||
if (!strcmp(type, cp->type)) return cp;
|
||||
|
|
|
@ -77,7 +77,7 @@ struct COPROCS {
|
|||
std::vector<std::string> get();
|
||||
int parse(FILE*);
|
||||
void summary_string(char*, int);
|
||||
COPROC* lookup(char*);
|
||||
COPROC* lookup(const char*);
|
||||
bool sufficient_coprocs(COPROCS&, bool log_flag, const char* prefix);
|
||||
void reserve_coprocs(COPROCS&, void*, bool log_flag, const char* prefix);
|
||||
void free_coprocs(COPROCS&, void*, bool log_flag, const char* prefix);
|
||||
|
|
|
@ -1151,7 +1151,7 @@ bool bad_install_type() {
|
|||
if (config.no_vista_sandbox) {
|
||||
if (!strcmp(g_request->host.os_name, "Microsoft Windows Vista")) {
|
||||
if (g_request->sandbox == 1) {
|
||||
log_messages.printf(MSG_INFO,
|
||||
log_messages.printf(MSG_NORMAL,
|
||||
"Vista secure install - not sending work\n"
|
||||
);
|
||||
USER_MESSAGE um(
|
||||
|
@ -1169,7 +1169,10 @@ bool bad_install_type() {
|
|||
}
|
||||
|
||||
static inline bool requesting_work() {
|
||||
return (g_request->work_req_seconds > 0);
|
||||
if (g_request->work_req_seconds > 0) return true;
|
||||
if (g_request->cpu_req_secs > 0) return true;
|
||||
if (coproc_cuda && coproc_cuda->req_secs) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void process_request(char* code_sign_key) {
|
||||
|
@ -1480,7 +1483,7 @@ void handle_request(FILE* fin, FILE* fout, char* code_sign_key) {
|
|||
}
|
||||
|
||||
sreply.write(fout, sreq);
|
||||
log_messages.printf(MSG_INFO, "Scheduler ran %f seconds\n", dtime()-start_time);
|
||||
log_messages.printf(MSG_NORMAL, "Scheduler ran %f seconds\n", dtime()-start_time);
|
||||
|
||||
|
||||
if (strlen(config.sched_lockfile_dir)) {
|
||||
|
|
|
@ -75,6 +75,7 @@ bool app_plan(SCHEDULER_REQUEST& sreq, char* plan_class, HOST_USAGE& hu) {
|
|||
log_messages.printf(MSG_DEBUG,
|
||||
"Skipping CUDA version - user prefs say no GPUS\n"
|
||||
);
|
||||
g_wreq->no_gpus_prefs = true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -256,12 +256,14 @@ BEST_APP_VERSION* get_app_version(WORKUNIT& wu) {
|
|||
app->id, g_request->platforms.list[0]->id, app->min_version
|
||||
);
|
||||
}
|
||||
sprintf(message,
|
||||
"%s is not available for your type of computer.",
|
||||
app->user_friendly_name
|
||||
);
|
||||
USER_MESSAGE um(message, "high");
|
||||
g_wreq->insert_no_work_message(um);
|
||||
if (!g_wreq->no_gpus_prefs) {
|
||||
sprintf(message,
|
||||
"%s is not available for your type of computer.",
|
||||
app->user_friendly_name
|
||||
);
|
||||
USER_MESSAGE um(message, "high");
|
||||
g_wreq->insert_no_work_message(um);
|
||||
}
|
||||
g_wreq->no_app_version = true;
|
||||
return NULL;
|
||||
}
|
||||
|
@ -1286,6 +1288,13 @@ static void explain_to_user() {
|
|||
);
|
||||
g_reply->insert_message(um);
|
||||
}
|
||||
if (g_wreq->no_gpus_prefs) {
|
||||
USER_MESSAGE um(
|
||||
"CUDA (GPU) jobs are available, but your preferences are set to not accept them",
|
||||
"low"
|
||||
);
|
||||
g_reply->insert_message(um);
|
||||
}
|
||||
if (g_wreq->daily_result_quota_exceeded) {
|
||||
struct tm *rpc_time_tm;
|
||||
int delay_time;
|
||||
|
@ -1430,7 +1439,7 @@ void send_work() {
|
|||
g_wreq->disk_available = max_allowable_disk();
|
||||
|
||||
if (all_apps_use_hr && hr_unknown_platform(g_request->host)) {
|
||||
log_messages.printf(MSG_INFO,
|
||||
log_messages.printf(MSG_NORMAL,
|
||||
"Not sending work because unknown HR class\n"
|
||||
);
|
||||
g_wreq->hr_reject_perm = true;
|
||||
|
|
|
@ -186,6 +186,7 @@ struct WORK_REQ {
|
|||
bool hr_reject_perm;
|
||||
bool outdated_core;
|
||||
bool gpu_too_slow;
|
||||
bool no_gpus_prefs;
|
||||
bool daily_result_quota_exceeded;
|
||||
int daily_result_quota; // for this machine: number of cpus * daily_quota/cpu
|
||||
bool cache_size_exceeded;
|
||||
|
|
Loading…
Reference in New Issue