[petsc-users] Memory logging in fortran
Colin McAuliffe
cjm2176 at columbia.edu
Wed May 22 23:21:48 CDT 2013
Removing the have task info stuff leads to getrusage being called.
Though there must be a bug in the os x getrusage because the max
resident set size it returns is too large to be right. I realize this
is not related to petsc, but if you are interested the python script:
import resource
import sys
t = range(0,10000)
print "Size of t is ",sys.getsizeof(t),"bytes"
print "Max resident set size is
",resource.getrusage(resource.RUSAGE_SELF)[2]*1024,"bytes"
gives the output:
Size of t is 80072 bytes
Max resident set size is 4521459712 bytes
I would guess the two values should be in the same ballpark, and
actually the computed resident set size is larger than the amount of
memory I have to begin with! Hopefully the apple developers would be
able to help.
Thanks
Colin
Quoting Barry Smith <bsmith at mcs.anl.gov>:
>
> On May 22, 2013, at 8:32 PM, Colin McAuliffe <cjm2176 at columbia.edu> wrote:
>
>> According to gdb the program goes here
>>
>> 110: #elif defined(PETSC_HAVE_TASK_INFO)
>> 111: *mem = 0;
>>
>> The configuration flags from my petsc compilation indicate that
>> both PETSC_HAVE_TASK_INFO and PETSC_HAVE_GETRUSAGE are 1. I'm not
>> sure what have task info is supposed to do, is it safe to set it to
>> 0 to see if this fixes the problem?
>
> Remove the PETSC_HAVE_TASK_INFO stuff completely and then rerun
> make and see if it solves the problem.
>
> At some point the TASK_INFO stuff worked on the Apple some
> years ago, perhaps they turned if off.
>
> Barry
>
>>
>> Quoting Barry Smith <bsmith at mcs.anl.gov>:
>>
>>>
>>> On May 22, 2013, at 7:06 PM, Colin McAuliffe <cjm2176 at columbia.edu> wrote:
>>>
>>>> Hi Barry, thanks for the quick response.
>>>>
>>>> I am using os x and so I would expect that petsc would be able to
>>>> use getrusage in the following lines of mem.c:
>>>>
>>>> 115: #elif defined(PETSC_HAVE_GETRUSAGE)
>>>> 116: getrusage(RUSAGE_SELF,&temp);
>>>>
>>>> Is this not the case?
>>>
>>> You can run in the debugger, put a break point at that line to
>>> verify it goes there and if it does check the values of temp after
>>> the call. (Sometimes Apple's docs are more optimistic than
>>> reality.)
>>>
>>> Barry
>>>
>>>>
>>>> Here is the link to apple's getrusage manual page
>>>> http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/10.7/man2/getrusage.2.html
>>>>
>>>> Quoting Barry Smith <bsmith at mcs.anl.gov>:
>>>>
>>>>>
>>>>> Colin,
>>>>>
>>>>> PetscMemoryGetCurrentUsage() and MaximumUsage() us calls to
>>>>> the underlying operating system to get how much memory the
>>>>> process is using, as such they will also include external
>>>>> package memory. Unfortunately it depends on the operating
>>>>> system providing this information and often it does not, this
>>>>> is why you get 0. If you are a hacker you could look at the
>>>>> source for PetscMemoryGetCurrentUsage() and see how to get the
>>>>> information for your OS and add it to this routine.
>>>>>
>>>>> Barry
>>>>>
>>>>>
>>>>>
>>>>> On May 22, 2013, at 6:31 PM, Colin McAuliffe
>>>>> <cjm2176 at columbia.edu> wrote:
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> When calling PetscMemoryGetCurrentUsage or
>>>>>> PetscMemoryGetMaximumUsage in a fortran code the memory usage
>>>>>> returned is always zero. Adding command line options such as
>>>>>> -malloc_log and -memory_info doesn't change this result. Is
>>>>>> there something else I'm missing? Also, will use of these two
>>>>>> functions give memory used by external packaged called by
>>>>>> petsc?
>>>>>>
>>>>>> All the best,
>>>>>> Colin
>>>>>>
>>>>>> --
>>>>>> Colin McAuliffe
>>>>>> PhD Candidate
>>>>>> Columbia University
>>>>>> Department of Civil Engineering and Engineering Mechanics
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Colin McAuliffe
>>>> PhD Candidate
>>>> Columbia University
>>>> Department of Civil Engineering and Engineering Mechanics
>>>
>>>
>>>
>>
>>
>>
>> --
>> Colin McAuliffe
>> PhD Candidate
>> Columbia University
>> Department of Civil Engineering and Engineering Mechanics
>
>
>
--
Colin McAuliffe
PhD Candidate
Columbia University
Department of Civil Engineering and Engineering Mechanics
More information about the petsc-users
mailing list