From 25c5eb2617120a2f696519db12ff16d558fd1800 Mon Sep 17 00:00:00 2001 From: Charlie Fenton Date: Thu, 5 Feb 2009 12:44:39 +0000 Subject: [PATCH] SS: Implement basic new functionality in screensaver coordinator (tested on Mac only so far) svn path=/trunk/boinc/; revision=17147 --- checkin_notes | 2310 ++++++++++++++++++------------------- clientscr/screensaver.cpp | 3 +- 2 files changed, 1157 insertions(+), 1156 deletions(-) diff --git a/checkin_notes b/checkin_notes index ea157c5d6d..678f095e49 100644 --- a/checkin_notes +++ b/checkin_notes @@ -1,1155 +1,1155 @@ -David Jan 2 2009 - - added a script to make profile.has_picture consistent - with the images actually on disk - - html/ops/ - repair_profile_pictures.php - -David Jan 2 2009 - - client: more work-fetch stuff. - No more per-project shortfall. - It's getting pretty close. - - client/ - client_state.cpp - client_types.cpp,h - cs_scheduler.cpp - rr_sim.cpp - scheduler_op.cpp - work_fetch.cpp,h - lib/ - coproc.cpp,h - -Janus Jan 6 2009 - - Various translation fixes - - Added Danish web interface translation - - Added some Danish translation texts to the client translation file - - Added Finnish web interface translation (contributed by ORE) - - html/ - inc/ - user.inc - user/ - info.php - languages/translations - da.po (fully rewritten) - fi.po (new) - locales/da - BOINC-Manager.po - -Charlie Jan 6 2009 - - client: preserve ownership when copying files to slot directory. Fixes - a problem with Enigma@home which uses the tag. - - lib/ - filesys.cpp - -Rom 7 Jan 2009 - - Fix build environment so that it can build the client again - (From Nicolás Alvarez) - - / - configure.ac - Makefile.am - sea/ - make-tar.sh - make-tar_debug.sh - -David 7 Jan 2009 - - get_project_config: don't send error text if no terms_of_use.txt - - client: compute and store project work-fetch attributes - fixes #820 - - client/ - client_state.h - work_fetch.h,cpp - html/user/ - get_project_config.php - -Charlie Jan 6 2009 - - client: fix compiler warnings (formats didn't match data). - - client/ - work_fetch.cpp - -David 9 Jan 2009 - - client: connected_frac -1 is OK; fixes #821 - - client/ - time_stats.cpp - -David 9 Jan 2009 - - scheduler: add support for resource-specific scheduler requests: - - parse new request message elements - (CPU and coproc requested seconds and instances) - - decide how many jobs to send based on these params - - select app version based on these params - (may send both CPU and CUDA app versions for the same app!) - - lib/ - coproc.cpp - sched/ - handle_request.cpp - main.cpp,h - sched_plan.cpp - sched_send.cpp - server_types.cpp,h - -David 9 Jan 2009 - - client: debugging CUDA-related stuff - - client: if reset a project, clear its overall and per-resource backoffs - - client/ - client_state.cpp - client_types.cpp - cs_scheduler.cpp - rr_sim.cpp - scheduler_op.cpp - sim.h - work_fetch.cpp,h - lib/ - coproc.cpp - -Charlie Jan 10 2009 - - Mac: Fix build scripts for new locale source directory layout. - - mac_installer/ - release_GridRepublic.sh - release_boinc.sh - -David Jan 10 2009 - - client: work_req_seconds is CPU req, not max(CPU req, CUDA req). - In order to work with the 6.7 client, - projects with both CUDA and CPU jobs must use the newest scheduler code. - - client/ - work_fetch.cpp - -David Jan 11 2009 - - scheduler: if a Windows host has a GPU slower than 60 GFLOPS, - don't send it CUDA jobs (they may cause BSOD); - send user a message to this effect - - sched/ - sched_plan.cpp - sched_send.cpp - server_types.h - -David Jan 12 2009 - - lib: check return values of RSA_*() functions. - Also fix a memory leak, missing RSA_free(). - Fixes #823. - - lib/ - crypt.cpp - error_numbers.h - str_util.cpp - -Rom 12 Jan 2009 - - WINSETUP: Update custom actions in case the goofy setup - problems are related to old custom actions. I don't - really think this is it, but i'm running out of ideas. - - win_build/installerv2/redist/Windows/src/boinccas/ - boinccas.rc - win_build/installerv2/redist/Windows/Win32/ - boinccas.dll - boinccas95.dll - win_build/installerv2/redist/Windows/x64/ - boinccas.dll - boinccas95.dll - -David 12 Jan 2009 - - web: add Eric's script for forum RSS - - html/user/ - forum_rss.php - -David 12 Jan 2009 - - scheduler, file upload handler: fix server runtime message in FCGI case - - sched/ - file_upload_handler.cpp - handle_request.cpp - main.cpp - sched_util.cpp,h - server_types.cpp - -David 12 Jan 2009 - - scheduler: initialize COPROC fields - - lib/ - coproc.cpp - -David 12 Jan 2009 - - scheduler: if we're not sending work because of the user's "no GPUs" pref, - tell them so. - - scheduler: fix bug that caused no CUDA jobs to be sent - - lib/ - coproc.cpp,h - common_defs.h - sched/ - handle_request.cpp - sched_send.cpp - sched_plan.cpp - server_types.h - -David 12 Jan 2009 - - scheduler: bug fixes - - sched/ - handle_request.cpp - sched_send.cpp - -David 12 Jan 2009 - - scheduler: bug fixes - - sched/ - sched_plan.cpp - -David 13 Jan 2009 - - GUI RPC: add the following items to PROJECT_CONFIG - (corresponding to the get_project_config.php web RPC): - - platforms: list of platforms supported by the project - - sched_stopped: scheduler disabled - - web_stopped: DB-driven web features disabled - - min_client_version - - GUI RPC: add the following items to CC_STATE: - - platforms: list of platforms supported by the client - (this replaces the unused ) - - GUI RPC: add the following items to PROJECT_LIST_ENTRY - (entry in the "all projects" list): - - platforms: list of platforms supported by the project - - GUI RPC: move APP_VERSION pointer from WORKUNIT to RESULT; - include plan class in APP_VERSION lookup. - This completes the change of March 2008, - and allows the Manager to work correctly when a project - has two different app versions of the same (app, platform, version) - running on a client at once (e.g., a CPU and a GPU app) - - get_project_config.php: remove logic that checks client version. - This page is accessed by PHP, not just by client - - web: add link to forum page to get forum as RSS - - client/ - cs_statefile.cpp - clientgui/ - DlgItemProperties.cpp - MainDocument.cpp - ViewWork.cpp - sg_ViewTabPage.cpp - html/user/ - get_project_config.php - forum_rss.php - forum_forum.php - img/feed_logo.png (new) - lib/ - gui_rpc_client_ops.cpp - gui_rpc_client.h - -David 13 Jan 2009 - - client: GPU bug fix; compile warning fixes - - client/ - client_types.cpp - clientgui/ - BOINCTaskBar.cpp - lib/ - filesys.cpp - parse.cpp - -David 13 Jan 2009 - - GUI RPC: finish the changed started above; - update the way that app versions are identified. - - Old: WORKUNIT contains version_num - RESULT contains app_version_num (but only if running) - - New: Keep old fields so new client works with old manager. - RESULT contains version_num, plan_class - Manager: if RESULT doesn't have version/plan_class - (because talking to old client) - look up app version based on WU version num. - - clientgui/ - BOINCTaskBar.cpp - sg_ViewTabPage.cpp - MainDocument.cpp - DlgItemProperties.cpp - ViewWork.cpp - lib/ - gui_rpc_client_ops.cpp - gui_rpc_client.h - -Eric 13 Jan 2009 - - STILL WORK TO BE DONE TO GET locale STUFF INSTALLED PROPERLY!!! - - Update to libtool 1.5.24 - - build environment: Major automake changes that I've been warning about - for some time. - - Now uses libtool to build libraries. - - Builds separate boinc_fcgi and sched_fcgi libraries for use with - FCGI server components. - - New macro "BOINC_CHECK_LIB_WITH" that executes a "AC_CHECK_LIB" on - a library only if --with-libname[=DIR] is specified on the configure - command line. This is to allow inclusion of libraries when the - ssl, gtk, wxWidgets, or other configuration is incorrect for static - libraries. - - Added a lot of "--with-*" for some libraries that might be required for - static builds. - - The sea directory has been moved to packages/generic. Changes to sea - and the associated scripts might be required to better make use of the - staging mechanism and shared libraries. - - Fixed includes of boinc_fcgi.h in many files. - - Fixed places where FCGI_FILE needs to be used implicitly. - - Fixed missing define of _SC_PAGESIZE on hosts that define only - _SC_PAGE_SIZE. - - Moved build of boinc_cmd (and source file) from lib to client - - - ltmain.sh - config.guess - config.sub - Makefile.incl - m4/ - sah_check_lib.m4 - check_ssl.m4 - boinc_gtk.m4 (new) - boinc_check_lib_with.m4 (new) - libcurl.m4 - boinc_wxwidgets.m4 - sea/ (moved to packages/generic/sea) - packages/ (new) - generic/ (new) - sea/ (new) - Makefile.am - client/ - Makefile.am - hostinfo_unix.cpp - sched/ - edf_sim.cpp - sched_shmem.h - sched_msgs.h - sched_msgs.cpp - sched_send.cpp - handle_resuest.cpp - file_upload_handler.cpp - main.cpp - sched_assign.cpp - Makefile.am - lib/ - boinc_cmd.cpp (moved to client) - diagnostics.cpp - prefs.cpp - msg_log.h - cert_sig.cpp - Makefile.am - zip/ - Makefile.am - samples/ - example_app/ - Makefile - api/ - Makefile.am - clientgui/ - Makefile.am - tools/ - backend_lib.cpp - Makefile.am - doc/ - manpages/ - Makefile.am - -David 13 Jan 2009 - - client/manager fixes - - client/ - client_types.cpp - lib/ - gui_rpc_client_ops.cpp - gui_rpc_client.h - -David 14 Jan 2009 - - client: fix bug that caused estimated time to completion to increase - while processing suspended - Fixes #825 - - client/ - app_control.cpp - -David 14 Jan 2009 - - client: clamp long term debts tp +- 1 week - - client: fix CUDA debt calculation - - client: don't accumulate debt if project->dont_request_more_work - - client: improves messages - - client/ - rr_sim.cpp - -Rom 15 Jan 2009 - - WINSETUP: Fix the problem introduced where Enable Application - execution wasn't working. - - win_build/installerv2/ - BOINC.ism - BOINCx64.ism - -Rom 15 Jan 2009 - - MGR: Don't convert strings to ANSI juts to have to reconvert them - back to Unicode. Fix several help link issues. - Fixes #826 - - clientgui/ - AdvancedFrame.cpp - DlgAdvPreferences.cpp - sg_BoincSimpleGUI.cpp - sg_DlgMessages.cpp - sg_DlgPreferences.cpp - sg_ProjectsComponent.cpp - -David 15 Jan 2009 - - scheduler: improve message formatting; add flag - for locality scheduling messages - - lib/ - msg_log.cpp - sched/ - *.cpp - -David 15 Jan 2009 - - GUI RPC: add CUDA info to PROJECT struct - - manager: display CUDA info in project properties page - - manager: use struct assignment instead of copy() function - - client/ - boinc_cmd.cpp - clientgui/ - AsyncRPC.cpp - DlgItemProperties.cpp - lib/ - gui_rpc_client_ops.cpp - gui_rpc_client.h - -David 15 Jan 2009 - - scheduler: remove clause in app_plan() that withholds jobs from slow GPUs. - The SETI@home/CUDA app has been fixed so that it works on all GPUs. - - sched/ - sched_plan.cpp - -Eric 15 Jan 2009 - - build: Made static linkage of BOINC libraries the default for client, - manager, and server components - - configure.ac - tools/ - Makefile.am - clientgui/ - Makefile.am - client/ - Makefile.am - samples/ - example_app/ - Makefile - -Charlie Jan 15 2009 - - client: boinc_copy ownership fix of 1/6/09 didn't work because it used - system(cp ...) call, which invokes a shell, and POSIX specifies that - shells run from an application use the real UID and GID not the - effective UID and GID. Under Mac Sandbox security, we need to use - the effective UID and GID. Changed boinc_copy to copy file directly. - - MGR: On Mac, fix problems showing Manager window when it was minimized - to Dock, especially if window was closed using Dock menu. - - Mac: Fix XCode project for boinc_cmd.cpp moved to client/ from lib/. - - client/ - app_start.cpp - clientgui/ - BOINCBaseFrame.cpp - BOINCGUIApp.h - BOINCTaskBar.cpp - lib/ - filesys.cpp - mac_build/ - boinc.xcodeproj/ - project.pbxproj - -David 16 Jan 2009 - - client: remove limits on LTD. - - client/ - work_fetch.cpp - -David 19 Jan 2009 - - scheduler: remove the config flag , - and add . - The latter is used in calculating max jobs/day for a host; - namely, it's host.max_results_day * (NCPUS + NCUDA*cuda_multiplier). - Set it to 10 or so if you have CUDA apps. - - scheduler: don't overload effective_ncpus(); - instead, add two new functions, - max_results_day_multiplier() and max_wus_in_progress_multiplier() - - scheduler: don't reduce max_results_day if we get an aborted job - (it might have been aborted by the project; - not appopriate to punish host in this case) - - db/ - boinc_db.h - sched/ - main.cpp - sched_config.cpp,h - sched_result.cpp - server_types.h - -David 20 Jan 2009 - - client: fix messages - - client/ - rr_sim.cpp - work_fetch.cpp - -David 20 Jan 2009 - - scheduler: improve no-work messages - - web: don't use DB conn in mysql_real_escape_string() - (otherwise won't work if DB is down) - - html/inc/ - boinc_db.inc - db_conn.inc - sched/ - sched_plan.cpp.h - sched_send.cpp - server_types.h - -Charlie Jan 20 2009 - - Mac client: fix bug in build script so that curl-7.19.2 actually - does build with c-ares 1.6.0. Fixes #830. - - mac_build/ - buildcurl.sh - -David 21 Jan 2009 - - scheduler: accept CUDA version 1.0 - - sched/ - sched_plan.cpp - -David 21 Jan 2009 - - client: fetch work from non-CPU-intensive projects - - client/ - work_fetch.cpp,h - -David 21 Jan 2009 - - client: compile fix, remove spurious message - - client/ - work_fetch.cpp,h - -Rom 21 Jan 2009 - - MGR: Make sure the UI thread doesn't call a GUI RPC - that uses the SET_LOCALE class. - - clientgui/ - BOINCClientManager.cpp - -Charlie Jan 22 2009 - - MGR: fix compile error. - - clientgui/ - BOINCClientManager.cpp - -David 22 Jan 2009 - - client: if an app has avg_ncpus < 1, run it at above-idle priority - even if it doesn't use a coprocessor. - - scheduler: added an "nci" (non CPU intensive) plan class - to sched_plan.cpp. It declares the use of 1% of a CPU. - - The above two changes are intended to allow the QCN app to - run at above_idle priority, which it needs in order to do 500Hz polling. - - - API: the std::string version of boinc_resolve_filename() - acts the same as the char[] version. - - client/ - app.cpp - app_start.cpp - lib/ - app_ipc.cpp - gui_rpc_client.cpp - sched/ - sched_plan.cpp - -David 22 Jan 2009 - - web: when using adaptive replication, show a WU's instances - if it has a canonical result, not if it's been assimilated - (if the assimilator is not working, the latter causes - WUs to be hidden longer than needed) - - html/user/ - workunit.php - -David 22 Jan 2009 - - client: simplify message describing scheduler request; - to get work request details, use - - client/ - scheduler_op.cpp - -Eric 22 Jan 2009 - - build: reordered compiler flags checking. - Fixed problems with finding location of wx-config - when running with cached configuration. - Made sure to check ${prefix}/lib when looking for - libGL, libGLU, and libglut. - - m4/ - boinc_wxwidgets.m4 - ax_check_glut.m4 - ax_check_glu.m4 - ax_check_gl.m4 - boinc_set_compile_flags.m4 - -David 22 Jan 2009 - - client: when preempting a process, remove it from memory if: - 1) it uses a coprocessor - 2) it has checkpointed since the client started - 3) it's being preempted because of a user action - (suspend job, project, or all processing) - or user preference (time of day, computer in use) - - scheduler: if shared mem seg doesn't exist, - report it and don't crash - - client/ - app.h - app_start.cpp - app_control.cpp - cpu_sched.cpp - sched/ - main.cpp - -Charlie Jan 22 2009 - - client sandbox: add details in switcher_exec "execv failed" message. - - MGR: Work around bug in generic list control GetSelectedItemCount() - which caused incorrect update of buttons in Projects tab after - detching from a project; remove redundant UpdateSelection() call. - - client/ - sandbox.cpp - clientgui/ - BOINCBaseView.cpp - BOINCListCtrl.cpp,.h - -David 23 Jan 2009 - - client: clear debts when reset project - - client: respect work-fetch backoff for non-CPU-intensive projects - - client: for non-CPU-intensive project, fetch new job - if no currently running jobs - - client: skip non-CPU-intensive projects in debt calculations - - manager: show resource backoff times correctly - - client/ - app_control.cpp - client_state.cpp - client_types.cpp,h - work_fetch.cpp,h - clientgui/ - DlgItemProperties.cpp - -David 23 Jan 2009 - - scheduler: for plan class "nci", set flops to CPU speed; - this will give consistent completion time estimates for existing WUs. - - sched/ - sched_plan.cpp - -David 23 Jan 2009 - - scheduler: fix spurious error message when using nci - - sched/ - sched_plan.cpp,h - sched_send.cpp - -David 23 Jan 2009 - - web: fix apps.php so that it knows about plan class - - html/user/ - apps.php - -David 23 Jan 2009 - - API: possible compile fix for OS/2 - - api/ - boinc_api.cpp - -David 23 Jan 2009 - - scheduler: reduce frequency of calls to work_needed() - - sched/ - sched_array.cpp - sched_send.app - -David 23 Jan 2009 - - scheduler: make NCI app versions preferable to non-plan-class - - sched/ - sched_plan.cpp - -David 23 Jan 2009 - - scheduler: if client can't do plan class, don't complain about old client - - sched/ - sched_send.cpp - -Charlie Jan 23 2009 - - MGR: Remove override of GetSelectedItemCount() introduced yesterday; - instead, call DeleteItem() rather than SetItemCount() when number of - rows has been reduced, to allow virtual ListCtrl adjust its list of - selected rows (and thus keep its count in sync with reality.) - - clientgui/ - BOINCBaseView.cpp - BOINCListCtrl.cpp,.h - -David 23 Jan 2009 - - scheduler: initialize global - - sched/ - handle_request.cpp - -David 23 Jan 2009 - - scheduler: if anonymous platform, ignore coprocessor requests - (since anonymous platforms apps are treated as CPU) - - sched/ - sched_send.cpp - server_types.h - -Janus 25 Jan 2009 - - Fixed a major bug in the translation system which was causing a lot - of people to receive the webpages in semi-random languages. - - Added the ability for projects to decide whether they want the - Q&A and Message Boards merged. - - html/ - inc/ - translation.inc - user/ - forum_index.php - project_sample/ - project.inc - -David 25 Jan 2009 - - client: don't request work for a resource if it has no shortfall. - - client and server: get rid of coproc_cuda global. - - client/ - client_state.cpp,h - work_fetch.cpp,h - lib/ - coproc.cpp,h - sched/ - handle_request.cpp - sched_send.cpp - server_types.cpp,h - -Rom 26 Jan 2009 - - MGR: Don't use wxT() to describe parameters passed to GUI RPCs. - - clientgui/ - BOINCClientManager.cpp - -David 26 Jan 2009 - - client: if we're doing an RPC (for whatever reason) - to a non-CPU-intensive project without a job, ask for one. - - client/ - work_fetch.cpp - -Charlie Jan 26 2009 - - MGR: In CBOINCClientManager::StartupBOINCCore() allow time for Client - to start up, to avoid repeated attempts which put spurious messages - "Another instance Another instance of BOINC is running" in - stderrdae.txt. - - clientgui/ - BOINCClientManager.cpp - -David 27 Jan 2009 - - client: change the LTD policy so that - 1) net adjustment for eligible projects is zero; - 2) max LTD is zero - - scheduler: fix msgs so disk size is shown in GB - - client/ - work_fetch.cpp - sched/ - sched_send.cpp - -Eric K 27 Jan 2009 - - SEA: Fixed problems building SEA - - Manager: Fixed missing includes when building manager on unix. - - configure.ac - packages/ - generic/ - sea/ - Makefile.am - make-tar.sh - clientgui/ - BOINCClientManager.cpp - - -David 27 Jan 2009 - - scheduler: in get_app_version(), if we previously sent a CUDA app, - but we don't need to send any more CUDA jobs, - delete the BEST_APP_VERSION record and look for another app version. - This lets the scheduler send both CUDA and CPU app versions - for a given app in a single RPC. - - client/ - work_fetch.h - sched/ - sched_send.cpp - -David 27 Jan 2009 - - client: if we're making an RPC to a project because of user request, - clear the resource backoff times so that we potentially - can ask the project for work. - - client/ - cs_scheduler.cpp - work_fetch.cpp - -Eric K 27 Jan 2009 - - Manager: fixes to allow compilation on compilers that don't allow string - concatenation within the _() macro. - - clientgui/ - WelcomePage.cpp - ProxyInfoPage.cpp - -David 27 Jan 2009 - - lib: comment out perror()s in connection code. - - lib/ - gui_rpc_client.cpp - -David 27 Jan 2009 - - client: remove the "deadlines_missed" and "overworked" - clauses from RSC_WORK_FETCH::choose_project() - - client/ - work_fetch.cpp,h - -David 27 Jan 2009 - - scheduler: don't count host as reliable if avg_turnaround is zero - - client: restore notion of overworked; - if a project is overworked for a resource R, - don't fetch work for R unless there are idle instances - - client/ - work_fetch.cpp,h - sched/ - sched_send.cpp - -David 28 Jan 2009 - - GUI RPC: the "get all projects" RPC now also returns account managers - - lib/ - gui_rpc_client_ops.cpp - gui_rpc_client.h - -Charlie Jan 28 2009 - - GUI RPC: Fix compiler warning (missing return value). - - lib/ - gui_rpc_client_ops.cpp - -Rom Jan 29 2009 - - MGR: Provide a way for skin creators to suppress error messages for - missing resources. - - clientgui/ - SkinManager.cpp - -Rom Jan 29 2009 - - MGR: Save and Restore the last email address/user id used to attach - to a project or account manager - - clientgui/ - AccountInfoPage.cpp - -David 29 Jan 2009 - - web: anywhere we show info about a host, show its GPUs too - - web: add script to parse GPU completed-job log - and generate summary data; - also add page to display this data. - - html/ - inc/ - host.inc - ops/ - analyze_coproc_log.php - user/ - hosts_user.php - show_coproc.php - -David 29 Jan 2009 - - client: if user requests RPC, do it even if project is backed off - - manager: show backoff interval correctly - - client/ - cs_scheduler.cpp - work_fetch.cpp - clientgui/ - DlgItemProperties.cpp - -David 29 Jan 2009 - - scheduler: get effective RAM sizes and running fraction just once - - sched/ - sched_send.cpp - server_types.h - -David 29 Jan 2009 - - client: update LTD correctly - - client/ - work_fetch.cpp - -Rom 29 Jan 2009 - - MGR: Add a virtual list box to display available account managers. - - clientgui/ - AccountManagerInfoPage.cpp, .h - AccountManagerProcessingPage.cpp - AccountManagerPropertiesPage.cpp - ProjectInfoPage.cpp, .h - WizardAccountManager.cpp - lib/ - gui_rpc_client_ops.cpp - -Rom 29 Jan 2009 - - MGR: Filter project list so that it shows only projects supported - by the core client. - - clientgui/ - ProjectInfoPage.cpp, .h - -Charlie Jan 29 2009 - - MGR: call UpdateSelection() from OnListRender() instead of from - RestoreSelections(). Fixes #837. - - clientgui/ - BOINCBaseView.cpp - -Charlie Jan 30 2009 - - MGR: Suppress Skin Manager error messages by default; enable them - only if the Manager is launched from the command line with an - argument -c or --checkskins. - - clientgui/ - BOINCGUIApp.cpp, .h - SkinManager.cpp, .h - -David 30 Jan 2009 - - Work fetch / scheduler: - There are two mechanisms to prevent the scheduler from - sending jobs that won't finish by their deadline. - Simple mechanism: - The client sends the interval x for which CPUs are projected - to be saturated. - Given a job with estimated duration y, - the scheduler doesn't send it if x + y exceeds the delay bound. - If it does send it, x is incremented by y. - Complex mechanism: - Client sends workload description. - Scheduler does EDF simulation, sees if deadlines are missed. - The only project using this AFAIK is BOINC alpha test. - Neither of these mechanisms takes coprocessors into account, - and as a result jobs could be sent that are doomed to - miss their deadline. - This checkin adds coprocessor awareness to the Simple mechanism. - - Changes: - Client: - compute estimated delay (i.e. time until non-saturation) - for coprocessors as well as CPU. - Send them in scheduler request as part of coproc descriptor. - Scheduler: - Keep track of estimated delays separately for different resources - - client: fixed bug that computed CPU estimated delay incorrectly - - client: the work request (req_secs) for a resource is the min - of the project's share and the shortfall. - - client/ - cs_scheduler.cpp - rr_sim.cpp - work_fetch.cpp,h - html/inc/ - translation.inc - lib/ - coproc.cpp,h - sched/ - sched_send.cpp - server_types.cpp,h - -David 30 Jan 2009 - - client: computation of # idle CUDA instances was wrong - - client/ - rr_sim.cpp - -David 30 Jan 2009 - - scheduler: show message whether miss or meet deadline - - html/user/ - show_coproc.php - top_users.php - sched/ - sched_send.cpp - -David 30 Jan 2009 - - client: tweak work fetch messages - - client: buffer 2000 messages instead of 1000 - - client/ - client_msgs.cpp - work_fetch.cpp - lib/ - coproc.cpp - -David 30 Jan 2009 - - client: work fetch fixes - - client/ - work_fetch.cpp - scheduler_op.cpp - -David 31 Jan 2009 - - client: there was a problem with how the round simulator - worked in the presence of coprocessors. - The simulator maintained per-project queues of pending jobs. - When a job finished (in the simulation) it would get - one or more jobs from that project's pending queue. - - The problem: this could cause "holes" in the scheduling of GPUs, - and produce an erroneous nonzero shortfall for GPUs, - leading to infinite work fetch. - - The solution: maintain a separate (per-resource, not per--project) - queue of pending coprocessor jobs. - When a coprocessor job finishes, - start pending jobs from the queue for that resource. - - Another change: the simulator did strict reservation of coprocessors. - If there are 2 instances of CUDA, - and a 1-instance job is running in the simulation, - it wouldn't start an additional 2-instance job. - This also can cause erroneous nonzero shortfalls. - - So instead, schedule coprocessors like CPUs, i.e. saturate them. - This can cause distorted completion time estimates, - but it's better than infinite work fetch. - - client/ - client_types.cpp,h - rr_sim.cpp,h - work_fetch.cpp,h - -David 1 Feb 2009 - - client: code cleanup - - client/ - rr_sim.cpp,h - work_fetch.cpp,h - -David 2 Feb 2009 - - client: code cleanup - - client/ - rr_sim.cpp,h - work_fetch.cpp,h - -David 2 Feb 2009 - - Manager: change terms for STD, LTD - - web: change script that locks old threads to exempt team forums - - clientgui/ - DlgItemProperties.cpp - html/ops/ - autolock.php - -David 3 Feb 2009 - - client: fix bug that caused infinite sched RPCs if project down - - client/ - cs_scheduler.cpp - scheduler_op.cpp - -Rom 3 Feb 2009 - - SCROPENGL: Checkin the files needed for the new OpenGL based - BOINC screensaver. - - clientscr/ - boinc_ss_opengl.h - boinc_ss_opengl.rc - screensaver_opengl.cpp - screensaver_opengl.h - win_build/ - boinc.sln - boinc_ss_opengl.vcproj - -David 3 Feb 2009 - - renamed boinc_ss_opengl to ss_app - -David 3 Feb 2009 - - GUI RPC: made password file read into function - - lib: minimized FCGI library - - client/ - boinc_cmd.cpp - file_names.h - lib/ - gui_rpc_client.cpp,h - common_defs.h - Makefile.am - -Charlie Feb 4 2009 - -SS: Begin work on upgrading screensaver coordinator for new functionality: - - add filenames for ss config file and default OpenLG ss executable - - add sandbox security support for these 2 files. - - client/ - check_security.cpp - file_names.h - clientgui/ - mac/ - SetupSecurity.cpp - mac_build/ - Mac_SA_Secure.sh - -Rom 5 Feb 2008 - - MGR: Display all projects in the project list but disable the text control - is the project doesn't list a supported platform. If the user clicks - on it display a message box stating that once attached the user may not - get any work. - - clientgui/ - AccountManagerInfoPage.cpp - ProjectInfoPage.cpp, .h - ProjectListCtrl.cpp, .h - -Charlie Feb 5 2009 - -SS: Implement basic new functionality in screensaver coordinator. - - Note: this is tested on Mac only at this point. - - client/ - check_security.cpp - file_names.h - clientscr/ - screensaver.cpp, .h - Mac_Saver_Module.h - screensaver_win.h - lib/ - common_defs.h +David Jan 2 2009 + - added a script to make profile.has_picture consistent + with the images actually on disk + + html/ops/ + repair_profile_pictures.php + +David Jan 2 2009 + - client: more work-fetch stuff. + No more per-project shortfall. + It's getting pretty close. + + client/ + client_state.cpp + client_types.cpp,h + cs_scheduler.cpp + rr_sim.cpp + scheduler_op.cpp + work_fetch.cpp,h + lib/ + coproc.cpp,h + +Janus Jan 6 2009 + - Various translation fixes + - Added Danish web interface translation + - Added some Danish translation texts to the client translation file + - Added Finnish web interface translation (contributed by ORE) + + html/ + inc/ + user.inc + user/ + info.php + languages/translations + da.po (fully rewritten) + fi.po (new) + locales/da + BOINC-Manager.po + +Charlie Jan 6 2009 + - client: preserve ownership when copying files to slot directory. Fixes + a problem with Enigma@home which uses the tag. + + lib/ + filesys.cpp + +Rom 7 Jan 2009 + - Fix build environment so that it can build the client again + (From Nicolás Alvarez) + + / + configure.ac + Makefile.am + sea/ + make-tar.sh + make-tar_debug.sh + +David 7 Jan 2009 + - get_project_config: don't send error text if no terms_of_use.txt + - client: compute and store project work-fetch attributes + fixes #820 + + client/ + client_state.h + work_fetch.h,cpp + html/user/ + get_project_config.php + +Charlie Jan 6 2009 + - client: fix compiler warnings (formats didn't match data). + + client/ + work_fetch.cpp + +David 9 Jan 2009 + - client: connected_frac -1 is OK; fixes #821 + + client/ + time_stats.cpp + +David 9 Jan 2009 + - scheduler: add support for resource-specific scheduler requests: + - parse new request message elements + (CPU and coproc requested seconds and instances) + - decide how many jobs to send based on these params + - select app version based on these params + (may send both CPU and CUDA app versions for the same app!) + + lib/ + coproc.cpp + sched/ + handle_request.cpp + main.cpp,h + sched_plan.cpp + sched_send.cpp + server_types.cpp,h + +David 9 Jan 2009 + - client: debugging CUDA-related stuff + - client: if reset a project, clear its overall and per-resource backoffs + + client/ + client_state.cpp + client_types.cpp + cs_scheduler.cpp + rr_sim.cpp + scheduler_op.cpp + sim.h + work_fetch.cpp,h + lib/ + coproc.cpp + +Charlie Jan 10 2009 + - Mac: Fix build scripts for new locale source directory layout. + + mac_installer/ + release_GridRepublic.sh + release_boinc.sh + +David Jan 10 2009 + - client: work_req_seconds is CPU req, not max(CPU req, CUDA req). + In order to work with the 6.7 client, + projects with both CUDA and CPU jobs must use the newest scheduler code. + + client/ + work_fetch.cpp + +David Jan 11 2009 + - scheduler: if a Windows host has a GPU slower than 60 GFLOPS, + don't send it CUDA jobs (they may cause BSOD); + send user a message to this effect + + sched/ + sched_plan.cpp + sched_send.cpp + server_types.h + +David Jan 12 2009 + - lib: check return values of RSA_*() functions. + Also fix a memory leak, missing RSA_free(). + Fixes #823. + + lib/ + crypt.cpp + error_numbers.h + str_util.cpp + +Rom 12 Jan 2009 + - WINSETUP: Update custom actions in case the goofy setup + problems are related to old custom actions. I don't + really think this is it, but i'm running out of ideas. + + win_build/installerv2/redist/Windows/src/boinccas/ + boinccas.rc + win_build/installerv2/redist/Windows/Win32/ + boinccas.dll + boinccas95.dll + win_build/installerv2/redist/Windows/x64/ + boinccas.dll + boinccas95.dll + +David 12 Jan 2009 + - web: add Eric's script for forum RSS + + html/user/ + forum_rss.php + +David 12 Jan 2009 + - scheduler, file upload handler: fix server runtime message in FCGI case + + sched/ + file_upload_handler.cpp + handle_request.cpp + main.cpp + sched_util.cpp,h + server_types.cpp + +David 12 Jan 2009 + - scheduler: initialize COPROC fields + + lib/ + coproc.cpp + +David 12 Jan 2009 + - scheduler: if we're not sending work because of the user's "no GPUs" pref, + tell them so. + - scheduler: fix bug that caused no CUDA jobs to be sent + + lib/ + coproc.cpp,h + common_defs.h + sched/ + handle_request.cpp + sched_send.cpp + sched_plan.cpp + server_types.h + +David 12 Jan 2009 + - scheduler: bug fixes + + sched/ + handle_request.cpp + sched_send.cpp + +David 12 Jan 2009 + - scheduler: bug fixes + + sched/ + sched_plan.cpp + +David 13 Jan 2009 + - GUI RPC: add the following items to PROJECT_CONFIG + (corresponding to the get_project_config.php web RPC): + - platforms: list of platforms supported by the project + - sched_stopped: scheduler disabled + - web_stopped: DB-driven web features disabled + - min_client_version + - GUI RPC: add the following items to CC_STATE: + - platforms: list of platforms supported by the client + (this replaces the unused ) + - GUI RPC: add the following items to PROJECT_LIST_ENTRY + (entry in the "all projects" list): + - platforms: list of platforms supported by the project + - GUI RPC: move APP_VERSION pointer from WORKUNIT to RESULT; + include plan class in APP_VERSION lookup. + This completes the change of March 2008, + and allows the Manager to work correctly when a project + has two different app versions of the same (app, platform, version) + running on a client at once (e.g., a CPU and a GPU app) + - get_project_config.php: remove logic that checks client version. + This page is accessed by PHP, not just by client + - web: add link to forum page to get forum as RSS + + client/ + cs_statefile.cpp + clientgui/ + DlgItemProperties.cpp + MainDocument.cpp + ViewWork.cpp + sg_ViewTabPage.cpp + html/user/ + get_project_config.php + forum_rss.php + forum_forum.php + img/feed_logo.png (new) + lib/ + gui_rpc_client_ops.cpp + gui_rpc_client.h + +David 13 Jan 2009 + - client: GPU bug fix; compile warning fixes + + client/ + client_types.cpp + clientgui/ + BOINCTaskBar.cpp + lib/ + filesys.cpp + parse.cpp + +David 13 Jan 2009 + - GUI RPC: finish the changed started above; + update the way that app versions are identified. + + Old: WORKUNIT contains version_num + RESULT contains app_version_num (but only if running) + + New: Keep old fields so new client works with old manager. + RESULT contains version_num, plan_class + Manager: if RESULT doesn't have version/plan_class + (because talking to old client) + look up app version based on WU version num. + + clientgui/ + BOINCTaskBar.cpp + sg_ViewTabPage.cpp + MainDocument.cpp + DlgItemProperties.cpp + ViewWork.cpp + lib/ + gui_rpc_client_ops.cpp + gui_rpc_client.h + +Eric 13 Jan 2009 + - STILL WORK TO BE DONE TO GET locale STUFF INSTALLED PROPERLY!!! + - Update to libtool 1.5.24 + - build environment: Major automake changes that I've been warning about + for some time. + - Now uses libtool to build libraries. + - Builds separate boinc_fcgi and sched_fcgi libraries for use with + FCGI server components. + - New macro "BOINC_CHECK_LIB_WITH" that executes a "AC_CHECK_LIB" on + a library only if --with-libname[=DIR] is specified on the configure + command line. This is to allow inclusion of libraries when the + ssl, gtk, wxWidgets, or other configuration is incorrect for static + libraries. + - Added a lot of "--with-*" for some libraries that might be required for + static builds. + - The sea directory has been moved to packages/generic. Changes to sea + and the associated scripts might be required to better make use of the + staging mechanism and shared libraries. + - Fixed includes of boinc_fcgi.h in many files. + - Fixed places where FCGI_FILE needs to be used implicitly. + - Fixed missing define of _SC_PAGESIZE on hosts that define only + _SC_PAGE_SIZE. + - Moved build of boinc_cmd (and source file) from lib to client + + + ltmain.sh + config.guess + config.sub + Makefile.incl + m4/ + sah_check_lib.m4 + check_ssl.m4 + boinc_gtk.m4 (new) + boinc_check_lib_with.m4 (new) + libcurl.m4 + boinc_wxwidgets.m4 + sea/ (moved to packages/generic/sea) + packages/ (new) + generic/ (new) + sea/ (new) + Makefile.am + client/ + Makefile.am + hostinfo_unix.cpp + sched/ + edf_sim.cpp + sched_shmem.h + sched_msgs.h + sched_msgs.cpp + sched_send.cpp + handle_resuest.cpp + file_upload_handler.cpp + main.cpp + sched_assign.cpp + Makefile.am + lib/ + boinc_cmd.cpp (moved to client) + diagnostics.cpp + prefs.cpp + msg_log.h + cert_sig.cpp + Makefile.am + zip/ + Makefile.am + samples/ + example_app/ + Makefile + api/ + Makefile.am + clientgui/ + Makefile.am + tools/ + backend_lib.cpp + Makefile.am + doc/ + manpages/ + Makefile.am + +David 13 Jan 2009 + - client/manager fixes + + client/ + client_types.cpp + lib/ + gui_rpc_client_ops.cpp + gui_rpc_client.h + +David 14 Jan 2009 + - client: fix bug that caused estimated time to completion to increase + while processing suspended + Fixes #825 + + client/ + app_control.cpp + +David 14 Jan 2009 + - client: clamp long term debts tp +- 1 week + - client: fix CUDA debt calculation + - client: don't accumulate debt if project->dont_request_more_work + - client: improves messages + + client/ + rr_sim.cpp + +Rom 15 Jan 2009 + - WINSETUP: Fix the problem introduced where Enable Application + execution wasn't working. + + win_build/installerv2/ + BOINC.ism + BOINCx64.ism + +Rom 15 Jan 2009 + - MGR: Don't convert strings to ANSI juts to have to reconvert them + back to Unicode. Fix several help link issues. + Fixes #826 + + clientgui/ + AdvancedFrame.cpp + DlgAdvPreferences.cpp + sg_BoincSimpleGUI.cpp + sg_DlgMessages.cpp + sg_DlgPreferences.cpp + sg_ProjectsComponent.cpp + +David 15 Jan 2009 + - scheduler: improve message formatting; add flag + for locality scheduling messages + + lib/ + msg_log.cpp + sched/ + *.cpp + +David 15 Jan 2009 + - GUI RPC: add CUDA info to PROJECT struct + - manager: display CUDA info in project properties page + - manager: use struct assignment instead of copy() function + + client/ + boinc_cmd.cpp + clientgui/ + AsyncRPC.cpp + DlgItemProperties.cpp + lib/ + gui_rpc_client_ops.cpp + gui_rpc_client.h + +David 15 Jan 2009 + - scheduler: remove clause in app_plan() that withholds jobs from slow GPUs. + The SETI@home/CUDA app has been fixed so that it works on all GPUs. + + sched/ + sched_plan.cpp + +Eric 15 Jan 2009 + - build: Made static linkage of BOINC libraries the default for client, + manager, and server components + + configure.ac + tools/ + Makefile.am + clientgui/ + Makefile.am + client/ + Makefile.am + samples/ + example_app/ + Makefile + +Charlie Jan 15 2009 + - client: boinc_copy ownership fix of 1/6/09 didn't work because it used + system(cp ...) call, which invokes a shell, and POSIX specifies that + shells run from an application use the real UID and GID not the + effective UID and GID. Under Mac Sandbox security, we need to use + the effective UID and GID. Changed boinc_copy to copy file directly. + - MGR: On Mac, fix problems showing Manager window when it was minimized + to Dock, especially if window was closed using Dock menu. + - Mac: Fix XCode project for boinc_cmd.cpp moved to client/ from lib/. + + client/ + app_start.cpp + clientgui/ + BOINCBaseFrame.cpp + BOINCGUIApp.h + BOINCTaskBar.cpp + lib/ + filesys.cpp + mac_build/ + boinc.xcodeproj/ + project.pbxproj + +David 16 Jan 2009 + - client: remove limits on LTD. + + client/ + work_fetch.cpp + +David 19 Jan 2009 + - scheduler: remove the config flag , + and add . + The latter is used in calculating max jobs/day for a host; + namely, it's host.max_results_day * (NCPUS + NCUDA*cuda_multiplier). + Set it to 10 or so if you have CUDA apps. + - scheduler: don't overload effective_ncpus(); + instead, add two new functions, + max_results_day_multiplier() and max_wus_in_progress_multiplier() + - scheduler: don't reduce max_results_day if we get an aborted job + (it might have been aborted by the project; + not appopriate to punish host in this case) + + db/ + boinc_db.h + sched/ + main.cpp + sched_config.cpp,h + sched_result.cpp + server_types.h + +David 20 Jan 2009 + - client: fix messages + + client/ + rr_sim.cpp + work_fetch.cpp + +David 20 Jan 2009 + - scheduler: improve no-work messages + - web: don't use DB conn in mysql_real_escape_string() + (otherwise won't work if DB is down) + + html/inc/ + boinc_db.inc + db_conn.inc + sched/ + sched_plan.cpp.h + sched_send.cpp + server_types.h + +Charlie Jan 20 2009 + - Mac client: fix bug in build script so that curl-7.19.2 actually + does build with c-ares 1.6.0. Fixes #830. + + mac_build/ + buildcurl.sh + +David 21 Jan 2009 + - scheduler: accept CUDA version 1.0 + + sched/ + sched_plan.cpp + +David 21 Jan 2009 + - client: fetch work from non-CPU-intensive projects + + client/ + work_fetch.cpp,h + +David 21 Jan 2009 + - client: compile fix, remove spurious message + + client/ + work_fetch.cpp,h + +Rom 21 Jan 2009 + - MGR: Make sure the UI thread doesn't call a GUI RPC + that uses the SET_LOCALE class. + + clientgui/ + BOINCClientManager.cpp + +Charlie Jan 22 2009 + - MGR: fix compile error. + + clientgui/ + BOINCClientManager.cpp + +David 22 Jan 2009 + - client: if an app has avg_ncpus < 1, run it at above-idle priority + even if it doesn't use a coprocessor. + - scheduler: added an "nci" (non CPU intensive) plan class + to sched_plan.cpp. It declares the use of 1% of a CPU. + + The above two changes are intended to allow the QCN app to + run at above_idle priority, which it needs in order to do 500Hz polling. + + - API: the std::string version of boinc_resolve_filename() + acts the same as the char[] version. + + client/ + app.cpp + app_start.cpp + lib/ + app_ipc.cpp + gui_rpc_client.cpp + sched/ + sched_plan.cpp + +David 22 Jan 2009 + - web: when using adaptive replication, show a WU's instances + if it has a canonical result, not if it's been assimilated + (if the assimilator is not working, the latter causes + WUs to be hidden longer than needed) + + html/user/ + workunit.php + +David 22 Jan 2009 + - client: simplify message describing scheduler request; + to get work request details, use + + client/ + scheduler_op.cpp + +Eric 22 Jan 2009 + - build: reordered compiler flags checking. + Fixed problems with finding location of wx-config + when running with cached configuration. + Made sure to check ${prefix}/lib when looking for + libGL, libGLU, and libglut. + + m4/ + boinc_wxwidgets.m4 + ax_check_glut.m4 + ax_check_glu.m4 + ax_check_gl.m4 + boinc_set_compile_flags.m4 + +David 22 Jan 2009 + - client: when preempting a process, remove it from memory if: + 1) it uses a coprocessor + 2) it has checkpointed since the client started + 3) it's being preempted because of a user action + (suspend job, project, or all processing) + or user preference (time of day, computer in use) + - scheduler: if shared mem seg doesn't exist, + report it and don't crash + + client/ + app.h + app_start.cpp + app_control.cpp + cpu_sched.cpp + sched/ + main.cpp + +Charlie Jan 22 2009 + - client sandbox: add details in switcher_exec "execv failed" message. + - MGR: Work around bug in generic list control GetSelectedItemCount() + which caused incorrect update of buttons in Projects tab after + detching from a project; remove redundant UpdateSelection() call. + + client/ + sandbox.cpp + clientgui/ + BOINCBaseView.cpp + BOINCListCtrl.cpp,.h + +David 23 Jan 2009 + - client: clear debts when reset project + - client: respect work-fetch backoff for non-CPU-intensive projects + - client: for non-CPU-intensive project, fetch new job + if no currently running jobs + - client: skip non-CPU-intensive projects in debt calculations + - manager: show resource backoff times correctly + + client/ + app_control.cpp + client_state.cpp + client_types.cpp,h + work_fetch.cpp,h + clientgui/ + DlgItemProperties.cpp + +David 23 Jan 2009 + - scheduler: for plan class "nci", set flops to CPU speed; + this will give consistent completion time estimates for existing WUs. + + sched/ + sched_plan.cpp + +David 23 Jan 2009 + - scheduler: fix spurious error message when using nci + + sched/ + sched_plan.cpp,h + sched_send.cpp + +David 23 Jan 2009 + - web: fix apps.php so that it knows about plan class + + html/user/ + apps.php + +David 23 Jan 2009 + - API: possible compile fix for OS/2 + + api/ + boinc_api.cpp + +David 23 Jan 2009 + - scheduler: reduce frequency of calls to work_needed() + + sched/ + sched_array.cpp + sched_send.app + +David 23 Jan 2009 + - scheduler: make NCI app versions preferable to non-plan-class + + sched/ + sched_plan.cpp + +David 23 Jan 2009 + - scheduler: if client can't do plan class, don't complain about old client + + sched/ + sched_send.cpp + +Charlie Jan 23 2009 + - MGR: Remove override of GetSelectedItemCount() introduced yesterday; + instead, call DeleteItem() rather than SetItemCount() when number of + rows has been reduced, to allow virtual ListCtrl adjust its list of + selected rows (and thus keep its count in sync with reality.) + + clientgui/ + BOINCBaseView.cpp + BOINCListCtrl.cpp,.h + +David 23 Jan 2009 + - scheduler: initialize global + + sched/ + handle_request.cpp + +David 23 Jan 2009 + - scheduler: if anonymous platform, ignore coprocessor requests + (since anonymous platforms apps are treated as CPU) + + sched/ + sched_send.cpp + server_types.h + +Janus 25 Jan 2009 + - Fixed a major bug in the translation system which was causing a lot + of people to receive the webpages in semi-random languages. + - Added the ability for projects to decide whether they want the + Q&A and Message Boards merged. + + html/ + inc/ + translation.inc + user/ + forum_index.php + project_sample/ + project.inc + +David 25 Jan 2009 + - client: don't request work for a resource if it has no shortfall. + - client and server: get rid of coproc_cuda global. + + client/ + client_state.cpp,h + work_fetch.cpp,h + lib/ + coproc.cpp,h + sched/ + handle_request.cpp + sched_send.cpp + server_types.cpp,h + +Rom 26 Jan 2009 + - MGR: Don't use wxT() to describe parameters passed to GUI RPCs. + + clientgui/ + BOINCClientManager.cpp + +David 26 Jan 2009 + - client: if we're doing an RPC (for whatever reason) + to a non-CPU-intensive project without a job, ask for one. + + client/ + work_fetch.cpp + +Charlie Jan 26 2009 + - MGR: In CBOINCClientManager::StartupBOINCCore() allow time for Client + to start up, to avoid repeated attempts which put spurious messages + "Another instance Another instance of BOINC is running" in + stderrdae.txt. + + clientgui/ + BOINCClientManager.cpp + +David 27 Jan 2009 + - client: change the LTD policy so that + 1) net adjustment for eligible projects is zero; + 2) max LTD is zero + - scheduler: fix msgs so disk size is shown in GB + + client/ + work_fetch.cpp + sched/ + sched_send.cpp + +Eric K 27 Jan 2009 + - SEA: Fixed problems building SEA + - Manager: Fixed missing includes when building manager on unix. + + configure.ac + packages/ + generic/ + sea/ + Makefile.am + make-tar.sh + clientgui/ + BOINCClientManager.cpp + + +David 27 Jan 2009 + - scheduler: in get_app_version(), if we previously sent a CUDA app, + but we don't need to send any more CUDA jobs, + delete the BEST_APP_VERSION record and look for another app version. + This lets the scheduler send both CUDA and CPU app versions + for a given app in a single RPC. + + client/ + work_fetch.h + sched/ + sched_send.cpp + +David 27 Jan 2009 + - client: if we're making an RPC to a project because of user request, + clear the resource backoff times so that we potentially + can ask the project for work. + + client/ + cs_scheduler.cpp + work_fetch.cpp + +Eric K 27 Jan 2009 + - Manager: fixes to allow compilation on compilers that don't allow string + concatenation within the _() macro. + + clientgui/ + WelcomePage.cpp + ProxyInfoPage.cpp + +David 27 Jan 2009 + - lib: comment out perror()s in connection code. + + lib/ + gui_rpc_client.cpp + +David 27 Jan 2009 + - client: remove the "deadlines_missed" and "overworked" + clauses from RSC_WORK_FETCH::choose_project() + + client/ + work_fetch.cpp,h + +David 27 Jan 2009 + - scheduler: don't count host as reliable if avg_turnaround is zero + - client: restore notion of overworked; + if a project is overworked for a resource R, + don't fetch work for R unless there are idle instances + + client/ + work_fetch.cpp,h + sched/ + sched_send.cpp + +David 28 Jan 2009 + - GUI RPC: the "get all projects" RPC now also returns account managers + + lib/ + gui_rpc_client_ops.cpp + gui_rpc_client.h + +Charlie Jan 28 2009 + - GUI RPC: Fix compiler warning (missing return value). + + lib/ + gui_rpc_client_ops.cpp + +Rom Jan 29 2009 + - MGR: Provide a way for skin creators to suppress error messages for + missing resources. + + clientgui/ + SkinManager.cpp + +Rom Jan 29 2009 + - MGR: Save and Restore the last email address/user id used to attach + to a project or account manager + + clientgui/ + AccountInfoPage.cpp + +David 29 Jan 2009 + - web: anywhere we show info about a host, show its GPUs too + - web: add script to parse GPU completed-job log + and generate summary data; + also add page to display this data. + + html/ + inc/ + host.inc + ops/ + analyze_coproc_log.php + user/ + hosts_user.php + show_coproc.php + +David 29 Jan 2009 + - client: if user requests RPC, do it even if project is backed off + - manager: show backoff interval correctly + + client/ + cs_scheduler.cpp + work_fetch.cpp + clientgui/ + DlgItemProperties.cpp + +David 29 Jan 2009 + - scheduler: get effective RAM sizes and running fraction just once + + sched/ + sched_send.cpp + server_types.h + +David 29 Jan 2009 + - client: update LTD correctly + + client/ + work_fetch.cpp + +Rom 29 Jan 2009 + - MGR: Add a virtual list box to display available account managers. + + clientgui/ + AccountManagerInfoPage.cpp, .h + AccountManagerProcessingPage.cpp + AccountManagerPropertiesPage.cpp + ProjectInfoPage.cpp, .h + WizardAccountManager.cpp + lib/ + gui_rpc_client_ops.cpp + +Rom 29 Jan 2009 + - MGR: Filter project list so that it shows only projects supported + by the core client. + + clientgui/ + ProjectInfoPage.cpp, .h + +Charlie Jan 29 2009 + - MGR: call UpdateSelection() from OnListRender() instead of from + RestoreSelections(). Fixes #837. + + clientgui/ + BOINCBaseView.cpp + +Charlie Jan 30 2009 + - MGR: Suppress Skin Manager error messages by default; enable them + only if the Manager is launched from the command line with an + argument -c or --checkskins. + + clientgui/ + BOINCGUIApp.cpp, .h + SkinManager.cpp, .h + +David 30 Jan 2009 + - Work fetch / scheduler: + There are two mechanisms to prevent the scheduler from + sending jobs that won't finish by their deadline. + Simple mechanism: + The client sends the interval x for which CPUs are projected + to be saturated. + Given a job with estimated duration y, + the scheduler doesn't send it if x + y exceeds the delay bound. + If it does send it, x is incremented by y. + Complex mechanism: + Client sends workload description. + Scheduler does EDF simulation, sees if deadlines are missed. + The only project using this AFAIK is BOINC alpha test. + Neither of these mechanisms takes coprocessors into account, + and as a result jobs could be sent that are doomed to + miss their deadline. + This checkin adds coprocessor awareness to the Simple mechanism. + + Changes: + Client: + compute estimated delay (i.e. time until non-saturation) + for coprocessors as well as CPU. + Send them in scheduler request as part of coproc descriptor. + Scheduler: + Keep track of estimated delays separately for different resources + - client: fixed bug that computed CPU estimated delay incorrectly + - client: the work request (req_secs) for a resource is the min + of the project's share and the shortfall. + + client/ + cs_scheduler.cpp + rr_sim.cpp + work_fetch.cpp,h + html/inc/ + translation.inc + lib/ + coproc.cpp,h + sched/ + sched_send.cpp + server_types.cpp,h + +David 30 Jan 2009 + - client: computation of # idle CUDA instances was wrong + + client/ + rr_sim.cpp + +David 30 Jan 2009 + - scheduler: show message whether miss or meet deadline + + html/user/ + show_coproc.php + top_users.php + sched/ + sched_send.cpp + +David 30 Jan 2009 + - client: tweak work fetch messages + - client: buffer 2000 messages instead of 1000 + + client/ + client_msgs.cpp + work_fetch.cpp + lib/ + coproc.cpp + +David 30 Jan 2009 + - client: work fetch fixes + + client/ + work_fetch.cpp + scheduler_op.cpp + +David 31 Jan 2009 + - client: there was a problem with how the round simulator + worked in the presence of coprocessors. + The simulator maintained per-project queues of pending jobs. + When a job finished (in the simulation) it would get + one or more jobs from that project's pending queue. + + The problem: this could cause "holes" in the scheduling of GPUs, + and produce an erroneous nonzero shortfall for GPUs, + leading to infinite work fetch. + + The solution: maintain a separate (per-resource, not per--project) + queue of pending coprocessor jobs. + When a coprocessor job finishes, + start pending jobs from the queue for that resource. + + Another change: the simulator did strict reservation of coprocessors. + If there are 2 instances of CUDA, + and a 1-instance job is running in the simulation, + it wouldn't start an additional 2-instance job. + This also can cause erroneous nonzero shortfalls. + + So instead, schedule coprocessors like CPUs, i.e. saturate them. + This can cause distorted completion time estimates, + but it's better than infinite work fetch. + + client/ + client_types.cpp,h + rr_sim.cpp,h + work_fetch.cpp,h + +David 1 Feb 2009 + - client: code cleanup + + client/ + rr_sim.cpp,h + work_fetch.cpp,h + +David 2 Feb 2009 + - client: code cleanup + + client/ + rr_sim.cpp,h + work_fetch.cpp,h + +David 2 Feb 2009 + - Manager: change terms for STD, LTD + - web: change script that locks old threads to exempt team forums + + clientgui/ + DlgItemProperties.cpp + html/ops/ + autolock.php + +David 3 Feb 2009 + - client: fix bug that caused infinite sched RPCs if project down + + client/ + cs_scheduler.cpp + scheduler_op.cpp + +Rom 3 Feb 2009 + - SCROPENGL: Checkin the files needed for the new OpenGL based + BOINC screensaver. + + clientscr/ + boinc_ss_opengl.h + boinc_ss_opengl.rc + screensaver_opengl.cpp + screensaver_opengl.h + win_build/ + boinc.sln + boinc_ss_opengl.vcproj + +David 3 Feb 2009 + - renamed boinc_ss_opengl to ss_app + +David 3 Feb 2009 + - GUI RPC: made password file read into function + - lib: minimized FCGI library + + client/ + boinc_cmd.cpp + file_names.h + lib/ + gui_rpc_client.cpp,h + common_defs.h + Makefile.am + +Charlie Feb 4 2009 + - SS: Begin work on upgrading screensaver coordinator for new functionality: + - add filenames for ss config file and default OpenLG ss executable + - add sandbox security support for these 2 files. + + client/ + check_security.cpp + file_names.h + clientgui/ + mac/ + SetupSecurity.cpp + mac_build/ + Mac_SA_Secure.sh + +Rom 5 Feb 2008 + - MGR: Display all projects in the project list but disable the text control + is the project doesn't list a supported platform. If the user clicks + on it display a message box stating that once attached the user may not + get any work. + + clientgui/ + AccountManagerInfoPage.cpp + ProjectInfoPage.cpp, .h + ProjectListCtrl.cpp, .h + +Charlie Feb 5 2009 + - SS: Implement basic new functionality in screensaver coordinator. + - Note: this is tested on Mac only at this point. + + client/ + check_security.cpp + file_names.h + clientscr/ + screensaver.cpp, .h + Mac_Saver_Module.h + screensaver_win.h + lib/ + common_defs.h diff --git a/clientscr/screensaver.cpp b/clientscr/screensaver.cpp index 43ec2b16c8..c4e0378d88 100644 --- a/clientscr/screensaver.cpp +++ b/clientscr/screensaver.cpp @@ -40,6 +40,7 @@ #ifdef _WIN32 #include "gui_rpc_client.h" #include "screensaver_win.h" +#include "str_util.h" #endif #ifdef __APPLE__ @@ -379,7 +380,7 @@ void *CScreensaver::DataManagementProc() { char * default_ss_dir_path = "/Library/Application Support/BOINC Data"; #else // TODO: Obtain correct path to Windows default OpenGL screensaver executable - char * default_ss_dir_path = "C:\Program Files\BOINC"; + char * default_ss_dir_path = "C:\\Program Files\\BOINC"; #endif strlcpy(full_path, default_ss_dir_path, sizeof(full_path)); strlcat(full_path, "/", sizeof(full_path));