Leave applications in memory while suspended preference does not work

Message boards : Number crunching : Leave applications in memory while suspended preference does not work

To post messages, you must log in.

AuthorMessage
Profile Ed Johnson

Send message
Joined: 9 Jun 06
Posts: 9
Credit: 4,738,577
RAC: 0
Message 31389 - Posted: 18 Nov 2006, 21:40:45 UTC
Last modified: 18 Nov 2006, 21:44:28 UTC

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
ID: 31389 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile [B^S] thierry@home
Avatar

Send message
Joined: 17 Sep 05
Posts: 182
Credit: 281,902
RAC: 0
Message 31392 - Posted: 18 Nov 2006, 23:03:44 UTC

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.
ID: 31392 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Feet1st
Avatar

Send message
Joined: 30 Dec 05
Posts: 1755
Credit: 3,955,458
RAC: 1,422
Message 31395 - Posted: 18 Nov 2006, 23:56:37 UTC

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/
ID: 31395 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Ed Johnson

Send message
Joined: 9 Jun 06
Posts: 9
Credit: 4,738,577
RAC: 0
Message 31401 - Posted: 19 Nov 2006, 2:46:22 UTC - in response to Message 31395.  

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. "
ID: 31401 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Feet1st
Avatar

Send message
Joined: 30 Dec 05
Posts: 1755
Credit: 3,955,458
RAC: 1,422
Message 31406 - Posted: 19 Nov 2006, 4:12:17 UTC

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/
ID: 31406 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile River~~
Avatar

Send message
Joined: 15 Dec 05
Posts: 761
Credit: 285,578
RAC: 0
Message 31424 - Posted: 19 Nov 2006, 17:32:56 UTC - in response to Message 31389.  

...
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.
...



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~~

ID: 31424 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Mats Petersson

Send message
Joined: 29 Sep 05
Posts: 225
Credit: 951,788
RAC: 0
Message 31460 - Posted: 20 Nov 2006, 14:11:32 UTC

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
ID: 31460 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Ed Johnson

Send message
Joined: 9 Jun 06
Posts: 9
Credit: 4,738,577
RAC: 0
Message 31480 - Posted: 20 Nov 2006, 21:40:55 UTC - in response to Message 31424.  
Last modified: 20 Nov 2006, 21:55:18 UTC

...
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.
...


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).



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
ID: 31480 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Ed Johnson

Send message
Joined: 9 Jun 06
Posts: 9
Credit: 4,738,577
RAC: 0
Message 31481 - Posted: 20 Nov 2006, 23:17:21 UTC - in response to Message 31480.  

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
ID: 31481 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Feet1st
Avatar

Send message
Joined: 30 Dec 05
Posts: 1755
Credit: 3,955,458
RAC: 1,422
Message 31482 - Posted: 20 Nov 2006, 23:26:11 UTC - in response to Message 31481.  

...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/
ID: 31482 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile River~~
Avatar

Send message
Joined: 15 Dec 05
Posts: 761
Credit: 285,578
RAC: 0
Message 31503 - Posted: 21 Nov 2006, 11:41:41 UTC - in response to Message 31481.  
Last modified: 21 Nov 2006, 11:44:57 UTC

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~~
ID: 31503 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile River~~
Avatar

Send message
Joined: 15 Dec 05
Posts: 761
Credit: 285,578
RAC: 0
Message 31505 - Posted: 21 Nov 2006, 12:12:14 UTC - in response to Message 31481.  
Last modified: 21 Nov 2006, 12:17:27 UTC

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~~
ID: 31505 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
FluffyChicken
Avatar

Send message
Joined: 1 Nov 05
Posts: 1260
Credit: 369,635
RAC: 0
Message 31513 - Posted: 21 Nov 2006, 14:34:27 UTC - in response to Message 31505.  

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
ID: 31513 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile River~~
Avatar

Send message
Joined: 15 Dec 05
Posts: 761
Credit: 285,578
RAC: 0
Message 31517 - Posted: 21 Nov 2006, 16:07:36 UTC - in response to Message 31513.  

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~~
ID: 31517 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote

Message boards : Number crunching : Leave applications in memory while suspended preference does not work



©2020 University of Washington
https://www.bakerlab.org