On Jul 15, 2012, at 5:26 PM, Shri wrote:

> 
> On Jul 15, 2012, at 4:57 PM, Barry Smith wrote:
> 
>> 
>> On Jul 15, 2012, at 4:48 PM, Shri wrote:
>> 
>>> 
>>> On Jul 15, 2012, at 3:27 PM, Barry Smith wrote:
>>> 
>>>> 
>>>> Shri,
>>>> 
>>>> You need to test your code WITHOUT pthreads OR openmp configure.
>>> That is what i am doing, no openmp or pthreads.
>>> 
>>>> You have the call to PetscThreadCommFinalize()  protected by PTHREADCLASSES
>>> 
>>> There is no PetscThreadCommFinalize(). There is a 'PetscThreadsFinalize()' 
>>> call in PetscFinalize() that is protected by PTHREADCLASSES. 
>>> PetscThreadsFinalize() is for finalizing the previous pthread pool model 
>>> that i had added on which vec_type pthread and mat_type seqaijpthread are 
>>> based. It has nothing to do with threadcomm. Once i add new vector and 
>>> matrix code using threadcomm , i'll remove the old pthread code and the 
>>> pthread vector and matrix class.
>> 
>>  Why not just remove all the old pthread code now; it will make things 
>> clearer.
> 
> Don't want to hurl people who are using/testing it into darkness.
> 
>> 
>>>> but not PetscThreadCommInitializePackage() projected!   Also why do you 
>>>> call PetscThreadCommPackageInitialize() at the beginning but 
>>>> PetscThreadCommFinalize() at the end and not 
>>>> PetscThreadCommFinalizePackage()?
>>> 
>>> PetscThreadCommFinalizePackage is registerfinalized in 
>>> PetscThreadCommInitializePackage() 
>>> 
>>> ierr = PetscRegisterFinalize(PetscThreadCommFinalizePackage);CHKERRQ(ierr);
>> 
>>  Sorry my mistake.
>>> 
>>> So it is called on PetscRegisterFinalizeAll().
>>>> 
>>>> BTW: If I #if def out the PetscThreadCommPackageInitialize() then nothing 
>>>> works (I have built without pthread classes and without openmp).  So there 
>>>> is some bad stuff going on.
>>> 
>>> PetscThreadCommPackageInitialize() attaches the threadcomm attribute on the 
>>> MPI communicator and there are several places where the threadcomm 
>>> attribute is requested (sys/objects/subcomm.c, src/sys/tagm.c). Hence, the 
>>> errors. 
>> 
>>  Try a build with mpiuni.
> 
>    Aah, i can see the memory leak now. Thanks. It looks like the threadcomm 
> object is not being freed. Something to do with destroying the MPIUNI 
> attribute perhaps? Will check.

Fixed. http://petsc.cs.iit.edu/petsc/petsc-dev/rev/169c19e9ea54
The memory leak was due to the COMM_SELF and COMM_WORLD communicators being 
same for mpiuni. This was leaving an extra reference for the innercomm.

Shri

> 
> Shri
>> Maybe the memory leak is because that isn't handling stuff possible.   My 
>> build with memory leaks is with mpiuni.
>> 
>>  Thanks
>> 
>> 
>>  Barry
>> 
>>> 
>>> Thanks,
>>> Shri
>>>> 
>>>> Barry
>>>> 
>>>> On Jul 15, 2012, at 11:54 AM, Shri wrote:
>>>> 
>>>>> 
>>>>> On Jul 14, 2012, at 7:55 PM, Satish Balay wrote:
>>>>> 
>>>>>> I see this with 32bit linux build - but not 64bit linux build.
>>>>> 
>>>>> I tried a fresh clone on my Mac and a linux cluster (both x86_64) but 
>>>>> still did not get  any memory leaks. Perhaps this is a 32 bit build issue 
>>>>> as Satish mentions. What configure options do i need to have a 32 bit 
>>>>> build on x86_64? CC="gcc -m32" FC="gfortran -m32"?
>>>>> 
>>>>> Thanks,
>>>>> Shri
>>>>> 
>>>>>> 
>>>>>> also 32bit linux build gives errors with -fp_trap in ddot(). Haven't 
>>>>>> checked why.
>>>>>> 
>>>>>> Satish
>>>>>> 
>>>>>> 
>>>>>> On Sat, 14 Jul 2012, Barry Smith wrote:
>>>>>> 
>>>>>>> 
>>>>>>> Many of them with make test
>>>>>>> 
>>>>>>> Running test examples to verify correct installation
>>>>>>> Using PETSC_DIR=/Users/barrysmith/Src/petsc-dev and 
>>>>>>> PETSC_ARCH=arch-float128-opt
>>>>>>> Possible error running C/C++ src/snes/examples/tutorials/ex19 with 1 
>>>>>>> MPI process
>>>>>>> See http://www.mcs.anl.gov/petsc/documentation/faq.html
>>>>>>> lid velocity = Qg, prandtl # = Qg, grashof # = Qg
>>>>>>> Number of SNES iterations = 2
>>>>>>> [0]Total space allocated 6880 bytes
>>>>>>> [ 0]16 bytes PetscThreadCommReductionCreate() line 260 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcommred.c
>>>>>>> [ 0]16 bytes PetscThreadCommReductionCreate() line 259 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcommred.c
>>>>>>> [ 0]48 bytes PetscThreadCommReductionCreate() line 258 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcommred.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommInitialize() line 698 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]176 bytes PetscThreadCommInitialize() line 694 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]272 bytes PetscThreadCommInitialize() line 692 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]16 bytes PetscThreadCommSetAffinities() line 331 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]48 bytes PetscThreadCommCreate() line 122 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> [ 0]320 bytes PetscThreadCommCreate() line 118 in 
>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>> Completed test examples
>>>>>>> barry-smiths-macbook-pro:petsc-dev barrysmith$ 
>>>>>>> 
>>>>>>> 
>>>>>>> On Jul 14, 2012, at 6:36 PM, Shri wrote:
>>>>>>> 
>>>>>>>> Which example are you running? I don't see any memory leak for the 
>>>>>>>> examples i've tested (threadcomm examples 
>>>>>>>> sys/threadcomm/examples/tutorials/ and 
>>>>>>>> snes/examples/tutorials/ex19.c,ex5.c)
>>>>>>>> On Jul 14, 2012, at 4:22 PM, Barry Smith wrote:
>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Please always test for memory leaks before pushing
>>>>>>>>> 
>>>>>>>>> [ 0]48 bytes PetscThreadCommCreate() line 122 in 
>>>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>>>> [0]  PetscThreadCommInitialize() line 685 in 
>>>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>>>> [0]  PetscThreadCommInitializePackage() line 53 in 
>>>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/dlregisthreadcomm.c
>>>>>>>>> [ 0]320 bytes PetscThreadCommCreate() line 118 in 
>>>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>>>> [0]  PetscThreadCommInitialize() line 685 in 
>>>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/threadcomm.c
>>>>>>>>> [0]  PetscThreadCommInitializePackage() line 53 in 
>>>>>>>>> /Users/barrysmith/Src/petsc-dev/src/sys/threadcomm/interface/dlregisthreadcomm.c
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
> 

Reply via email to