[petsc-users] Error with PETSc logging

Matthew Knepley knepley at gmail.com
Mon Oct 8 17:19:21 CDT 2012


Then it was done wrong. There are lots of examples that do this

  Matt
On Oct 8, 2012 4:44 PM, "TAY wee-beng" <zonexo at gmail.com> wrote:

>
>  On 8/10/2012 11:39 PM, Matthew Knepley wrote:
>
> Register the stages outside the time loop.
>
>    Matt
>
>
> Hi Matt,
>
> I did that in my 2nd attempt (as in the org email), but it only shows 1
> main stage in the end:
>
> I changed my code to only call PetscLogStageRegister once:
>
> *PetscLogStage  stages(2)**
> **
> **call PetscLogStageRegister("momentum_eqn",stages(1),ierr)**
> **
> ** call PetscLogStageRegister("poisson_eqn",stages(2),ierr)**
> * *
> ** do time = 1,n**
> **     **
> **     ...**
> * *
> **     call PetscLogStagePush(stages(1),ierr)**
> * *
> **     stage 1 logging**
> * *
> **     call PetscLogStagePop(ierr)**
> * *
> **    **...**
> * *
> **     call PetscLogStagePush(stages(2),ierr)**
> * *
> **     stage 2 logging**
> * *
> **     call PetscLogStagePop(ierr)**
> * *
> ** end do*
>
>
> On Mon, Oct 8, 2012 at 10:19 AM, TAY wee-beng <zonexo at gmail.com> wrote:
>
>>  Hi,
>>
>> I am trying to log my PETSc performance in stages.
>>
>> I initially used:
>>
>> *PetscLogStage  stages(2)**
>> **
>> **do time = 1,n**
>> **    **
>> **    ...**
>> **
>> **    call PetscLogStageRegister("momentum_eqn",stages(1),ierr)**
>> **
>> **    call PetscLogStagePush(stages(1),ierr)**
>> **
>> **    stage 1 logging**
>> **
>> **    call PetscLogStagePop(ierr)**
>> **
>> **    ...**
>> **
>> **    call PetscLogStageRegister("poisson_eqn",stages(2),ierr)**
>> **
>> **    call PetscLogStagePush(stages(2),ierr)**
>> **
>> **    stage 2 logging**
>> **
>> **    call PetscLogStagePop(ierr)**
>> **
>> **end do*
>>
>>
>> The log_summary shows that results in stages 1 and 2, but I also get the
>> error:
>>
>> Invalid argument!
>> [1]PETSC ERROR: Duplicate stage name given: poisson_eqn!
>>
>> I changed my code to only call PetscLogStageRegister once:
>>
>> *PetscLogStage  stages(2)**
>> **
>> **call PetscLogStageRegister("momentum_eqn",stages(1),ierr)**
>> **
>> ** call PetscLogStageRegister("poisson_eqn",stages(2),ierr)**
>> * *
>> ** do time = 1,n**
>> **     **
>> **     ...**
>> * *
>> **     call PetscLogStagePush(stages(1),ierr)**
>> * *
>> **     stage 1 logging**
>> * *
>> **     call PetscLogStagePop(ierr)**
>> * *
>> **    **...**
>> * *
>> **     call PetscLogStagePush(stages(2),ierr)**
>> * *
>> **     stage 2 logging**
>> * *
>> **     call PetscLogStagePop(ierr)**
>> * *
>> ** end do*
>>
>> Now there's no error but all logging are now grouped together into just 1
>> main stage.
>>
>> How can I correct it to have separate logging? Tks!
>>
>> --
>> Yours sincerely,
>>
>> TAY wee-beng
>>
>>
>
>
>  --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> -- Norbert Wiener
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20121008/a5f8426c/attachment-0001.html>


More information about the petsc-users mailing list