Questions and Answers : Windows : Multiple instances of minirosetta.
Author | Message |
---|---|
illegalbrain Send message Joined: 1 Oct 11 Posts: 1 Credit: 5,381 RAC: 0 |
After my computer has been running for a while I sometimes have 8 instances of minirosetta running and hogging heaps of memory. I have a i7 2600k processor (4 cores, 8 threads) "Leave applications in memory when suspended" is on the default setting of not checked. How can I stop this happening? At the moment I am not running rosetta because it slows down other apps when this happens. |
Rocco Moretti Send message Joined: 18 May 10 Posts: 66 Credit: 585,745 RAC: 0 |
My guess is that Boinc is seeing the 8 possible threads and trying to run one instance of minirosetta on each thread. I believe you should be able to change this in the computing preferences with the "On multiprocessors, use at most X processors" setting. You also should be able to adjust memory usage preferences with the "Use at most X% of memory when computer is (not) in use" settings. By the way, for R@h it's highly recommended to have "Leave applications in memory when suspended" checked. It helps to limit wasted computational effort. (If minirosetta is removed from memory when idle, it has to to restart from the last disk checkpoint, which, depending on the protocol, may have been some time ago.) As I understand it, if you have the other settings set appropriately, having it checked shouldn't affect performance, unless you're swap-file space limited. - Once you have things working properly, please do try turning it on and seeing if it affects performance with the new settings. |
Mod.Sense Volunteer moderator Send message Joined: 22 Aug 06 Posts: 4018 Credit: 0 RAC: 0 |
Just to further Rocco's comments, I would concur with your own apparent opinion that the sluggishness is likely due to memory contention. And so far as that goes, it is more effective to limit the number CPUs BOINC it allowed to use than to use the memory settings. If you only limit the amount of memory, BOINC may still fire up 8 tasks, and then end up suspending them when they consume memory. On the other hand, there are times in the processing when a task needs less memory and you could improve your throughput if your number of CPUs setting allowed some progress to be made on another task. I highly recommend leaving the tasks "in memory". The wording in unfortunate, but this is VIRTUAL memory (i.e. your swap file), and preserves work as Rocco mentioned. Another approach to consider would be to add another project to BOINC. One with tasks that consume less memory. I always find myself suggesting World Community Grid when such discussions come up. Many of their subprojects have low memory requirements. You can establish the "resource share" between the two projects as well. So you could do a split other than 50/50 if you like. Keep in mind that BOINC attempts to manage that split based on CPU seconds over time. Not based on the number of CPUs right now. So a 50/50 split does not mean "use 4 CPUs for Rosetta and 4 CPUs for the other project". But, over time, that will tend to be the net result. So if you had for example 4 Rosetta tasks using 350MB of memory, and 4 WCG tasks using 50MB of memory, you could still have 8 cores crunching (at a low priority, which generally means your other work can still run normally, provided enough memory is available), and BOINC trying to use 1.2GB less memory than when running 8 Rosetta tasks. I just looked at the only host associated with the account that you posted from and it shows 8CPUs and 16GB of memory. So you've got 2GB per core, which is a fair amount. Am I correct to presume you have some other memory intensive activities going on with this machine?? Or are you perhaps asking about a machine that is under another account? Rosetta Moderator: Mod.Sense |
Snags Send message Joined: 22 Feb 07 Posts: 198 Credit: 2,888,320 RAC: 0 |
Mod.Sense, what would be the effect of the small, 256 KB, cache? Best, Snags |
Mod.Sense Volunteer moderator Send message Joined: 22 Aug 06 Posts: 4018 Credit: 0 RAC: 0 |
Mod.Sense, what would be the effect of the small, 256 KB, cache? Well, it would tend to cause a need to go "all the way" out to RAM to get data or sections of the running programs when they are not in the CPU cache. As you can imaging with multi-GB memories and <1MB caches, this happens a *LOT*. It is normal. But a large cache helps programs that spend significant time in one area of code, or some locally small portion of their variable space run without going to memory (or swap file) to have everything needed to continue running. So, a larger cache would help drive a higher RAC for Rosetta (i.e. more useful work produced per unit time), but it would not impact overall memory requirement or disk IO. As for impact with other tasks... well the more stuff trying to run at the same time, the less likely the OS will find what you need next in the CPU cache. So if the non-BOINC applications running on this machine are making good use of the cache, than yes, running Rosetta (or anything else for that matter) is tending to bump things out of cache and causing an impact in that the other application more often has a trip out to memory to continue processing, rather than finding what is needed in the cache. Rosetta Moderator: Mod.Sense |
Questions and Answers :
Windows :
Multiple instances of minirosetta.
©2024 University of Washington
https://www.bakerlab.org