Joined: 19 Oct 08
I gave the virtualbox CMS WUs a try and want to leave some feedback.
I think i understand the reasons behind using VMs with a controlled environment but then from the user (or participant) perspective they come with some drawbacks.
1. At least in my system i can't influence the priority or core affinity of virtualbox machines. So they run with normal priority on every core the scheduler sends them.
Usually i restrict CPU WUs to cores 0-2 and GPU WUs to 3 (using Process Lasso) so they don't interfere with each other. The CPU WUs still doing happy cache thrashing since the Win 7 scheduler loves core hopping. My GPU WUs (PrimeGrid PPS Sieve) gain about 15-20% from having an exclusive core. Also it helps with usability since i tend to use the computer while crunching. Some games even run fine with GPU computation in the background with just one free core, so why not? That system takes a sensible hit with CMS Tasks. I can't do undemanding browsing with all Cores in use anymore. I need to keep one more core free for typical tasks to not experience lag. That may of course be much less of a problem with more cores.
2. The VMs may take too long to pause during shutdown.
I'm not sure what happens there exactly since pausing the computation is fast while during restarting/shutdown of Windows those tasks get shown as hindering shutdown. Some do stop after a few seconds, some don't. I chose not to wait any longer after a minute or so. Probably the reason for a failed task like this: https://lhcathome.cern.ch/lhcathome/result.php?resultid=345204241
While i don't reboot very often i think this may get quite a problem for people shutting down their computer every day.
Given the need to somewhat waste 25% of CPU power, the priority and affinity restrictions and being unsure of how relevant those meagre old two CPU Cores are to the project it looks to me like it is not worthwhile to run those tasks on my computer.
I'm not sure if those problems could be solved by the project. The BOINC Manager on the other side could help dealing with such issues by providing different profiles for computation settings and active projects and preferable native core pinning. At least to me such a thing would help much with daily usability of BOINC instead of changing settings manually all the time depending on what i am currently doing on the computer. The existing difference of active/idle is just too coarse.
Like when the computer is not actively used it may run lag inducing tasks and switch to lag friendly tasks once it is used interactively again. Possibly even changing the running project. Set up profiles that may activate when certain processes (like games) are running, applying the highest restrictions if multiple profiles are triggered leading to automated adaption to user activity.
I don't think i'm fit to do such a feature request though.