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@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 <[email protected]> Subject: Re: [Numpy-discussion] Python memory management issues using Linux. Maybe Numpy related. To: Discussion of Numerical Python <[email protected]> Message-ID: <[email protected]> Content-Type: text/plain; charset=UTF-8 On Sat, May 21, 2011 at 23:27, Jeffrey Spencer <[email protected]> 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
[email protected]

_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to