6.13.2

Aus BC-Wiki
Version vom 7. September 2011, 19:42 Uhr von Rebirther (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Zur Übersicht

  • client write project sched priority in GUI RPC replies, but not to the state file
  • client: changes to the client file model to support distributed storage, as described here: http://boinc.berkeley.edu/trac/wiki/ClientDataModel Compatibility:
    • clients that upgrade to this version should see nothing unusual.
    • Clients that downgrade from this version to a previous version should see all projects reset (i.e. tasks disappear and then get re-downloaded).
    • manager: always show whether a file transfer is upload or download
    • client: don't scale work requests by resource share
  • client: debug distributed storage functions
  • Mac: Begin changes for XCode 4.1 and GCC 4.2.
  • Mac: Finish changes for XCode 4.1 and GCC 4.2.
  • lib: Initialize config_coprocs struct in CONFIG::defaults().
  • SCR: Fix delay dismissing screensaver under Mac OS10.7.
  • Mac SCR: Fix vertical range of moving logo.
  • remote job submission: bug fix and tweaks
  • client: cc_config.xml: if <devnum> is omitted from a <exclude_gpu>, it means exclude all instances of that GPU type
  • client: if all instances of a GPU type are excluded for a project, don't ask the project for jobs of that type
  • client: fix bug in <exclude_gpu> config option
  • client: extend <exclude_gpu> option so that if <device_num> is omitted, all GPUs of the given type are excluded.
  • Mac installer: Work around bug in Mac OS 10.7 dscl merge command.
  • client: fix bug in get_descendants(), which prevented the client from cleaning up subprocesses of misbehaving multiprocess apps.
  • remote job submission system:
    • assign physical names to input files (based on their MD5)rather than having the user provide physical names
    • VM apps: eliminate vbox64 plan class. Only vbox.
  • client: add optional <file_prefix> to APP_VERSION>. If present, "file_prefix/" is prepended to the logical names of input and output files of jobs using that app version. I.e. for Vbox wrapper based app versions, file_prefix is "share", so that I/O files are put in a "share" subdirectory of the slot dir.
  • client: if an app version has nonempty file_prefix, copy all its input and output files
  • Mac: Fix warning about potential memory leak.
  • vbox wrapper: fix parsing of job file
  • vbox wrapper: fix code structure
    • merge vm and vbox
    • no global vars
  • vbox wrapper: hardwire logical name of image file to "vm_image.vdi".
  • vbox wrapper: on startup, rename image file to "vm_image_SLOT.vdi", where SLOT is the slot number. Vbox requires unique names for VM image files.
  • vbox wrapper: initialize xml parser with the correct starting tag.
  • client: projects with zero resource share are always lower priority, for both job sched and work fetch, than projects with positive resource share.
  • client: make round-robin simulator match what the job scheduler now does: give lowest priority to projects with zero resource share.
  • Changes for Charity Engine Desktop.
  • Mac Client: Call NSVersionOfRunTimeLibrary("cuda") to set cc.display_driver_version (from Oliver Bock.)
  • client: rename MODE to RUN_MODE, and rename vars accordingly
  • client: pass XML_PARSER& rather than MIOFILE& to parse functions. Preparatory to using new-style XML parsing everywhere.
  • fix compile warnings; msg tweak
  • client: use new XML parser pretty much everywhere
  • Mac installer: Bug fixes for OS 10.7 Lion: LoginItemAPI.c did not set hidden properlty for login items, so use AppleScript instead, to prevent Lion from opening BOINC windows at system startup.
  • Fix a bug I introduced on 8 August which prevented launching WaitPermissions.app.
  • Mac uninstaller: Remove Charity Engine BOINC app if present.
  • client: more XML parsing stuff
  • client: XML tweak
  • Mac installer: Bug fixes for OS 10.7 Lion.
  • WINSCR: Based on feedback from WCG about the screensaver lock-up problem attempt to provoke Windows into redrawing the primary display. It turns out that the screensaver image is a ghost image, so create a blank top-most window and close it after the graphics application has been terminated.
  • Vbox wrapper: add --trickle x option; sends a trickle-up message reporting incremental runtime exery x seconds of runtime.
  • client: more XML parsing cleanup
  • credit trickle handler: do sanity checks on CPU speed
  • credit trickle handler: write log messages if sanity checks fail
  • client: Correlate OpenCL results with CAL or CUDA results based on index of devices reported by each. This assumes that CUDA and OpenCL and report NVIDIA devices in the same order, and that CAL and OpenCL report ATI/AMD devices in the same order.
  • client emulator fixes
  • client: If OpenCL is supported, add OpenCL information to COPROC_ATI::write_xml() and COPROC_NVIDIA::write_xml(), and parse OpenCL information in COPROC_ATI::parse() and COPROC_NVIDIA::parse().
  • client: Add OpenCL platform version number to COPROC struct.
  • fix linux build errors in coproc stuff. I don't think unsigned long long is relevant here.
  • lib: fix compile errors on Mac, Ubuntu and Windows.
  • client: fix compile warnings on Mac and Ubuntu.
  • lib, client: revert recent changes to restore unsigned long long so we can determine cause of and try to fix Linux build errors.
  • lib: On Windows, call _strtoui64() instead of strtoull.
  • client: pass --gpu_type X (X=nvidia or ati) as well as --device. This lets device-neutral OpenCL apps figure out which GPU to use.
  • client: fix bug where NVIDIA display driver version wasn't being set correctly for some laptop GPUs
  • client: improve estimation of NVIDIA GPU peak FLOPS
  • lib: use standard implementation of strtoull when available.
  • VboxWrapper: Add functions for enable/disable network and throttling the CPU and network activity.
  • VirtualBox wrapper:
    • change names of CPU and network-limiting functions to express their units (always do this).
    • wrapper monitors status.suspend_network and suspends/resumes network accordingly
    • wrapper sets CPU and network bandwidth limits on startup (Rom: should this be done before run() rather than after?) Note: App versions using this wrapper should always have <dont_throttle/> in their version.xml, to tell the client that the app throttles itself.
  • fix build error in Linux screensaver (at least on FC14)
  • manager: Communitcations -> Communications. please, no spelling errors in function/variable names
  • client: parse deprecated tags in <file_info>
  • client: fix bug that caused project attach to fail
  • clientgui: Rom, we should do error-checking of most GUI RPCs; look for REPORT ERROR in ProjectProcessingPage.cpp
  • Vbox wrapper: deal with checkpointing. Current: wrapper reports frequent checkpointing to client, but actually checkpoints only when the VM is stopped Problem: large amounts of work would be wasted if BOINC stops in an ungraceful way (e.g., power failure) Solution: Don't report frequent checkpointing. Every CPU scheduling period (typically once/hour) stop the VM (creating a checkpoint) and call boinc_temporary_exit(0). If the client wants to keep running this job, it will start us immediately.
  • Mac: Copy BOINC libraries built with XCode 4.1 to locations where built by earlier versions of XCode so dependent builds can always find them.
  • Vbox wrapper: create XCode project.
  • client: fix a couple of valgrind warnings
  • client: send all running jobs a "reread app info" message when global prefs change (in the case of vboxwrapper, it might have to change network or CPU throttling)
  • vbox wrapper: check for boinc_status.reread_init_data_file, and if set reread the file, set throttles, and clear flag
  • lib: Add OPENCL_REFERENCE boinc_get_opencl_ids(int argc, char** argv) to be called by OpenCL project applications to get the platform ID and device ID of the GPU assigned to the task by the scheduler.
  • API: move boinc_get_opencl_ids() from lib/ to api/. lib/ is for code that's used by >1 part of BOINC
  • client: fix bugs related to white space around code signing keys
  • win compile fixes
  • API: boinc_get_opencl_ids() doesn't need to link the OpenCL library at runtime. It's used only in OpenCL applications, which already include the library.
  • VboxWrapper: Specify a configuration directory under the slot directory to try and avoid permission errors on multiple platforms when BOINC is installed as a daemon.
  • api: Fix compile errors and warnings, add documentation in comments
  • lib: remove unnecessary #include, add needed function declarations
  • api: More fixes to boinc_get_opencl_ids()
  • lib: if OS_Darwin use procinfo_mac.cpp isntead of procinfo_unix.cpp.
  • lib, api: update XCode project to build same source files in each library as corresponding make files.
  • wrapper compile fixes
  • VboxWrapper: Add a way to extract the VM process id from the VM's log file.
  • client (and API and manager): change the data structure used for system process info Old: vector of PROCINFO. Descendants of a process were found by recursively iterating through the vector. Operations are O(n) New: map of (id, PROCINFO), and each PROCINFO has a vector of its children. Operations are O(log(n)) Also combined Mac/Win/Linux variants of code that was essentially the same.
  • more code shuffling:
    • proc_control: controlling processes
    • procinfo: enumerating and querying processes
    • run_app_windows: launching apps as other users on Win
  • client/API/vboxwrapper: add a mechanism so that apps can report sub-processes that are not descendants (e.g., virtual machines) These processes are then counted as part of the app, not as "non-BOINC CPU time". This fixes a bug where processing was incorrectly suspended because CPU usage by VM apps exceeded the "CPU usage limit" pref. Implementation:
    • the PIDs of the processes in question are passed from app to client via shared-memory, in the app_status channel. A new variant of boinc_report_app_status() supports this.
    • the VBox wrapper queries the PID of the VM, and reports it in this way.
    • procinfo_app() includes a new argument: a list of PIDs that are part of the app, although not ancestrally related to the main process.
    • in the client, ACTIVE_TASK now includes a vector "other_pids". If this is nonempty, it's passed to procinfo_app().
  • lib: Fix compile errors; add app_control.cpp to XCode project.
  • lib: minor code shuffle
  • client: fix bugs with white space around code sign keys and file signatures
  • client: when describing app versions in scheduler requests, we still must use CUDA instead of NVIDIA; that's what's in the server code.