6.10.0

Aus BC-Wiki
Zur Navigation springen Zur Suche springen
  • client: add a bunch of debugging messages (<task_debug>) for showing how GPU instances are being reserved
  • scheduler: add "sse3" plan class example
  • client: define "too many uploads" (for work fetch) as 2 * max(ncpus, ngpus); show this in the state displayed by <work_fetch_debug>
  • manager: show project-wide backoff in transfers tab
  • client: Remove some more Win9x code.
  • client: Add some messages while handling Windows power events.
  • client: Treat power events similiar to the snooze events, assign a timeout so that when we resume from suspend/hibernate we restore the previous activity states.
  • WINSETUP: Prevent a pathing problem with the client_auth.xml creation by prepending a \ in front of the filename.
  • manager: fix typos in attach project wizard
  • client: in get_project_config_poll() GUI RPC, return ERR_IN_PROGRESS is the reference site check is in progress. This hopefully fixes a bug where:
       - the user is connected via a proxy
       - the manager is run for the first time, and an attach is tried
       - the get_project_config.php fetch fails because no proxy config
       - the manager gets the CC_STATUS before the ref site check has finished, so it thinks there's a network connection, and it doesn't ask the user for proxy info
  • lib: more code cleanup
  • lib: revert previous commit, things in lib end up being linked into project applications, projects may want to continue supporting Win9x.
  • WINSCR: Remove Win9x compatibility code from the screen saver.
  • MGR: Use the BOINC Service Control utility (boincsvcctrl.exe) to start/stop the BOINC Service on Windows now. Starting with Windows Vista a normal admin account is started with a restricted token, meaning that a process has to be elevated in order to start and stop services. The recommended way to handle this whole process is to create a stub application that has an application manifest embedded within it that tells Windows that full admin rights are required and then launch that program (boincsvcctrl.exe) from the application (boincmgr.exe) which normally runs with the restricted token.
  • MGR: Be sure to launch the default screensaver in test mode when the manager is starting up, otherwise the default screensaver might lock up waiting on user input to approve firewall updates to the rule set.
  • MGR: Refine yesterdays checkin with support for the BOINC Service Control utility, use ShellExecuteEx instead of CreateProcess. CreateProcess doesn't have the ability to elevate processes.
  • MGR: Refine todays checkin with support for the BOINC Service Control utility, don't use the runas verb on systems older than Vista.
  • client: fix crashing bug introduced in [18605]
  • client: Remove Win9x compatibility code from memory detection routine.
  • MGR: Special case ERR_GETHOSTBYNAME errors in the wizard, majority case for DNS failures suggest that the user might need a proxy to be defined instead or this project is unavailable or this account manager is unavailable.
  • client: There was already a way to check if the reference site check was in progress, I missed it through my first pass through the manager code while trying to debug the proxy problem get_cc_config returns NETWORK_STATUS_LOOKUP_PENDING which then causes the manager to call get_cc_status again.
  • MGR: Don't make ERR_FILE_NOT_FOUND part of the requirements to detect the need for a proxy server.
  • MGR: Fix an endless loop during wizard creation, any automatic true conditions in the GetNext() GetPrev() logic causes the wizard to traverse the page and then look for the next page.
  • client (Linux): when launching apps, put a relative path to the executable (../../projects/x/y) into argv[0], not just the executable filename. Apparently the new NVIDIA drivers have a bug that cause CUDA apps to crash unless this is done.
  • Scheduler: in no-host-ID case, don't mark results as "detached" if request contains any in-progress results
  • client: if an HTTP op fails within 30 sec of client startup, don't skip the reference site check. Instead, defer the reference site check until 30 secs after startup. Also, if during this interval (when the check has been requested but not started) return net status as LOOKUP_PENDING
  • scheduler: improved messages for debug_send
  • MGR: Re-enable the ability for the manager to detect a temporary name failure vs needing a proxy server or something like that.
  • scheduler: Gianni requested a feature where jobs have a "min # of GPU processors" attribute (stored in batch) and are sent only to hosts whose GPUs have at least this #. The logical place for this is in the scoring function, JOB::get_score(). I added a clause (#ifdef'd out) that does this. It rejects the WU if #procs is too small, otherwise it adds min/actual to the score. This favors sending jobs that need lots of procs to GPUs that have them.
  • scheduler: on second thought, it would be better to add the above feature without requiring use of score-based scheduling. So add a new customizable function, wu_is_infeasible_custom(), where projects can put job-specific checks. Also, move customizable functions (of which there are now 4) to a new file, sched_customize.cpp.
  • client: to enumerate CUDA devices, use the functions in libcuda.so (which ships with driver) rather than libcudart.so (this eliminates the need to bundle libcudart.so with the client) The functions are documented here: http://developer.download.nvidia.com/compute/cuda/2_3/toolkit/docs/online/index.html
  • client: Initial swipe at automatic proxy server configuration detection on Windows. Fixes #35
  • scheduler: compile fixes
  • file upload handler: don't treat zero-length file as an error! (This bug has been there since 28 Oct 2004)
  • GUI RPC and manager: include project backoff in FILE_TRANSFER, so that manager gets up-to-date value
  • client: refactor the CC startup process, move majority of the windows code into sysmon_win.cpp, .h
  • scheduler: add plan class for CUDA 2.3
  • client: More efficient implementation of active_only flag in get_results RPC.
  • MGR: Implement "Show active tasks / Show all tasks" button.
  • client: Second pass through the automatic proxy detection code. During the first pass we learned that the whole process of proxy detection on Win XP machines could take a few seconds even with no proxies to be detected, now the proxy detection code is executed in the same thread that is monitoring for power change events.
  • client fix crash bug introduced by changing PROXY_INFO strings from char[] to std::string.
  • client: fix compiler warnings "call will abort at run time."
  • Sandbox: add a couple of casts for compiler warnings.
  • MGR: Test two changes which might avoid a problem when the client is heavily loaded (e.g, very many tasks), where the RPC Wait dialog may appear continuously:
       (1) Delay periodic RPCs for 1 second after the dialog closes.
       (2) In functions to retrieve cached RPC data, don't do a demand 
           RPC just because the time since th last such RPC exceeds the 
           normal periodic RPC rates.  We still force the RPC if the 
           this RPC has never been called since the Manager was launched 
           or if (for some RPCs) called with the bForce argument TRUE.
           This change #2 can be removed by setting USE_CACHE_TIMEOUTS
           to 0.
  • GUI RPC: fix memory leak in authorize()
  • client (Unix): fix bug that caused GPU reservation to not work. The problem: we were doing the reservation after the fork(), so that the data structure it changed was the app's, not the client's.
  • start: don't print "XML parse error" message if run_state file doesn't exist (e.g. when start new project)
  • scheduler: fixes for cuda23 plan class
  • client: try to fix situations where the scheduler runs GPU jobs in a seemingly random order, or preempts GPU jobs needlessly. The change has two parts:
       1) sort the "results" vector by received_time,
           so that the RR simulation processes GPU jobs FIFO
           (in case of tie, use something deterministic: result name)
       2) in the CPU scheduler (earliest_deadline_result())
           instead of choosing the earliest-deadline GPU job that
           misses its deadline,
           pick the earliest_deadline GPU from a project that
           has a deadline miss for that GPU type
           (this is what's done in the CPU case)
  • client: fix bug where if you have an exclusive app, then remove it from cc_config.xml and do "update config", it doesn't go away. Need to clear the list before parsing.
  • client: don't try to maintain GPU work for all projects, since use FIFO rather than RR schedling for GPUs
  • client: in the final stage of CPU scheduling, give preference to multi-threaded jobs. Avoid running N-1 1-thread jobs and 1 N-thread job on N CPUs
  • client: change file transfer giveup time from 14 to 90 days

* client: ATI GPU detection code (from Crunch3r)

  • client: clean up ATI code and make it work (or at least compile)
  • client: ATI tweaks
  • client: add ATI support to job scheduling and work fetch
  • scheduler: add support for ATI GPUs
  • client: fix calculation of ATI flops
  • client/manager: add ATI stuff to GUI RPCs and manager display
  • scheduler: if client request uses a weak authenticator, don't modify user preferences or CPID.
  • client: fix bug that shows ATI version incorrectly
  • manager: allow 24:00 to be used in advanced prefs dialog (from Ian Hay; fixes #357)