mirror of https://github.com/BOINC/boinc.git
- client: record the time results are received.
Process non-EDF GPU jobs in this order. svn path=/trunk/boinc/; revision=18531
This commit is contained in:
parent
ed2df38f4e
commit
46d9e8f087
|
@ -6118,3 +6118,17 @@ Rom 30 June 2009
|
|||
lib/
|
||||
gui_rpc_client.h
|
||||
gui_rpc_client_ops.cpp
|
||||
|
||||
David 30 June 2009
|
||||
- client: record the time results are received.
|
||||
Process non-EDF GPU jobs in this order.
|
||||
|
||||
client/
|
||||
client_types.cpp,h
|
||||
cpu_sched.cpp
|
||||
cs_scheduler.cpp
|
||||
clientgui/
|
||||
DltItemProperties.cpp
|
||||
lib/
|
||||
gui_rpc_client_ops.cpp
|
||||
gui_rpc_client.h
|
||||
|
|
|
@ -1441,6 +1441,7 @@ void RESULT::clear() {
|
|||
strcpy(name, "");
|
||||
strcpy(wu_name, "");
|
||||
report_deadline = 0;
|
||||
received_time = 0;
|
||||
output_files.clear();
|
||||
_state = RESULT_NEW;
|
||||
ready_to_report = false;
|
||||
|
@ -1518,6 +1519,7 @@ int RESULT::parse_state(MIOFILE& in) {
|
|||
}
|
||||
if (parse_str(buf, "<name>", name, sizeof(name))) continue;
|
||||
if (parse_str(buf, "<wu_name>", wu_name, sizeof(wu_name))) continue;
|
||||
if (parse_double(buf, "<received_time>", received_time)) continue;
|
||||
if (parse_double(buf, "<report_deadline>", report_deadline)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -1643,8 +1645,10 @@ int RESULT::write(MIOFILE& out, bool to_server) {
|
|||
out.printf(
|
||||
" <wu_name>%s</wu_name>\n"
|
||||
" <report_deadline>%f</report_deadline>\n",
|
||||
" <received_time>%f</received_time>\n",
|
||||
wu_name,
|
||||
report_deadline
|
||||
report_deadline,
|
||||
received_time
|
||||
);
|
||||
for (i=0; i<output_files.size(); i++) {
|
||||
retval = output_files[i].write(out);
|
||||
|
|
|
@ -462,6 +462,7 @@ struct WORKUNIT {
|
|||
struct RESULT {
|
||||
char name[256];
|
||||
char wu_name[256];
|
||||
double received_time; // when we got this from server
|
||||
double report_deadline;
|
||||
int version_num; // identifies the app used
|
||||
char plan_class[64];
|
||||
|
@ -474,7 +475,7 @@ struct RESULT {
|
|||
bool ready_to_report;
|
||||
/// time when ready_to_report was set
|
||||
double completed_time;
|
||||
/// we're received the ack for this result from the server
|
||||
/// we've received the ack for this result from the server
|
||||
bool got_server_ack;
|
||||
double final_cpu_time;
|
||||
double final_elapsed_time;
|
||||
|
|
|
@ -254,15 +254,18 @@ RESULT* CLIENT_STATE::largest_debt_project_best_result() {
|
|||
//
|
||||
RESULT* first_coproc_result() {
|
||||
unsigned int i;
|
||||
RESULT* best = NULL;
|
||||
for (i=0; i<gstate.results.size(); i++) {
|
||||
RESULT* rp = gstate.results[i];
|
||||
if (!rp->runnable()) continue;
|
||||
if (rp->project->non_cpu_intensive) continue;
|
||||
if (rp->already_selected) continue;
|
||||
if (!rp->uses_coprocs()) continue;
|
||||
return rp;
|
||||
if (!best || (rp->received_time < best->received_time)) {
|
||||
best = rp;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
return best;
|
||||
}
|
||||
|
||||
// Return earliest-deadline result.
|
||||
|
|
|
@ -811,6 +811,7 @@ int CLIENT_STATE::handle_scheduler_reply(PROJECT* project, char* scheduler_url)
|
|||
continue;
|
||||
}
|
||||
rp->wup->version_num = rp->version_num;
|
||||
rp->received_time = now;
|
||||
results.push_back(rp);
|
||||
new_results.push_back(rp);
|
||||
rp->set_state(RESULT_NEW, "handle_scheduler_reply");
|
||||
|
|
|
@ -167,6 +167,8 @@ void CDlgItemProperties::renderInfos(RESULT* result) {
|
|||
addProperty(_("Application"), FormatApplicationName(result));
|
||||
addProperty(_("Workunit name"),wxString(result->wu_name.c_str(),wxConvUTF8));
|
||||
addProperty(_("State"), FormatStatus(result));
|
||||
dt.Set((time_t)result->received_time);
|
||||
addProperty(_("Received"), dt.Format());
|
||||
dt.Set((time_t)result->report_deadline);
|
||||
addProperty(_("Report deadline"), dt.Format());
|
||||
if (result->resources.size()) {
|
||||
|
|
|
@ -220,7 +220,8 @@ public:
|
|||
std::string project_url;
|
||||
int version_num;
|
||||
std::string plan_class;
|
||||
int report_deadline;
|
||||
double report_deadline;
|
||||
double received_time;
|
||||
bool ready_to_report;
|
||||
bool got_server_ack;
|
||||
double final_cpu_time;
|
||||
|
|
|
@ -421,7 +421,8 @@ int RESULT::parse(MIOFILE& in) {
|
|||
if (parse_int(buf, "<version_num>", version_num)) continue;
|
||||
if (parse_str(buf, "<plan_class>", plan_class)) continue;
|
||||
if (parse_str(buf, "<project_url>", project_url)) continue;
|
||||
if (parse_int(buf, "<report_deadline>", report_deadline)) continue;
|
||||
if (parse_double(buf, "<report_deadline>", report_deadline)) continue;
|
||||
if (parse_double(buf, "<received_time>", received_time)) continue;
|
||||
if (parse_bool(buf, "ready_to_report", ready_to_report)) continue;
|
||||
if (parse_bool(buf, "got_server_ack", got_server_ack)) continue;
|
||||
if (parse_bool(buf, "suspended_via_gui", suspended_via_gui)) continue;
|
||||
|
|
Loading…
Reference in New Issue