[petsc-users] proper Fortran usage for PetscMemoryGetMaximumUsage
Barry Smith
bsmith at mcs.anl.gov
Thu Jul 2 20:10:14 CDT 2015
> On Jul 2, 2015, at 7:03 PM, Anthony Paul Haas <aph at email.arizona.edu> wrote:
>
> Hi Barry,
>
> Here it is. Note that the options -memory_info and -malloc_log provide proper data but I wanted to monitor some operations more closely.
That's odd, they all use the same mechanism.
Run on one processor in the debugger use the PETSc command line option -start_in_debugger noxterm
then put a breakpoint in PetscMemoryGetMaximumUsage and see what the values are when it gets there.
Also run the same code with the option -memory_info maybe the PetscMemorySetGetMaximumUsage() isn't working, though it should,
Barry
>
> Thanks,
>
> Anthony
>
> On Thu, Jul 2, 2015 at 4:49 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
> It is PetscLogDouble which is an alias for real*8.
>
> Only certain systems give easy access to the memory usage. Send the file $PETSC_ARCH/include/petscconf.h and I'll check if yours is suppose to be able to.
>
> Barry
>
>
> > On Jul 2, 2015, at 4:51 PM, Anthony Paul Haas <aph at email.arizona.edu> wrote:
> >
> > Hi,
> >
> > Could you please tell me what is the proper Fortran usage for PetscMemoryGetMaximumUsage? Do I need to define mem (see below) as PetscInt or PetscLogDouble? I tried both and in both case I got zero memory for all the processes.
> >
> > I did:
> >
> > 1st try: PetscLogDouble mem
> > 2nd try: PetscInt mem
> >
> > call SlepcInitialize(PETSC_NULL_CHARACTER,ierr)
> >
> > call MPI_COMM_SIZE(MPI_COMM_WORLD,size,ierr)
> > call MPI_COMM_RANK(MPI_COMM_WORLD,rank,ierr)
> >
> > call PetscMemorySetGetMaximumUsage(ierr)
> >
> >
> > .... some code with allocate, MatCreate, MatsetValues,...
> >
> > call PetscMemoryGetMaximumUsage(mem,ierr)
> >
> > write(*,*)'On Processor',rank,'memory:',mem
> >
> >
> > Thanks,
> >
> > Anthony
>
>
> <petscconf.h>
More information about the petsc-users
mailing list