[Numpy-discussion] Python memory management issues using, Linux. Maybe Numpy related.

Jeffrey Spencer jeffspencerd at gmail.com
Sun May 22 23:44:56 EDT 2011


There are a few places where we (improperly) directly call malloc()
instead of PyMem_Malloc(), so yes, you should rebuild numpy against
TCMalloc in addition to the Python interpreter.

How do I build against the -ltcmalloc library? Just not sure how to 
input compile time arguments with the build script.

from numpy import arange, sum
>
>  for x in range(10000000):
>            inhibVal = sum(arange(15))

Memory usage stays constant with Ubuntu 11.04, 64-bit, using the numpy
1.5.1 package from ubuntu, and using 1.6.1.dev-a265004.


efiring at manini:~$ uname -a
Linux manini 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:24 UTC
2011 x86_64 x86_64 x86_64 GNU/Linux


Eric

Also noticed that the same issue occurs as described with using the prod 
instead of sum. Other commands like copy and reshape have no issues. I 
have a machine with 11.04 on it so I will give that a go later to see 
what goes.

Thanks, Jeff

Message: 2 Date: Sun, 22 May 2011 12:32:43 -0500 From: Robert Kern 
<robert.kern at gmail.com> Subject: Re: [Numpy-discussion] Python memory 
management issues using Linux. Maybe Numpy related. To: Discussion of 
Numerical Python <numpy-discussion at scipy.org> Message-ID: 
<BANLkTikUgYm8COoZEhNP2tJGYRb_PBH1og at mail.gmail.com> Content-Type: 
text/plain; charset=UTF-8 On Sat, May 21, 2011 at 23:27, Jeffrey Spencer 
<jeffspencerd at gmail.com> wrote:

> >  I have had issues with Linux (Ubuntu 10.04 x86_64) not releasing memory
> >  back to the OS. I have code here the exhibits the issue:
> >
> >  http://stackoverflow.com/questions/5975255/memory-allocated-to-python-in-the-os-is-never-released-back-in-linux-even-after-g
> >
> >  Then I read athttp://pushingtheweb.com/2010/06/python-and-tcmalloc/
> >  that this was a problem fixed by compiling your own version of Python
> >  using the TCMalloc library which I have now done. The issue is still
> >  exhibited so I was keen to know if possibly it was because numpy is
> >  compiled and linked to the default memory management library (not sure
> >  if this is true or how this works but would I also need to compile numpy
> >  linked to the TCMalloc library). Let me know if anyone has any insight
> >  on this issue. Or if it isn't related to numpy at all.
There are a few places where we (improperly) directly call malloc()
instead of PyMem_Malloc(), so yes, you should rebuild numpy against
TCMalloc in addition to the Python interpreter.

-- Robert Kern "I have come to believe that the whole world is an 
enigma, a harmless enigma that is made terrible by our own mad attempt 
to interpret it as though it had an underlying truth." ? -- Umberto Eco

-- 
________________________
Jeffrey Spencer
jeffspencerd at gmail.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20110523/95251754/attachment.html>


More information about the NumPy-Discussion mailing list