Waiting for memory.

adrianxw
adrianxw
Joined: 21 Feb 05
Posts: 242
Credit: 322654862
RAC: 0
Topic 208305

I am a little curious about the status of one of my work units, it says it is "Waiting for memory". RAMMap shows 5.4+ Gig unused, so what is it waiting for?

Wave upon wave of demented avengers march cheerfully out of obscurity into the dream.

Sebastian M. Bobrecki
Sebastian M. Bo...
Joined: 20 Feb 05
Posts: 63
Credit: 1529583160
RAC: 78

You probably have some limits

You probably have some limits set in preferences. You can change them in Your account site in Preferences -> Computing -> Advanced Settings : "Memory: when computer is in use, use at most:" and "Memory: when computer is not in use, use at most:" or in BOINC Manager: Options -> Computing preferences -> Disk and memory...

mikey
mikey
Joined: 22 Jan 05
Posts: 11944
Credit: 1832435487
RAC: 216132

Mine did that when it was

Mine did that when it was running up against the settings in boinc and Einstein wanted to run one of it's newer fancier workunits that took more resources. You could check you settings in Boinc itself...under Options, Computing preferences, and then the 'when to suspend' middle section under the Computing tab. I set mine to never suspend and have not had the problem again. The bottom section, Memory, of the Disk and Memory tab could be the culprit too, I have mine set to when in use 75% and when not in use at 90%, and then 90% for the page file as well.

adrianxw
adrianxw
Joined: 21 Feb 05
Posts: 242
Credit: 322654862
RAC: 0

Something I have noticed with

Something I have noticed with this is perhaps even more annoying, it is for me at least. When one of these jobs goes into that state, it does not release its CPU, right now, on this machine, I have four Einsteins there, but my hyperthreaded quad core i7 is not running eight tasks, but four. I have set no new tasks for Einstein.

Wave upon wave of demented avengers march cheerfully out of obscurity into the dream.

Christian Beer
Christian Beer
Joined: 9 Feb 05
Posts: 595
Credit: 125504575
RAC: 334258

The way the BOINC Client

The way the BOINC Client allocates tasks in case there is not enough memory available is a bit buggy at the moment. We are aware of that but we currently don't have the capacity to look into that.

adrianxw
adrianxw
Joined: 21 Feb 05
Posts: 242
Credit: 322654862
RAC: 0

>>> there is not enough

>>> there is not enough memory available

... but as I said at the start of the thread, there are gigabytes of unused memory available, both of my machines here have 16GB RAM.

No new tasks is set, and would seem to be appropriate.

Wave upon wave of demented avengers march cheerfully out of obscurity into the dream.

Christian Beer
Christian Beer
Joined: 9 Feb 05
Posts: 595
Credit: 125504575
RAC: 334258

BOINC allocates tasks based

BOINC allocates tasks based on the peak memory estimate of each of them also taking into account the restrictions imposed by preferences. So if you have a 4GB host and settings limit memory usage to 90% only 3.6GB are available but at least 1GB is occupied by the OS so BOINC only has 2.6GB left. If there is one task running that has a peak memory usage of 2GB (but does not use everything at the moment) BOINC will not start another task that uses more than .6GB (if available). So all tasks other than the running one are waiting for memory because the running task may use the full 2GB at one time or another. That is basically what you see. BOINC makes sure that the task it starts has the memory available that it claims it needs.

So if you end up with only tasks that take a lot of memory they are done in sequence not in parallel because they don't fit into memory all together. A smarter algorithm would be able to ask the server for tasks that require a smaller amount of memory so to squeeze them in to maximize CPU usage but that is not implemented in BOINC (neither in the Client nor the Server).

adrianxw
adrianxw
Joined: 21 Feb 05
Posts: 242
Credit: 322654862
RAC: 0

Before I did the upgrades, my

Before I did the upgrades, my machines did have 4GB of RAM, I did not notice this issue then. Now, with four times the memory, I see it daily, yet RAMMap says there are invariably more than 4GB unused. It is only Einstein that does this, there are 18 projects attatched on here, perhaps half, maybe more, have running work units.

What makes the problem so bad is that the task in the waiting state does not release its CPU, thus impacting on the performance of the system as a whole.

Wave upon wave of demented avengers march cheerfully out of obscurity into the dream.

Holmis
Joined: 4 Jan 05
Posts: 1118
Credit: 1055935564
RAC: 0

As no one has asked and you

As no one has asked and you haven't told us yet do you use web settings or local settings in Boinc?

What are your settings for:
1. Memory: when computer is in use, use at most: ?
2. Memory: when computer is not in use, use at most: ?
3. Page/swap file: use at most: ?

You could try to relax these and see if that helps.
What RAMMap says is irrelevant if your settings prevent Boinc from using the free memory.

The problem with Boinc not scheduling a new task when one is paused to wait for memory seems to be a Boinc problem and would then best be addressed on the Boinc boards.

Redvibe
Redvibe
Joined: 5 Apr 18
Posts: 11
Credit: 2189846
RAC: 0

I have been having the same

I have been having the same problem.

Ian&Steve C.
Ian&Steve C.
Joined: 19 Jan 20
Posts: 3709
Credit: 34626650069
RAC: 42605800

open the compute preferences

open the compute preferences and allocate more memory. by default BOINC only allows the use of 50%. so if you have 16GB, BOINC will only use 8GB of it.

 

if you're seeing the waiting for memory error, open the compute preferences and on the disk and memory tab, increase the value available to BOINC. set it to something like 90%

 

In Boinc Manager: Options-> Compute Preferences -> Disk and Memory (tab)

 

 

_________________________________________________________________________

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.