Message boards : Number crunching : Leave applications in memory while suspended preference does not work
Author | Message |
---|---|
Ed Johnson Send message Joined: 9 Jun 06 Posts: 9 Credit: 4,738,577 RAC: 0 |
Hi, I run only Rosetta@home. I have set: Leave applications in memory while suspended = 'no' on my web account with Rosetta. I have updated my clients. I use only the default preferences. I have not setup home, school or work preferences. All of my preference changes worked except for my leaving application in memory to no. Rosetta eats up over 100MB of memory and >100MB virtual memory per WU, and I cannot afford to leave it in memory when I am doing work. C:Program FilesBOINCglobal_prefs.xml does NOT have an entry for leaving application in memory. Even though it updated all my other changes correctly. Is this a bug with Boinc? Can I correct the global_prefs.xml by hand until this bug is fixed? Thanks, Ed J. Boinc 5.4.11 ---------- global_prefs.xml file - {global_preferences} {source_project}https://boinc.bakerlab.org/rosetta/{/source_project} {source_scheduler}https://boinc.bakerlab.org/rosetta_cgi/cgi{/source_scheduler} {mod_time}1163882196{/mod_time} {run_if_user_active /} {idle_time_to_run}5{/idle_time_to_run} {cpu_scheduling_period_minutes}60{/cpu_scheduling_period_minutes} {work_buf_min_days}0.1{/work_buf_min_days} {max_cpus}2{/max_cpus} {cpu_usage_limit}100{/cpu_usage_limit} {disk_interval}60{/disk_interval} {disk_max_used_gb}1{/disk_max_used_gb} {disk_max_used_pct}10{/disk_max_used_pct} {disk_min_free_gb}1{/disk_min_free_gb} {vm_max_used_pct}25{/vm_max_used_pct} {max_bytes_sec_down}0{/max_bytes_sec_down} {max_bytes_sec_up}0{/max_bytes_sec_up} {/global_preferences} ------------ Settings from Rosetta@home web account Processor usage Do work while computer is running on batteries? (matters only for portable computers) no Do work while computer is in use? no Do work only after computer is idle for 5 minutes Do work only between the hours of (no restriction) Leave applications in memory while suspended? no (suspended applications will consume swap space if 'yes') no Switch between applications every (recommended: 60 minutes) 60 minutes On multiprocessors, use at most 2 processors Use at most 100 percent of CPU time |
[B^S] thierry@home Send message Joined: 17 Sep 05 Posts: 182 Credit: 281,902 RAC: 0 |
It's normal when Rosetta runs that it "eat" some RAM. The 'Leave in memory' is used when you run multiple projects and allows you to not lose the work (the point where you stop crunching) when you jump to another project. |
Feet1st Send message Joined: 30 Dec 05 Posts: 1755 Credit: 4,690,520 RAC: 0 |
Thierry, in Ed's case, even with only one project, the setting is for what to when "preempted" and it's likely that he's preempting when he actively uses his computer. It sounds like he's probably also set it to only run when the computer is not active. Ed, if you're looking at the Windows task manager, I'm pretty sure it's always going to show some memory there, even it is just virtual memory. For good productivity, for yourself, and for Rosetta, you really should set to leave in memory. This really refers to virtual memory, not physical memory. And the setting to watch is when you allow BOINC to run. If you run only when computer not in use, then Rosetta will get swapped out of physical memory while you do your work. I've never heard of such a bug. Could you be a little more specific about what you are expecting to see in your xml file and in how you are observing R@H consuming memory? Add this signature to your EMail: Running Microsoft's "System Idle Process" will never help cure cancer, AIDS nor Alzheimer's. But running Rosetta@home just might! https://boinc.bakerlab.org/rosetta/ |
Ed Johnson Send message Joined: 9 Jun 06 Posts: 9 Credit: 4,738,577 RAC: 0 |
I've never heard of such a bug. Could you be a little more specific about what you are expecting to see in your xml file and in how you are observing R@H consuming memory? This part was cleared up by a reply from the main Boinc forums: http://boinc.berkeley.edu/dev/forum_thread.php?id=1324#6524 "When the "leave applications in memory when suspended" is set to No, it doesn't show up in global_prefs.xml That's the way to see it isn't used. If it's set to Yes, there'd be a single entry like <leave_apps_in_memory/> in the file. " |
Feet1st Send message Joined: 30 Dec 05 Posts: 1755 Credit: 4,690,520 RAC: 0 |
Good to know... while we're here... Could you post what you observe when you preempt Rosetta and use your computer? (I'll still assuming you've set it to only crunch while not in use). Do you still see the Rosetta thread(s) in the task list? (and just not using CPU?) Add this signature to your EMail: Running Microsoft's "System Idle Process" will never help cure cancer, AIDS nor Alzheimer's. But running Rosetta@home just might! https://boinc.bakerlab.org/rosetta/ |
River~~ Send message Joined: 15 Dec 05 Posts: 761 Credit: 285,578 RAC: 0 |
... Leave in memory, in the BOINC settings, means that the app is not removed from virtual memory (VM) when it suspends, like when you are doing work. It does not stop it from being removed from physical memory (RAM). Unless your HD is really full, 100Mb of VM should not stop anything from working. If need be, go into windows and give the operating system a bigger max size for its virtual memory (sometimes called the pagefile size). When you start to use the computer, for a few secons it will feel sluggish - thisis because it can take a moment to page the Rosetta stuff out of RAM into VM to make room for what you want to do - but after that things should feel as normal, unless you stop work for a while. My suggestion - and it is only a suggestion - is to look first into increasing the length of time BOINC waits befroe starting up again if the system goes sluggish on you while you are pondering creatively over the keyboard. If that doesn't make the system as responsive as you want it to be, then the next thing I would suggest is to turn BOINC off during working hours - using the schedule (which you can fill in by days of the week). I personally would not recommend running BOINC with the option set to remove the app from memory - it will very often lose the work it has just done, and in my opinion you are therefore better off saving the power instead. Or run other projects which have a much shorter "checkpoint interval" (ie the amount of work lost on removal from memory. Just my opinion. River~~ |
Mats Petersson Send message Joined: 29 Sep 05 Posts: 225 Credit: 951,788 RAC: 0 |
Technically, it's not suspended when the computer is doing other work - it's only suspended when it's doing other BOINC work - that is, if you work with Rosetta and SETI, if it's running a SETI-workload, timesharing with Rosetta, teh SETI workload and Rosetta workload are in memory at the same time if "leave in memory" is set, whilst it's removed from memory (and restarted at the previous "store-point" [can't think of the correct term here - but during runtime, Rosetta will "store" the current work done so far, and it can only restore to such a point]. If you have a machine with small amounts of memory, it will indeed use up around 100MB per instance of Rosetta that is running. Unfortunately, there's not really much you can do about it. -- Mats |
Ed Johnson Send message Joined: 9 Jun 06 Posts: 9 Credit: 4,738,577 RAC: 0 |
... Hi River, Do you have a reference for your statement about how Windows handles the rosetta process' memory? I have been experimenting with bringing Rosetta in and out of memory while viewing the Windows Task Manager Performance Tab. The Physical Memory Available and Commit Charge Total do not change by more than a couple MB when I suspend rosetta and leave in memory. However, if I remove rosetta from memory, then those two quantities do change by roughly the full amount of the Mem Usage used by rosetta. Furthermore, the latest Rosetta process uses approximately 90MB in Mem Usage column, and VM Size of 130MB. These figures do not change when Rosetta is suspended and left in memory. This paragraph from wikipedia says that rosetta is using up the physical ram, and not permitting other processes from using it in this situation. "The "Mem Usage" column in Task Manager's "Processes" display shows each process's current working set. This is a count of physical memory (RAM) rather than virtual address space. It represents the subset of the process's virtual address space that is valid, meaning that it can be referenced without incurring a page fault." http://en.wikipedia.org/wiki/Commit_charge If it was 0MB of Mem Usage and 130MB of VM Size when rosetta was suspended, then I believe your assertion would be correct. However, that does not appear to be how Windows handles rosetta's memory when it is suspended (and left in memory.) Thoughts? References? Thanks, Ed |
Ed Johnson Send message Joined: 9 Jun 06 Posts: 9 Credit: 4,738,577 RAC: 0 |
Hi again River, I did some more testing, and now I see what you are talking about. If I open up a boatload of memory intensive applications, then my available physical memory dips into the teens. At this point, the rosetta process did indeed start to release physical memory. The Mem Usage dropped from 90MB, to 45MB, then to 22MB. After opening another slew of programs, it dropped to 14MB of Mem Usage. This is an acceptable amount to me. fyi, I administrate a couple small businesses and have boinc installed on lots of machines. I am trying to make sure that the lesser powered machines don't take too much of a hit running rosetta. I think setting rosetta to run after 15 minutes of inactivity will keep users from experiencing too much disk thrash during their work routine. 15 minutes usually means they have left for a meeting, lunch, or some other task that will keep them away from their computer for a bit. I will let rosetta stay in memory as well. Thanks, Ed |
Feet1st Send message Joined: 30 Dec 05 Posts: 1755 Credit: 4,690,520 RAC: 0 |
...If I open up a boatload of memory intensive applications, then my available physical memory dips into the teens. At this point, the rosetta process did indeed start to release physical memory... Yes, if there is no REASON to force Rosetta out of physical memory (such as another application wanting to use memory) then it may stay around, but, by definition, in that case it is not in the way of anything. Crunch more Rosetta! Add this signature to your EMail: Running Microsoft's "System Idle Process" will never help cure cancer, AIDS nor Alzheimer's. But running Rosetta@home just might! https://boinc.bakerlab.org/rosetta/ |
River~~ Send message Joined: 15 Dec 05 Posts: 761 Credit: 285,578 RAC: 0 |
I did some more testing, and now I see what you are talking about. hi Ed, yes, that is the only reference I can offer, I did the same as you, watched what actually happens when you bring other work in. As Feet1st says, it makes sense that windows does not page stuff out until the pages are needed for something else. It saves wasting disk writes to the page file when you don't in fact need the memory for something else. he goes on to say but, by definition, in that case it is not in the way of anything. and that is not quite right, because it does take time to write the pages to disk. If windows removed the Rosetta pages proactively it would offer an improved response when the memory was actually needed. The cost would be that some of those page outs would prove unnecessary. Operating systems (Win and LIn) don't tend to do this as proactive removal tends in the long run to mean more page outs and therefore lower performance overall. R~~ |
River~~ Send message Joined: 15 Dec 05 Posts: 761 Credit: 285,578 RAC: 0 |
fyi, I administrate a couple small businesses and have boinc installed on lots of machines. I am trying to make sure that the lesser powered machines don't take too much of a hit running rosetta. I think setting rosetta to run after 15 minutes of inactivity will keep users from experiencing too much disk thrash during their work routine. 15 minutes usually means they have left for a meeting, lunch, or some other task that will keep them away from their computer for a bit. I will let rosetta stay in memory as well. I did something similar in an internet cafe within a drop in centre for a while. It is a useful boost to the stats - for you and for the project. I've a couple more pieces of advice, for what they are worth. What users notice more than anything in the set up you describe is that they go away from their computer for the meeting, come back to a prgram they left active (Word, say), and it feels sluggish for a while. They are used to a slow start up for Word, but not used to it slowing down when they take a break with it running. We know that the reason for this is that Word has been paged out to make room for Rosetta to return. I suggest two things will help users to accept these delays. First, I suggest you use a simple screen saver, not the project one but one that will not use a lot of cpu time, and set it to the same time out as you use in the Rosetta prefs, or maybe to one minute before Rosetta restarts. Then the immediate delay on returning to (say) a running instance of Word will feel to the user like someting to do with the s/s and will not be noticed. This was the advantage of the original design of SETI classic where the screen saver itself was doing the crunching - people are used to screen savers taking a brief pause before they go away. Second, do warn your more IT aware users that they may sometimes notice a lower responsiveness the first time they do a particular activity after they have seen the screen saver - for example if they left Word running, come back, interrupt the screen saver, then the next time they run spell checker it might take longer than usual even if they have been working normally for several minutes. The reason for this last effect is that if the spell checker has been itself paged out by Rosetta, it is not brought back into RAM until the user eventually does another spell check. This efect is more noticeable to users than anything else. A sluggish spell check ten minutes after they got back from that meeting will be noticed by some users. They are now back up to normal speed and the computer isn't. And if they are the sort of users who *will* complain, then maybe it would be better not to try to run Rosetta in working hours. That is why the option exists. R~~ |
FluffyChicken Send message Joined: 1 Nov 05 Posts: 1260 Credit: 369,635 RAC: 0 |
Hopefully with the newer memory managment they are trying to build into boinc will reduce this problem. It is exactly as you put it, but the place you often notice it is the Start menu when it has to pull it all from disk to refresh it. Team mauisun.org |
River~~ Send message Joined: 15 Dec 05 Posts: 761 Credit: 285,578 RAC: 0 |
Hopefully with the newer memory managment they are trying to build into boinc will reduce this problem. It is exactly as you put it, but the place you often notice it is the Start menu when it has to pull it all from disk to refresh it. or worse, has to push Rosetta out to disk before it can pull the start menu in But you are right FC, the Start menu is *the* place where any delay can be most irritating The other setting I forgot to mention, is to either have the disks set to time out never, or have the hard disk timne out interval set at least 5 min longer than the setting for Rosetta and the screen saver. This is because the even-worse still effect is where it has to wait for the HD to spin up and then wait for Rosetta to be paged out then wait for Start to be paged in before it can respond to the mouse click on the Start button. If you have other BOINC projects running they will be writing to disk every few mins, so there is not really anything to lose by keeping the disks spinning. R~~ |
Message boards :
Number crunching :
Leave applications in memory while suspended preference does not work
©2024 University of Washington
https://www.bakerlab.org