[petsc-users] Memory logging in fortran

Colin McAuliffe cjm2176 at columbia.edu
Wed May 22 20:32:23 CDT 2013


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?

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


More information about the petsc-users mailing list