Dear Magnus, A fix has been commited by Kostas. Many thanks to him. The problem was a missing dereference for numpy arrays in Getfem interface.
Yves. ----- Mail original ----- De: "yves renard" <[email protected]> À: "getfem-users" <[email protected]> Envoyé: Vendredi 11 Mars 2016 13:24:09 Objet: Re: [Getfem-users] Python interface: memory leak? Dear Magnus, Quite strange memory leak. When I put "b= N.random.rand(50000)" out of the loop, as this : b= N.random.rand(50000) for ii in range(1001): c=GFspmat.mult(b) if ii%100==0: print "SPmat: Mem use after %i mult %i kb"%(ii,resource.getrusage(resource.RUSAGE_SELF).ru_maxrss) Then there is no more leak ... May be it comes from how the python interface deal with numpy arrays. I will have a look. Yves. Le 10/03/2016 13:11, Magnus Paulsson a écrit : > Seems that there is a memory leak in SPmat.mult(). The code below > shows increasing memory use for getfem 5.0 and 4.? on my linux boxes. > (don’t know if the code works on OSX or windows but runs on windows) > > SciPy: Mem use after 0 mult 29588 kb > SciPy: Mem use after 100 mult 29588 kb > SciPy: Mem use after 200 mult 29588 kb > SciPy: Mem use after 300 mult 29588 kb > SciPy: Mem use after 400 mult 29588 kb > SciPy: Mem use after 500 mult 29588 kb > SciPy: Mem use after 600 mult 29588 kb > SciPy: Mem use after 700 mult 29588 kb > SciPy: Mem use after 800 mult 29588 kb > SciPy: Mem use after 900 mult 29588 kb > SciPy: Mem use after 1000 mult 29588 kb > SPmat: Mem use after 0 mult 29588 kb > SPmat: Mem use after 100 mult 65840 kb > SPmat: Mem use after 200 mult 104912 kb > SPmat: Mem use after 300 mult 143984 kb > SPmat: Mem use after 400 mult 183056 kb > SPmat: Mem use after 500 mult 222128 kb > SPmat: Mem use after 600 mult 261200 kb > SPmat: Mem use after 700 mult 300272 kb > SPmat: Mem use after 800 mult 339344 kb > SPmat: Mem use after 900 mult 378416 kb > SPmat: Mem use after 1000 mult 417488 kb > > > > > import numpy as N > import getfem as GF > import resource > import scipy.sparse as SS > > # Random sparse diagonal > GFspmat = GF.Spmat('diag', N.random.rand(50000)) > GFspmat.to_csc() > > # Scipy version > [indptr, indices] = GFspmat.csc_ind() > data = GFspmat.csc_val() > SciPyspmat = SS.csc_matrix((data,indices,indptr)) > > for ii in range(1001): > b=N.random.rand(50000) > c=SciPyspmat.dot(b) > if ii%100==0: > print "SciPy: Mem use after %i mult %i > kb"%(ii,resource.getrusage(resource.RUSAGE_SELF).ru_maxrss) > > for ii in range(1001): > b= N.random.rand(50000) > c=GFspmat.mult(b) > if ii%100==0: > print "SPmat: Mem use after %i mult %i > kb"%(ii,resource.getrusage(resource.RUSAGE_SELF).ru_maxrss) > > > > ----------------------------------------------- > Magnus Paulsson > Associate Professor > Dept. of Physics and Electrical Engineering > Linnaeus University > Phone: +46-480-446308 > Mobile: +46-70-6942987 > > > > _______________________________________________ > Getfem-users mailing list > [email protected] > https://mail.gna.org/listinfo/getfem-users -- Yves Renard ([email protected]) tel : (33) 04.72.43.87.08 Pole de Mathematiques, INSA-Lyon fax : (33) 04.72.43.85.29 20, rue Albert Einstein 69621 Villeurbanne Cedex, FRANCE http://math.univ-lyon1.fr/~renard --------- _______________________________________________ Getfem-users mailing list [email protected] https://mail.gna.org/listinfo/getfem-users
