Berkeley Open Infrastructure for Network Computing is een platform voor distributed computing en is voor Linux, Mac OS X, Unix en Windows beschikbaar. Van dit platform maakt een aantal gridprojecten gebruik, zoals SETI@home, Rosetta@home, Leiden Classical en Hydrogen@Home. Voor meer informatie over het hoe en wat van Boinc verwijzen we jullie naar deze pagina. De ontwikkelaars hebben enkele dagen geleden een nieuwe versie voor de verschillende platformen uitgebracht met 6.6.28 voor Windows en 6.6.29 voor Mac OS X en Linux als het versienummer. De bijbehorende lijst met veranderingen ziet er als volgt uit:
- client: write message (and show new config info) when config file reread
- client: improve cpu_sched_debug messages
- client, Mac: don't do res_init(). It causes a crash.
- client (Unix): if client crashes while benchmark processes are going, make sure they detect this and exit.
- Mac: Remove -lresolv from XCode linker flags for client, manager, boinccmd and screensaver which linked with libresolv.dylib for res_init() call.
- Mac client: fix parent died test in benchmark_time_to_stop().
- client: enforce_schedule() wasn't starting GPU jobs
- client: view 2 GPUs as equivalent if their memory differs by <30%. (maybe their memory differed slightly from the most capable one)
- client: simplify enforce_schedule(), and maybe fix bugs. New approach: take the "ordered_schedule_results" list, add running jobs that haven't finished their time slice, and order the result appropriately. Then run jobs in order until CPUs are filled. Simpler and clearer than the old way.
- MGR: Turn GetViewName? into the unlocalized version of the view name, so the configuration group name is consistant across all languages and does not cause conversion issues on different platforms where the configuration information is treated differently when compiled Unicode vs. ANSI.
- client: tweak to 4/21 checkin. After finding the "most capable" GPU, ignore FLOPS in deciding what GPUs are equivalent to it. This opens up the possibility that the client will get jobs that it won't be able to finish in time. But it still avoids getting jobs that will crash.
- client: show message when user does a project or task op (suspend, resume, update, etc.)
- client: add config option. If set, use GPUs even if they're not equivalent to the most capable one.
- Mac: Add -lresolv to XCode linker flags for client, manager boinccmd and screensaver to link with libresolv.dylib for res_init() call (again). Add #include of to non-Windows network.cpp. (Changes checked in to boinc_core_release_6_6_23.)
- Mac MGR: Add keyboard shortcuts command-shift-S to switch to Simple View and command-shift-A to switch back to Advanced View.
- client: fixed a crash caused by using %f to write working-set size into a fixed-size buffer. Use %e instead.
- client: if detach a project, adjust debts and trigger CPU sched and work fetch
- client: improve CPU sched debug messages (say what kind of job and why we're scheduling it)
- client: log messages describing GPUs: one line per GPU; fixes #879
- client: new approach to handling multiple GPUs.
- old: find fastest GPU, and pretend that others are the same. Problem: other GPUs might be less capable, and not able to handle jobs sent by server.
- new: find the most "capable" GPU, use others that are equivalent, don't use those that are not. "Capable" is defined by
in that priority order.
- compute capability (i.e., hardware version)
- driver version
- memory size
- client: When a preemptable task wasn't preempted (e.g. because it hadn't finished its time slice) we were failing to mark it as scheduled.
- client: for each app version, keep track of the largest WSS of tasks using it. In checking whether tasks fit in RAM, use this as an estimate for tasks that haven't started yet. This avoids a situation where the client starts a lot of tasks in sequence, only to find that each one doesn't fit in RAM.
- client: for coproc jobs, don't start a job while a quit is pending. Otherwise the new job may fail on memory allocation.
- client: instead of scheduling coproc jobs EDF:
This is intended to reduce the number of preemptions of coproc jobs, and hence (since they are always preempted by quit) to reduce the wasted time due to checkpoint gaps.
- first schedule jobs projected to miss deadline in EDF order
- then schedule remaining jobs in FIFO order
- client: the CPU scheduling policy made use of the number of deadline misses in various places. This should include only the deadline misses of CPU jobs. So move "deadlines_missed" from RR_SIM_STATUS and PROJECT to RSC_PROJECT_WORK_FETCH so that we have separate counts for CPU and coproc jobs, and use the count for CPU jobs.
- GUI RPC: removed the rr_sim_deadlines_missed field from project descriptor. This is no longer meaningful, and it didn't seem to be used anywhere.
- GUI RPC and manager: send slot and show it in task properties rather than slot path (slot_path is defined only for apps with graphics app).
- client: put back the call to res_init() on lookup failure. Apparently it worked after all.
- Mac client: fill in command field of PROCINFO struct so log flag works properly on Mac.
- WINSETUP 'Everyone' is not just a group, it is a well known group.
- WINSETUP: Be sure to define INSTALLDIR if it isn't already defined by the system or the transform. DATADIR was already being handled.
- WINSETUP: Save setup state at the end of the execution phase as well as the end of the UI phase.
- Mac: Add -lresolv to XCode linker flags for screensaver.
- MGR: on Mac, implement standard Preferences item under BOINC menu with standard keyboard shortcut; same as Advanced/Preferences.
- WINSCR: It appears newer notebook models with multiple video chipsets exhibit an interesting situation. It appears as though in certain conditions a single monitor machine actually reports itself as having three monitors. Normally the monitor that contains the primary window (coord 0,0) is on monitor 0, but on these machines coord 0,0 is actually on monitor 2. This led to the screensaver not properly exiting when keyboard and/or mouse activity was detected. Now when we detect that keyboard and/or mouse activity has happened we send the WM_INTERRUPTSAVER event to all windows on all monitors.
- WINSETUP: When uninstalling, don't migrate the client data back to the 5.x location.
- WINSETUP: On some setups, how we were including the 'Everyone' well known security ID in the boinc_users group didn't work properly. From now on include the 'Everyone' security ID in the various ACLs instead. This will probley clean up a wide range of various issues with multi-user installs.
- GUI RPC: client side: if parse a RESULT and CPU is nonzero but elapsed time is zero, we must be talking to an old client; set elapsed = CPU
- client: show project name in "backoff ended" msg
- web and client: change the default for "run_gpu_if_user_active" from true to false. Currently running CUDA apps on NVIDIA GPUs causes a significant slowdown in GUI response.
- client: we were setting config defaults after parsing cmdline. This meant that the cmdline args that set config params weren't working
- MGR: Fix compatibility problem with sizing of all-projects list in Attach Project Wizard when using wxWidgets 2.8.8 or later.