*** empty log message ***

svn path=/trunk/boinc/; revision=11451
This commit is contained in:
David Anderson 2006-11-02 20:38:47 +00:00
parent e00f89c6ba
commit 5830ec6e4c
6 changed files with 154 additions and 22 deletions

View File

@ -12026,3 +12026,11 @@ David 2 Nov 2006
clientgui/
ViewResources.cpp
David 2 Nov 2006
- Added a function GLOBAL_PREFS::write_subset()
that writes XML for a selected subset of prefs
(for simple GUI prefs dialog)
lib/
prefs.C,h

View File

@ -21,9 +21,9 @@ An <b>account manager</b> is a web site that simplifies
participating in BOINC, especially if you are new to BOINC,
or if you have several computers,
participate in several projects, or like to learn about new projects.
The account manager concept was conceived by
<a href=http://gridrepublic.org>GridRepublic</a>,
and developed jointly by GridRepublic and BOINC.
The account manager concept was conceived and
developed jointly by <a href=http://gridrepublic.org>GridRepublic</a>
and BOINC.
The following account managers are available:
<ul>
";
@ -55,7 +55,7 @@ echo "
</tr>
<tr>
<td valign=top>
Attach to a project with a mouse click.
Attach to a project with one mouse click.
If you have multiple computers,
all of them will be attached.
</td>
@ -63,7 +63,7 @@ echo "
Attach to a project by bringing up the 'Attach Project Wizard'
in the BOINC Manager, and entering the URL and
your email address and password.
You must do this separately at each or your computers.
You must do this separately at each of your computers.
</td>
</tr>
<tr>

View File

