- client/manager: add ATI stuff to GUI RPCs and manager display

svn path=/trunk/boinc/; revision=18853
This commit is contained in:
David Anderson 2009-08-17 21:11:06 +00:00
parent 152ee20b17
commit 208f53a51d
6 changed files with 36 additions and 3 deletions

View File

@ -6959,3 +6959,15 @@ David 17 Aug 2009
lib/
coproc.cpp,h
David 17 Aug 2009
- client/manager: add ATI stuff to GUI RPCs and manager display
client/
cs_statefile.cpp
schedule_op.cpp
clientgui/
DltItemProperties.cpp
lib/
gui_rpc_client.h
gui_rpc_client_ops.cpp

View File

@ -865,13 +865,15 @@ int CLIENT_STATE::write_state_gui(MIOFILE& f) {
"<core_client_minor_version>%d</core_client_minor_version>\n"
"<core_client_release>%d</core_client_release>\n"
"<executing_as_daemon>%d</executing_as_daemon>\n"
"<have_cuda>%d</have_cuda>\n",
"<have_cuda>%d</have_cuda>\n"
"<have_ati>%d</have_ati>\n",
get_primary_platform(),
core_client_version.major,
core_client_version.minor,
core_client_version.release,
executing_as_daemon?1:0,
coproc_cuda?1:0
coproc_cuda?1:0,
coproc_ati?1:0
);
for (i=0; i<platforms.size(); i++) {
f.printf(

View File

@ -255,7 +255,7 @@ int SCHEDULER_OP::start_rpc(PROJECT* p) {
);
if (coproc_cuda) {
msg_printf(p, MSG_INFO,
"[sched_op_debug] CUDA work request: %.2f seconds; %d idle GPUs",
"[sched_op_debug] NVIDIA GPU work request: %.2f seconds; %d idle GPUs",
cuda_work_fetch.req_secs, cuda_work_fetch.req_instances
);
}

View File

@ -155,6 +155,13 @@ void CDlgItemProperties::renderInfos(PROJECT* project_in) {
if (x<0) x = 0;
addProperty(_("NVIDIA GPU work fetch deferred for"), FormatTime(x));
addProperty(_("NVIDIA GPU work fetch deferral interval"), FormatTime(project->cuda_backoff_interval));
}
if (pDoc->state.have_ati) {
addProperty(_("ATI GPU work fetch priority"),wxString::Format(wxT("%0.2f"), project->ati_debt));
x = project->ati_backoff_time - dtime();
if (x<0) x = 0;
addProperty(_("ATI GPU work fetch deferred for"), FormatTime(x));
addProperty(_("ATI GPU work fetch deferral interval"), FormatTime(project->ati_backoff_interval));
}
addProperty(_("Duration correction factor"),wxString::Format(wxT("%0.4f"), project->duration_correction_factor));
}

View File

@ -129,6 +129,9 @@ public:
double cuda_debt;
double cuda_backoff_time;
double cuda_backoff_interval;
double ati_debt;
double ati_backoff_time;
double ati_backoff_interval;
double duration_correction_factor;
bool master_url_fetch_pending; // need to fetch and parse the master URL
@ -354,6 +357,7 @@ public:
VERSION_INFO version_info; // populated only if talking to pre-5.6 CC
bool executing_as_daemon; // true if Client is running as a service / daemon
bool have_cuda;
bool have_ati;
CC_STATE();
~CC_STATE();

View File

@ -245,6 +245,9 @@ int PROJECT::parse(MIOFILE& in) {
if (parse_double(buf, "<cuda_debt>", cuda_debt)) continue;
if (parse_double(buf, "<cuda_backoff_time>", cuda_backoff_time)) continue;
if (parse_double(buf, "<cuda_backoff_interval>", cuda_backoff_interval)) continue;
if (parse_double(buf, "<ati_debt>", ati_debt)) continue;
if (parse_double(buf, "<ati_backoff_time>", ati_backoff_time)) continue;
if (parse_double(buf, "<ati_backoff_interval>", ati_backoff_interval)) continue;
if (parse_double(buf, "<duration_correction_factor>", duration_correction_factor)) continue;
if (parse_bool(buf, "master_url_fetch_pending", master_url_fetch_pending)) continue;
if (parse_int(buf, "<sched_rpc_pending>", sched_rpc_pending)) continue;
@ -297,6 +300,9 @@ void PROJECT::clear() {
cuda_debt = 0;
cuda_backoff_time = 0;
cuda_backoff_interval = 0;
ati_debt = 0;
ati_backoff_time = 0;
ati_backoff_interval = 0;
duration_correction_factor = 0;
master_url_fetch_pending = false;
sched_rpc_pending = 0;
@ -693,6 +699,7 @@ void CC_STATE::clear() {
platforms.clear();
executing_as_daemon = false;
have_cuda = false;
have_ati = false;
}
PROJECT* CC_STATE::lookup_project(string& str) {
@ -1129,6 +1136,7 @@ int RPC_CLIENT::get_state(CC_STATE& state) {
if (parse_bool(buf, "executing_as_daemon", state.executing_as_daemon)) continue;
if (parse_bool(buf, "have_cuda", state.have_cuda)) continue;
if (parse_bool(buf, "have_ati", state.have_ati)) continue;
if (match_tag(buf, "<project>")) {
project = new PROJECT();
project->parse(rpc.fin);