From d79ca6a9f29de8d8a2c55475a751eb2c35c4c119 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Tue, 10 Aug 2010 22:17:59 +0000 Subject: [PATCH] - scheduler: add config option: send only 64-bit app versions to 64-bit hosts (the default is to send whatever app version is fastest) svn path=/trunk/boinc/; revision=22183 --- checkin_notes | 9 +++++++++ sched/sched_config.cpp | 1 + sched/sched_config.h | 10 ++++++---- sched/sched_version.cpp | 1 + 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/checkin_notes b/checkin_notes index 98b6786465..165f405949 100644 --- a/checkin_notes +++ b/checkin_notes @@ -5859,3 +5859,12 @@ David 10 Aug 2010 html/user/ host_app_versions.php + +David 10 Aug 2010 + - scheduler: add config option: + send only 64-bit app versions to 64-bit hosts + (the default is to send whatever app version is fastest) + + sched/ + sched_config.cpp,h + sched_version.cpp diff --git a/sched/sched_config.cpp b/sched/sched_config.cpp index 9f5b5228e3..41c25650d3 100644 --- a/sched/sched_config.cpp +++ b/sched/sched_config.cpp @@ -258,6 +258,7 @@ int SCHED_CONFIG::parse(FILE* f) { if (xp.parse_str(tag, "symstore", symstore, sizeof(symstore))) continue; if (xp.parse_bool(tag, "workload_sim", workload_sim)) continue; + if (xp.parse_bool(tag, "primary_platform_only", primary_platform_only)) continue; //////////// SCHEDULER LOG FLAGS ///////// diff --git a/sched/sched_config.h b/sched/sched_config.h index c7b38010fd..a7560f66de 100644 --- a/sched/sched_config.h +++ b/sched/sched_config.h @@ -114,10 +114,6 @@ struct SCHED_CONFIG { bool matchmaker; int max_ncpus; JOB_LIMITS max_jobs_in_progress; -#if 0 - int max_wus_in_progress; - int max_wus_in_progress_gpu; -#endif int max_wus_to_send; // max results per RPC is this * mult int min_core_client_version; int min_core_client_version_announced; @@ -150,6 +146,12 @@ struct SCHED_CONFIG { char symstore[256]; bool workload_sim; // Do workload simulation in deciding whether to send a result + bool primary_platform_only; + // use app versions only for the client's primary platform + // e.g. send only 64-bit versions to 64-bit clients. + // Do this only if you have 64-bit versions for all platforms, + // and you're sure that your 64-bit versions are + // always faster than the corresponding 32-bit versions // scheduler log flags // diff --git a/sched/sched_version.cpp b/sched/sched_version.cpp index 9f4bd63177..1225282e41 100644 --- a/sched/sched_version.cpp +++ b/sched/sched_version.cpp @@ -509,6 +509,7 @@ BEST_APP_VERSION* get_app_version( bavp->avp = NULL; bool no_version_for_platform = true; for (i=0; iplatforms.list.size(); i++) { + if (config.primary_platform_only && i>0) break; PLATFORM* p = g_request->platforms.list[i]; for (j=0; jnapp_versions; j++) { HOST_USAGE host_usage;