Are you destroying the matrix created by MatMatMult()? From the webpage: Notes C will be created and must be destroyed by the user with MatDestroy<http://www-unix.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-current/docs/manualpages/Mat/MatDestroy.html#MatDestroy>(). Unless scall is MAT_REUSE_MATRIX
Thanks, Matt On 5/9/06, Jordi Marc? Nogu? <jordi.marce at upc.edu> wrote: > > Hi, > > I find my problem with the memory. Using PetscTrDump(PETSC_NULL) I've > cornered it and I've find the lines which generate it. > > I've discovered that the functions like MatTranspose(), MatMatMult() or > similar functions creates extra memory in my code and these don't destroy. > > I explain: > > I create my matrices ----->>>> 3000 b are created (for example) > I use MatMatMult --------->>>> 2000 bytes are created (for example) > I destroy my matrices ---->>>> 3000 b are destroyed. > > How can I free the memory created in the function MaMatMult()? > > The final result is that if I use this function in a iterative process I > full the memory of the box. If I multiply the matrix in a own function, > I don't have this problem. > > > best regards, > jordi > > > > > En/na Satish Balay ha escrit: > > If you don't get any output with -trdump - it could mean that all > > objects are getting properly destroyed. But the swap usage is a bit > > unusual. > > > > You could try the option -trmalloc_log to see how memory is allocate > > on the PETSc side. And also -log_summary to see the summary of memory > > usage. > > > > Also - is it possible you have malloc() calls in your side of the code > > - that could be leaking memory? > > > > you could also comment out all MatSetOption() calls and see if it > > makes a difference. > > > > BTW: 2.2.0 is a very old version. You might want to upgrade to the > > latest 2.3.1 > > > > Satish > > > > On Mon, 8 May 2006, Jordi Marc? Nogu? wrote: > > > > > >>Thanks Barry, > >> > >>I'm using petsc 2.2.0. When I run my program ( " ./myprogram -trdump " > or with > >>-trmalloc, -trinfo...) I don't obtain anything... in the screen the code > doesn't > >>print > >>anything. > >> > >>If I use (for example) "./myprogram -start_on_debugger", in my screen > apers gdb > >> > >>and runs good... and with another options like -log_trace petsc writes > messages > >>in > >>my screen. Would I have to activate something in my internal petsc code? > >> > >>best regards, > >>jordi > >> > >> > >> > >> > >> > >> > >>Missatge citat per Barry Smith <bsmith at mcs.anl.gov>: > >> > >> > >>> > >>> See > >>> > >> > >> > http://www-unix.mcs.anl.gov/petsc/petsc-as/documentation/troubleshooting.html > >> > >>>number 12 > >>> > >>> You can run for say a few iterations with the options > >>>-malloc_debug -malloc_dump (in PETSc 2.3.1. in early releases it had > >>>different names). At PetscFinalize() PETSc will print all the memory > >>>it has allocated that has not been freed and where it was allocated. > >>>This can help determine what objects are not being freed. > >>> > >>> Barry > >>> > >>> > >>>>Hi, > >>>> > >>>>I use PETSc, and after 5000 (more or less) iteations in which i solve > a > >>> > >>>little > >>> > >>>>matrix > >>>>(30x30) my swap is totally used!!! I'm sure that when I create my > matrices > >>> > >>>I > >>> > >>>>destroy > >>>>them. Could you help me about it? What happens? What thing I do bad? > >>>> > >>>>Mat K > >>>>MatCreateSeqAIJ(PETSC_COMM_SELF, dim, dim, 9 , PETSC_NULL, &K); > >>>>MatSetFromOptions(K); > >>>>MatSetOption(K, MAT_SYMMETRIC); > >>>>MatSetOption(K, MAT_ROW_ORIENTED); > >>>>MatSetOption(K, MAT_IGNORE_ZERO_ENTRIES); > >>>>MatSetOption(K, MAT_NEW_NONZERO_ALLOCATION_ERR); > >>>> > >>>>( I use KSP solve, created and destroyed) > >>>> > >>>>MatDestroy(K); > >>>> > >>>> > >>>>Thanks, > >>>>jordi > >>>>----------- > >>>>Jordi Marc?-Nogu? > >>>>Dept. Resist?ncia de Materials i Estructures a l'Enginyeria > >>>>Universitat Polit?cnica de Catalunya (UPC) > >>>> > >>>>Edifici T45 - despatx 137 > >>>>ETSEIAT (Terrassa) > >>>> > >>>>phone: +34 937 398 728 > >>>>mail: jordi.marce at upc.edu > >>>> > >>>> > >>>> > >> > >> > >> > >> > >> > > > -- > Jordi Marc?-Nogu? > Dept. Resist?ncia de Materials i Estructures a l'Enginyeria > Universitat Polit?cnica de Catalunya (UPC) > > Edifici T45 - despatx 137 > ETSEIAT (Terrassa) > > phone: +34 937 398 728 > mail: jordi.marce at upc.edu > > -- "Failure has a thousand explanations. Success doesn't need one" -- Sir Alec Guiness -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20060509/1325b9b2/attachment.htm>
