diff --git a/checkin_notes b/checkin_notes index 73cd874232..c71df460f9 100755 --- a/checkin_notes +++ b/checkin_notes @@ -9522,3 +9522,14 @@ Rom 24 July 2005 ViewResources.cpp ViewStatistics.cpp ViewTransfers.cpp + +David 24 July 2005 + - If benchmarks fail (e.g. because an app doesn't exit) + set a flag in state file and rerun on next startup + (from John McLeod) + + client/ + app_start.C + client_state.h + cs_benchmark.C + cs_statefile.C diff --git a/client/app_start.C b/client/app_start.C index 9a96dd6791..5e47cc518c 100644 --- a/client/app_start.C +++ b/client/app_start.C @@ -408,7 +408,7 @@ int ACTIVE_TASK::start(bool first_time) { if (retval) { msg_printf( wup->project, MSG_ERROR, - "Can't create shared memory: %d", boincerror(retval) + "Can't create shared memory: %s", boincerror(retval) ); return retval; } diff --git a/client/client_state.h b/client/client_state.h index 8a9d913a42..6ae3d1503c 100644 --- a/client/client_state.h +++ b/client/client_state.h @@ -146,6 +146,10 @@ private: // if set, use hardwired numbers rather than running benchmarks bool run_cpu_benchmarks; // if set, run benchmarks on client startup + bool cpu_benchmarks_pending; + // set if a benchmark fails to start because of a process that doesn't stop. + // Persists so that the next start of BOINC runs the benchmarks. + int exit_after_app_start_secs; // if nonzero, exit this many seconds after starting an app double app_started; diff --git a/client/cs_benchmark.C b/client/cs_benchmark.C index 0c77776bb7..0c2739e047 100644 --- a/client/cs_benchmark.C +++ b/client/cs_benchmark.C @@ -181,6 +181,8 @@ void CLIENT_STATE::start_cpu_benchmarks() { return; } + cpu_benchmarks_pending = false; + bm_state = BM_FP_INIT; remove_benchmark_file(BM_TYPE_FP); remove_benchmark_file(BM_TYPE_INT); @@ -297,6 +299,7 @@ bool CLIENT_STATE::cpu_benchmarks_poll() { abort_cpu_benchmarks(); benchmarks_running = false; set_client_state_dirty("CPU benchmarks"); + cpu_benchmarks_pending = true; return false; } diff --git a/client/cs_statefile.C b/client/cs_statefile.C index 92c376e1b1..66c96bd73a 100644 --- a/client/cs_statefile.C +++ b/client/cs_statefile.C @@ -268,6 +268,12 @@ int CLIENT_STATE::parse_state_file() { continue; } else if (parse_int(buf, "", old_major_version)) { } else if (parse_int(buf, "", old_minor_version)) { + } else if (match_tag(buf, "")) { + run_cpu_benchmarks = true; + } else if (match_tag(buf, "")) { + work_fetch_no_new_work = true; + } else if (match_tag(buf, "cpu_earliest_deadline_first/>")) { + cpu_earliest_deadline_first = true; } else if (match_tag(buf, "")) { retval = proxy_info.parse(mf); if (retval) { @@ -354,12 +360,14 @@ int CLIENT_STATE::write_state(MIOFILE& f) { "%d\n" "%d\n" "%d\n" - "%d\n", + "%d\n" + "%s", platform_name, core_client_major_version, core_client_minor_version, user_run_request, - user_network_request + user_network_request, + cpu_benchmarks_pending?"\n":"" ); proxy_info.write(f); @@ -498,19 +506,16 @@ int CLIENT_STATE::write_state_gui(MIOFILE& f) { if (results[i]->project == p) results[i]->write_gui(f); } } - f.printf( - "%d\n" - "%d\n", - work_fetch_no_new_work?1:0, - cpu_earliest_deadline_first?1:0 - ); f.printf( "%s\n" "%d\n" - "%d\n", + "%d\n" + "%s%s", platform_name, core_client_major_version, - core_client_minor_version + core_client_minor_version, + work_fetch_no_new_work?"\n":"", + cpu_earliest_deadline_first?"\n":"" ); global_prefs.write(f); diff --git a/doc/boinc_news.inc b/doc/boinc_news.inc index 1147c6a477..012d4e966e 100644 --- a/doc/boinc_news.inc +++ b/doc/boinc_news.inc @@ -2,6 +2,11 @@ $project_news = array( +array("July 24, 2005", + "A paper by Jakob Pedersen & Christian Søttrup + discusses the interoperation of the Grid and BOINC." +), + array("July 11-12, 2005", "The First Pangalactic BOINC Workshop was held at CERN, diff --git a/doc/client_unix.php b/doc/client_unix.php index c8e747b85d..efccd5a3d0 100644 --- a/doc/client_unix.php +++ b/doc/client_unix.php @@ -69,6 +69,9 @@ list_item("-allow_remote_gui_rpc", list_item("-dir abs_path", "Use the given directory as BOINC home" ); +list_item("-no_gui_rpc", + "Don't allow GUI RPCs; don't try to create socket;")" +); list_end(); echo "

diff --git a/doc/contact.php b/doc/contact.php index b2ab4e6720..c2612a5593 100644 --- a/doc/contact.php +++ b/doc/contact.php @@ -91,7 +91,7 @@ show_name("Thomas Richard"); show_name("Nikolay Saharov"); show_name("Jens Seidler"); show_name("Peter Smithson"); -show_name("Christian Soettrup"); +show_name("Christian Sø'ttrup"); show_name("Michela Taufer"); show_name("Mathias Walter"); show_name("Rom Walton"); diff --git a/doc/download_other.php b/doc/download_other.php index 5e68143d86..9e2eab41b8 100644 --- a/doc/download_other.php +++ b/doc/download_other.php @@ -22,6 +22,11 @@ list_start(); list_heading_array(array( "Site", "Platforms", "Programs available" )); +list_item_array(array( + "http://interreality.org/~reed/sw/boinc/", + "Debian Linux", + "BOINC client and manager" +)); list_item_array(array( "SETI@BOINC (English, Dutch)", @@ -40,8 +45,8 @@ list_item_array(array( "BOINC core client and manager" )); list_item_array(array( - "Mattias Pilch", - "Linux on DEC", + "Matthias Pilch", + "Linux on DEC, IA64", "BOINC, SETI@home" )); list_item_array(array( diff --git a/doc/intro.php b/doc/intro.php index 209a91393d..8f24d36f0e 100644 --- a/doc/intro.php +++ b/doc/intro.php @@ -6,7 +6,7 @@ echo" BOINC is a software platform for distributed computing using volunteered computer resources.

-

Papers about BOINC

+

Papers related to BOINC

Public Computing: Reconnecting People to Science
David P. Anderson. @@ -14,7 +14,7 @@ using volunteered computer resources.
Residencia de Estudiantes, Madrid, Spain, Nov. 17-19 2003.

-This paper is about BOINC's design goals. +A paper about BOINC's goals. Also available in HTML | HTML/German | @@ -27,6 +27,11 @@ Also available in

A more technical paper. +

+Developing Distributed Computing Solutions Combining Grid Computing and +Public Computing. +M.Sc. Thesis by Jakob Gregor Pedersen & Christian Ulrik Søttrup. +http://www.fatbat.dk/thesis/

Features of BOINC