mirror of https://github.com/BOINC/boinc.git
*** empty log message ***
svn path=/trunk/boinc/; revision=10445
This commit is contained in:
parent
9d12b889e0
commit
ddc76d9587
|
@ -6544,3 +6544,10 @@ David 21 June 2006
|
|||
cs_scheduler.C
|
||||
log_flags.C,h
|
||||
time_stats.C
|
||||
|
||||
David 21 June 2006
|
||||
- core client: add some logging messages to rr_simulation()
|
||||
|
||||
client/
|
||||
cpu_sched.C
|
||||
cs_scheduler.C
|
||||
|
|
|
@ -278,7 +278,7 @@ void CLIENT_STATE::adjust_debts() {
|
|||
p->anticipated_debt = 0;
|
||||
}
|
||||
scope_messages.printf(
|
||||
"CLIENT_STATE::adjust_debts(): project %s: short-term debt %f\n",
|
||||
"adjust_debts(): project %s: short-term debt %f\n",
|
||||
p->project_name, p->short_term_debt
|
||||
);
|
||||
}
|
||||
|
@ -395,7 +395,7 @@ void CLIENT_STATE::schedule_cpus() {
|
|||
|
||||
// do round-robin simulation to find what results miss deadline,
|
||||
//
|
||||
scope_messages.printf("rr_sim: calling from cpu_scheduler");
|
||||
scope_messages.printf("rr_simulation: calling from cpu_scheduler\n");
|
||||
rr_simulation(avg_proc_rate()/ncpus, runnable_resource_share());
|
||||
if (log_flags.cpu_sched_debug) {
|
||||
print_deadline_misses();
|
||||
|
@ -735,6 +735,8 @@ bool CLIENT_STATE::rr_simulation(double per_cpu_proc_rate, double rrs) {
|
|||
|
||||
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_CPU_SCHED);
|
||||
|
||||
scope_messages.printf( "rr_simulation: start\n");
|
||||
|
||||
// Initialize the "active" and "pending" lists for each project.
|
||||
// These keep track of that project's results
|
||||
//
|
||||
|
@ -791,7 +793,8 @@ bool CLIENT_STATE::rr_simulation(double per_cpu_proc_rate, double rrs) {
|
|||
double diff = sim_now + rpbest->rrsim_finish_delay - rpbest->computation_deadline();
|
||||
if (diff > 0) {
|
||||
scope_messages.printf(
|
||||
"rr_sim: result %s misses deadline by %f\n", rpbest->name, diff
|
||||
"rr_simulation: result %s misses deadline by %f\n",
|
||||
rpbest->name, diff
|
||||
);
|
||||
rpbest->rr_sim_misses_deadline = true;
|
||||
pbest->rr_sim_deadlines_missed++;
|
||||
|
@ -867,8 +870,19 @@ bool CLIENT_STATE::rr_simulation(double per_cpu_proc_rate, double rrs) {
|
|||
|
||||
sim_now += rpbest->rrsim_finish_delay;
|
||||
}
|
||||
if (!rval) {
|
||||
scope_messages.printf( "rr_sim: deadlines met\n");
|
||||
if (log_flags.cpu_sched_debug) {
|
||||
for (i=0; i<projects.size(); i++) {
|
||||
p = projects[i];
|
||||
msg_printf(NULL, MSG_INFO,
|
||||
"rr_simulation: shortfall for %s is %f\n",
|
||||
p->project_name, p->cpu_shortfall
|
||||
);
|
||||
}
|
||||
msg_printf(NULL, MSG_INFO,
|
||||
"rr_simulation: end; returning %s; cpu_shortfall %f\n",
|
||||
rval?"true":"false",
|
||||
cpu_shortfall
|
||||
);
|
||||
}
|
||||
return rval;
|
||||
}
|
||||
|
|
|
@ -612,13 +612,13 @@ int CLIENT_STATE::compute_work_requests() {
|
|||
if (estimated_time_to_starvation < work_min_period) {
|
||||
if (estimated_time_to_starvation == 0) {
|
||||
scope_messages.printf(
|
||||
"CLIENT_STATE::compute_work_requests(): project '%s' is starved\n",
|
||||
"compute_work_requests(): project '%s' is starved\n",
|
||||
p->project_name
|
||||
);
|
||||
p->work_request_urgency = WORK_FETCH_NEED_IMMEDIATELY;
|
||||
} else {
|
||||
scope_messages.printf(
|
||||
"CLIENT_STATE::compute_work_requests(): project '%s' will starve in %.2f sec\n",
|
||||
"compute_work_requests(): project '%s' will starve in %.2f sec\n",
|
||||
p->project_name, estimated_time_to_starvation
|
||||
);
|
||||
p->work_request_urgency = WORK_FETCH_NEED;
|
||||
|
@ -640,13 +640,13 @@ int CLIENT_STATE::compute_work_requests() {
|
|||
}
|
||||
|
||||
scope_messages.printf(
|
||||
"CLIENT_STATE::compute_work_requests(): project %s work req: %f sec urgency: %d\n",
|
||||
"compute_work_requests(): project %s work req: %f sec urgency: %d\n",
|
||||
p->project_name, p->work_request, p->work_request_urgency
|
||||
);
|
||||
}
|
||||
|
||||
scope_messages.printf(
|
||||
"CLIENT_STATE::compute_work_requests(): client work need: %f sec, urgency %d\n",
|
||||
"compute_work_requests(): client work need: %f sec, urgency %d\n",
|
||||
global_work_need, overall_work_fetch_urgency
|
||||
);
|
||||
|
||||
|
@ -1034,7 +1034,7 @@ int CLIENT_STATE::handle_scheduler_reply(
|
|||
for (i=0; i<sr.result_acks.size(); i++) {
|
||||
RESULT* rp = lookup_result(project, sr.result_acks[i].name);
|
||||
scope_messages.printf(
|
||||
"CLIENT_STATE::handle_scheduler_reply(): got ack for result %s\n",
|
||||
"handle_scheduler_reply(): got ack for result %s\n",
|
||||
sr.result_acks[i].name
|
||||
);
|
||||
if (rp) {
|
||||
|
@ -1116,7 +1116,7 @@ int CLIENT_STATE::handle_scheduler_reply(
|
|||
}
|
||||
|
||||
set_client_state_dirty("handle_scheduler_reply");
|
||||
scope_messages.printf("CLIENT_STATE::handle_scheduler_reply(): State after handle_scheduler_reply():\n");
|
||||
scope_messages.printf("handle_scheduler_reply(): State after handle_scheduler_reply():\n");
|
||||
print_summary();
|
||||
return 0;
|
||||
}
|
||||
|
@ -1154,7 +1154,7 @@ void CLIENT_STATE::set_work_fetch_mode() {
|
|||
|
||||
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_CPU_SCHED);
|
||||
|
||||
scope_messages.printf("rr_sim: calling from work_fetch");
|
||||
scope_messages.printf("rr_simulation: calling from work_fetch\n");
|
||||
if (rr_simulation(per_cpu_proc_rate, rrs)) {
|
||||
if (!no_work_for_a_cpu()) {
|
||||
should_not_fetch_work = true;
|
||||
|
@ -1163,7 +1163,7 @@ void CLIENT_STATE::set_work_fetch_mode() {
|
|||
// if fetching more work would cause round-robin to
|
||||
// miss a deadline, don't fetch more work
|
||||
//
|
||||
scope_messages.printf("rr_sim: calling from work_fetch with extended rrs");
|
||||
scope_messages.printf("rr_simulation: calling from work_fetch with extended rrs\n");
|
||||
PROJECT* p = next_project_need_work();
|
||||
if (p && !p->runnable()) {
|
||||
rrs += p->resource_share;
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?
|
||||
|
||||
$project_news = array(
|
||||
array("June 21, 2006",
|
||||
"BOINCstats and the BAM! account manager
|
||||
are now available <a href=http://jp.boincstats.com>in Japanese</a>."
|
||||
),
|
||||
array("June 15, 2006",
|
||||
"BOINC's CPU scheduler has become smarter:
|
||||
it now waits until an application has checkpointed
|
||||
|
|
|
@ -9,6 +9,7 @@ This file has the following format:
|
|||
<cc_config>
|
||||
[ <save_stats_days>N</save_stats_days> ]
|
||||
[ <dont_check_file_size>0|1</dont_check_file_size> ]
|
||||
[ <ncpus>N</ncpus> ]
|
||||
<log_flags>
|
||||
[ flags ]
|
||||
</log_flags>
|
||||
|
@ -22,7 +23,10 @@ list_item_func("<save_stats_days>",
|
|||
Default is 30."
|
||||
);
|
||||
list_item_func("<dont_check_file_sizes>",
|
||||
" If nonzero, don't check file sizes"
|
||||
"If nonzero, don't check file sizes"
|
||||
);
|
||||
list_item_func("<ncpus>",
|
||||
"Act as if there were N CPUs (for debugging)."
|
||||
);
|
||||
list_end();
|
||||
echo "
|
||||
|
|
|
@ -270,7 +270,7 @@ Tiebreaker: least index in result array.
|
|||
<li> Find the project P with the greatest anticipated debt,
|
||||
select one of P's runnable results
|
||||
(picking one that is already running, if possible,
|
||||
else the result with earliest deadline)
|
||||
else the one received first from the project)
|
||||
and schedule that result.
|
||||
<li> Decrement P's anticipated debt by the 'expected payoff'
|
||||
(the scheduling period divided by NCPUS).
|
||||
|
|
Loading…
Reference in New Issue