@ -13,20 +13,19 @@ Examples include:
";
list_start();
list_item("<a href=gui_rpc.php>Client GUIs</a>",
"These allow an application to control a local
or remove core client."
"Application that control a local or remote core client."
);
list_item("<a href=stats.php>Credit statistics web sites</a>",
"Daily feeds of statistics data from BOINC projects
let you create web sites showing leaderboards."
"Web sites showing credit information
(project totals, user/team/country leaderboards)
based on daily XML feeds of statistics data from BOINC projects."
);
list_item("<a href=acct_mgt.php>Account managers</a>",
"These interfaces support web sites that
let BOINC users manage their accounts."
"Web sites that let BOINC users create and manage accounts
on multiple projects."
);
list_item("<a href=server_status.php>Server status web sites</a>",
"These interfaces support web sites showing the
server status of BOINC projects."
"Web sites showing the server status of BOINC projects."
);
list_item("<a href=web_rpc.php>Web RPCs</a>",
"These interfaces let a program or web site
@ -84,10 +83,11 @@ The following medium-to-large development projects are available:
</ul>
<li> Core client:
<ul>
<li> Rewrite the CPU scheduler and work fetch policies
to match the design document (John McLeod is working on this).
<li> After the above is done,
write a simulator for the CPU scheduler and work fetch policies.
<li> Extend general preferences to allow users to
specify different time-of-day restrictions for different days of the week.
<li>
Write a simulator for the CPU scheduler and work fetch policies
(Derrick Kondo is working on this).
<li> Log result start/ends (for use by 3rd-party software like BoincView).
@ -101,10 +101,10 @@ with file deletion according to project policy.
Change the Statistics tab to use a single graph
with lines of different colors or styles for different projects.
<li> Show progress bars for file transfers and in-progress results.
<li> Show progress bars for file transfers and in-progress results
(this requires changing the container class from Spreadsheet to Grid).
<li> Show pie charts for disk usage
<li> Sortable columns in Work tab.
<li> Sortable columns in the Work tab.
</ul>

View File

@ -21,8 +21,10 @@ The 'fuzzy comparison' approach does not work for such applications.
<h2>Eliminating discrepancies</h2>
<p>
One approach is to eliminate numerical discrepancies.
Some notes on how to do this for Fortran programs
are <a href=fortran_numerics.txt>here</a>
Some notes on how to do this for Fortran programs are given in a paper,
<a href=MOM1MP01.pdf>Massive Tracking on Heterogeneous Platforms</a>
and in an earlier <a href=fortran_numerics.txt>text document</a>,
both courtesy of Eric McIntosh,
<h2>Homogeneous redundancy</h2>
<p>

View File

@ -309,4 +309,96 @@ int GLOBAL_PREFS::write(MIOFILE& f) {
return 0;
}
// write a subset of the global preferences,
// as selected by the mask of bools
//
int GLOBAL_PREFS::write_subset(MIOFILE& f, GLOBAL_PREFS_MASK& mask) {
f.printf("<global_preferences>\n");
if (mask.run_on_batteries) {
f.printf(" <run_on_batteries>%d</run_on_batteries>\n",
run_on_batteries?1:0
);
}
if (mask.run_if_user_active) {
f.printf(" <run_if_user_active>%d</run_if_user_active>\n",
run_if_user_active?1:0
);
}
if (mask.start_hour) {
f.printf(" <start_hour>%d</start_hour>\n", start_hour);
}
if (mask.end_hour) {
f.printf(" <end_hour>%d</end_hour>\n", end_hour);
}
if (mask.net_start_hour) {
f.printf(" <net_start_hour>%d</net_start_hour>\n", net_start_hour);
}
if (mask.net_end_hour) {
f.printf(" <net_end_hour>%d</net_end_hour>\n", net_end_hour);
}
if (mask.leave_apps_in_memory) {
f.printf(" <leave_apps_in_memory>%d</leave_apps_in_memory>\n",
leave_apps_in_memory?1:0
);
}
if (mask.confirm_before_connecting) {
f.printf(" <confirm_before_connecting>%d</confirm_before_connecting>\n",
confirm_before_connecting?1:0
);
}
if (mask.hangup_if_dialed) {
f.printf(" <hangup_if_dialed>%d</hangup_if_dialed>\n",
hangup_if_dialed?1:0
);
}
if (mask.dont_verify_images) {
f.printf(" <dont_verify_images>%d</dont_verify_images>\n",
dont_verify_images?1:0
);
}
if (mask.work_buf_min_days) {
f.printf(" <work_buf_min_days>%f</work_buf_min_days>\n", work_buf_min_days);
}
if (mask.max_cpus) {
f.printf(" <max_cpus>%d</max_cpus>\n", max_cpus);
}
if (mask.cpu_scheduling_period_minutes) {
f.printf(" <cpu_scheduling_period_minutes>%f</cpu_scheduling_period_minutes>\n", cpu_scheduling_period_minutes);
}
if (mask.disk_interval) {
f.printf(" <disk_interval>%f</disk_interval>\n", disk_interval);
}
if (mask.disk_max_used_gb) {
f.printf(" <disk_max_used_gb>%f</disk_max_used_gb>\n", disk_max_used_gb);
}
if (mask.disk_max_used_pct) {
f.printf(" <disk_max_used_pct>%f</disk_max_used_pct>\n", disk_max_used_pct);
}
if (mask.disk_min_free_gb) {
f.printf(" <disk_min_free_gb>%f</disk_min_free_gb>\n", disk_min_free_gb);
}
if (mask.vm_max_used_frac) {
f.printf(" <vm_max_used_pct>%f</vm_max_used_pct>\n", vm_max_used_frac*100);
}
if (mask.ram_max_used_busy_frac) {
f.printf(" <ram_max_used_busy_pct>%f</ram_max_used_busy_pct>\n", ram_max_used_busy_frac*100);
}
if (mask.ram_max_used_idle_frac) {
f.printf(" <ram_max_used_idle_pct>%f</ram_max_used_idle_pct>\n", ram_max_used_idle_frac*100);
}
if (mask.idle_time_to_run) {
f.printf(" <idle_time_to_run>%f</idle_time_to_run>\n", idle_time_to_run);
}
if (mask.max_bytes_sec_up) {
f.printf(" <max_bytes_sec_up>%f</max_bytes_sec_up>\n", max_bytes_sec_up);
}
if (mask.max_bytes_sec_down) {
f.printf(" <max_bytes_sec_down>%f</max_bytes_sec_down>\n", max_bytes_sec_down);
}
if (mask.cpu_usage_limit) {
f.printf(" <cpu_usage_limit>%f</cpu_usage_limit>\n", cpu_usage_limit);
}
f.printf("</global_preferences>\n");
}
const char *BOINC_RCSID_3fb442bb02 = "$Id$";

View File

@ -32,6 +32,35 @@
// A scheduler reply message may contain a more recent set of preferences.
//
// A struct with one bool per GLOBAL_PREFS field
//
struct GLOBAL_PREFS_MASK {
bool run_on_batteries;
bool run_if_user_active;
bool start_hour; // 0..23; no restriction if start==end
bool end_hour;
bool net_start_hour; // 0..23; no restriction if start==end
bool net_end_hour;
bool leave_apps_in_memory;
bool confirm_before_connecting;
bool hangup_if_dialed;
bool dont_verify_images;
bool work_buf_min_days;
bool max_cpus;
bool cpu_scheduling_period_minutes;
bool disk_interval;
bool disk_max_used_gb;
bool disk_max_used_pct;
bool disk_min_free_gb;
bool vm_max_used_frac;
bool ram_max_used_busy_frac;
bool ram_max_used_idle_frac;
bool idle_time_to_run;
bool max_bytes_sec_up;
bool max_bytes_sec_down;
bool cpu_usage_limit;
};
// The following structure is a parsed version of the prefs file
//
struct GLOBAL_PREFS {
@ -71,6 +100,7 @@ struct GLOBAL_PREFS {
int parse_override(XML_PARSER&, const char* venue, bool& found_venue);
int parse_file(const char* filename, const char* venue, bool& found_venue);
int write(MIOFILE&);
int write_subset(MIOFILE&, GLOBAL_PREFS_MASK&);
};
#endif