6.13.7

Aus BC-Wiki
Zur Navigation springen Zur Suche springen

Zur Übersicht

  • fix typo in manage_privileges
  • client: fix spurious error message about trickle-up URLs
  • client: don't call CLIENT_STATE::free_mem() on shutdown. This is for debugging only, and it can cause crashes.
  • Mac: more fixes for problems with OS 10.4 compatibility. (checked into 6.13.5 and 6.13.6 tags)
  • client simulator: add --existing_jobs_only option. This simulates just the jobs in the state file, rather than simulating an infinite stream of jobs modeled after the ones in the state file.
  • Mac: update wxMac build script for building with XCode 4.1 under OS 10.7 while maintaining OS 10.4 compatibility. (checked into 6.13.6 tag)
  • client simulator: fixes
  • client: message tweaks
  • client: Fix compile break on Mac.
  • lib: only build the static version of libboinc.
  • fix comment
  • Updates Linux notifications to use current libnotify.
  • Fix build problems on Mac OS X using autotools
  • Consistently use #if HAVE_X for platform checks, rather than #ifdef HAVE_X or #if defined(HAVE_X)
  • In Unix build, make lots of compiler checks standard
  • Fix some compile warnings From Matt Arsenault. Note: there are now lots of compile warnings in clientgui/ on Unix, mostly in WxWidgets code
  • client: Fix compiler warnings on Mac.
  • client: Fix compile break on Mac.
  • manager: fix build break on Linux Undoes part of yesterday's checkin.
  • more changes from #ifdef HAVE_X to #if HAVE_X
  • WINSETUP: Add more logging to the create group and add user to group functions in an attempt to figure out what is going on with Windows 8.
  • client: fix a bug reported by Jacob Klein, where work fetch didn't work right in the presence of multiple GPUs and <exclude_gpu> config options. For example: suppose:
    • you have 2 GPUs and 2 projects
    • Project A is excluded from GPU 1
    • you have lots of jobs for project A Then the client won't try to fetch jobs from project B. The problem had 2 parts:
    • a) round-robin simulation wasn't taking GPU exclusions into account. In the above example, it would think that both GPUs had jobs. I fixed this by computing the # of GPUs from each project is excluded, and using this in the RR simulation.
    • b) Once this was done, I needed to make the client request GPU jobs from project B rather than project A. I did this with following policy: If a project has excluded GPUs of a given type, and has a runnable job of that type, don't ask it for more work of that type. Notes:
    • the policy in b) is crude, and it means that work-buffer preferences are ignored in some cases.
    • neither a) nor b) takes into account app-level exclusions. I could fix both of these with a lot of work, but I'd rather move to a model in which dissimilar GPUs are modeled as different resources, which would remove the need for the <exclude_gpu> mechanism in the first place. Other note: I figured out this problem using the client simulator, based on the client state file that Jacob sent me.
  • client: specify the project in "Some tasks need more memory than allowed by your preferences" messages
  • client: fix bug that could cause GPU idleness in the presence of GPU exclusions. The problem was in the job-selection phase, which picks enough jobs to use all devices. It was ignoring GPU exclusions, so for example on a 2 GPU system it could pick 2 jobs from a project for which 1 GPU is excluded, and as a result 1 GPU would be idle. Solution: during job selection, keep track of GPU usage on a per-instance basis. Select a job only if it can run on a non-excluded GPU.
  • client: in computing ncprocs_excluded (which is used in work fetch policy) don't count exclusions of non-existent devices
  • client: compute project scheduling priority more efficiently
  • client: if an app version can't be used because the GPUs it needs are all excluded, mark it and all its results as "coproc missing" so that they won't be looked at in scheduling logic.
  • client: Fix compiler warnings.
  • lib: move XML parse test program to its own file. Note: XML_PARSER::parse_str() doesn't currently work right for something like <foo><a>xx</a></foo>. It should return "<a>xx</a>". TODO.
  • client: don't generate notice if lookup of host in remote_hosts.cfg fails.
  • client: don't show "(device N)" if there's only 1 device
  • client: win compile fixes
  • WINSCR: Before shutting down the screensaver, quickly reinitialize the OpenGL device on the primary display. Some of the issues being reported with the screensaver is a left over ghost image of the OpenGL display before the graphics application was terminated because keyboard/mouse activity was detected.
  • client: in the function that sorts jobs by arrival time, don't use name as a tiebreaker. The will typically group jobs of the same application, and (it is believed that) things run faster when applications are mixed.
  • client: fix a memory leak; would lose ~120 bytes each time a job is started
  • Lib: Re-enable boinc lib mem snapshots for BOINC based applications (boinc, boincmgr, boinc.scr) on Windows.
  • client: fix memory leak when reading stderr of completed job. This caused 128KB + size of stderr loss for each job.
  • client: print error message if reading stderr fails (e.g. because of malloc failure)
  • client: free vectors in NOTICES, RSS_FEEDS, and DAILY_XFER_HISTORY in free_mem() (for mem leak checking)
  • client: problem: suppose a project has 2 data servers, and one of them is down. If several downloads from the broken one fail, we go into "project-level backoff" and don't start downloads from either server. (Same applies to uploads). Solution: make project-level backoff apply only to transfers that have already failed at least once
  • GUI RPC: add get_daily_xfer_history() RPC for getting the daily records of #bytes uploaded and downloaded
  • client: fix bug in writing daily xfer history file
  • client: write descriptions of OpenCL devices to stdout (and display in manager's Event log).
  • client: work around a bug where OpenCL reports global RAM of ATI GPUs incorrectly (1/2 of actual value.)
  • client/server: change field names in OPENCL_DEVICE_PROP to match those in the clGetDeviceInfo() calls. Principles:
    • if there's already a name for something, use it.
    • follow case conventions
  • client and scheduler: estimate peak FLOPS for GPUs that are detected by OpenCL but not by native APIs (CUDA/CAL). This is limited by the fact that OpenCL doesn't give us the necessary hardware info (ATI; wavefrontSize; NVIDIA: compute capability). We use the minimum values for these, so in most cases we'll be underestimating the peak FLOPS.
  • client (Mac): there was no error check of the creation of a memory-mapped file used for communication with an app. Add a check, and don't start the job if it fails.
  • client: don't do scheduler-requested RPCs if
    • project is set to No New Work, and
    • project has no jobs on the client
  • client/scheduler: the code for estimating peak FLOPS of ATI GPUs (from Crunch3r) has a multiplier of 2.5 for cores/processor. This is possibly because give a double-precision estimate. But actually we want single-precision. Change it to 5. See http://golubev.com/about_cpu_and_gpu_2_en.htm
  • client: improve code which writes OpenCL descriptions.
  • client: Compare openCL-only devices by estimated peak flops.
  • client: compare OpenCL-only devices the same as other devices
  • client: Fill in peak flops for each OpenCL GPU before compare; else there is nothing to ompare with.
  • API: don't crash if send trickle msg running standalone. From Christian Ries.
  • client: fix bugs in acct manager attach/detach
  • client: Fix crashing bug in OpenCL detection on Windows.
  • lib: Fix crashing bug for debug builds of the BOINC client software
  • Mac installer: follow recommendations of Apple Developer Technical Support: create users and groups boinc_master and boinc_project at first available UserIDs and GroupIDs starting at 501 instead of 25 to avoid conflicts with UserIDs and groupIDs which may be added in the future; use Directory Services to find the user names of all human users instead of stepping through the entries in the /Users directory.
  • Mac installer: revert to using LoginItemAPI.c under OS 10.7.1, because it once again sets hidden property for login items, but the AppleScript seems not to work under OS 10.7.1.