[R-sig-hpc] Seeing some memory leak with foreach...

Peter Langfelder peter.langfelder at gmail.com
Wed Feb 27 19:36:12 CET 2013


On Tue, Feb 26, 2013 at 6:49 AM, Jonathan Greenberg <jgrn at illinois.edu> wrote:
> r-sig-geo'ers:
>
> I always hate doing this, but the test function/dataset is going to be
> hard to pass along to the list.  Basically: I have a foreach call that
> has no superassignments or strange environmental manipulations, but
> resulted in the nodes showing a slow but steady memory creep over
> time.  I was using a parallel backend for foreach via doParallel.  Has
> anyone else seen this behavior (unexplained memory creep)?  Is there a
> good way to "flush" a node?  I'm trying to embed gc() at the top of my
> foreach function, but this process took about 24 hours to get to a
> memory overuse stage (multiple iterations would have passed, e.g. the
> function would have been called more than one time on a single node)
> so I'm not sure if this will work so I figured I'd ask the group about
> it.  I've seen other people post about this on various boards with no
> clear response/solution to it (gc() apparently didn't work).
>
> Some other notes: there should be no resultant output of data, because
> the output is being written from within the foreach function (e.g. the
> output of the function that foreach executes is NULL).
>
> I'll see if I can work up a faster executing example later, but wanted
> to see if there are some general pointers for dealing with memory
> leaks using a parallel system.

Hi Jonathan,

have you tried replacing the foreach(...) by a simple for ... to
verify that the problem really is in the parallel execution, and not
simply in the R code?

I second Simon's suggestion to pay careful attention to possible
side-effects and objects not going out of scope when you think they
should (for example, if something somewhere references the environment
of a function that already completed, the environment and all objects
within it are not out of scope).

Peter



More information about the R-sig-hpc mailing list