Actual source code: PLogEvent.c


  2: #include <petscsys.h>
  3: #include <petsctime.h>

  5: int main(int argc,char **argv)
  6: {
  7:   PetscLogDouble x,y;
  8:   PetscLogEvent  e1;
  9:   PetscBool      flg;

 11:   PetscInitialize(&argc,&argv,0,0);
 12:   PetscLogEventRegister("*DummyEvent",0,&e1);
 13:   /* To take care of the paging effects */
 14:   PetscTime(&x);
 15:   PetscLogEventBegin(e1,&x,0,0,0);
 16:   PetscLogEventEnd(e1,&x,0,0,0);

 18:   PetscTime(&x);
 19:   /* 10 Occurrences of the dummy event */
 20:   PetscLogEventBegin(e1,&x,0,0,0);
 21:   PetscLogEventEnd(e1,&x,0,0,0);
 22:   PetscLogEventBegin(e1,&x,&y,0,0);
 23:   PetscLogEventEnd(e1,&x,&y,0,0);
 24:   PetscLogEventBegin(e1,&y,0,0,0);
 25:   PetscLogEventEnd(e1,&y,0,0,0);
 26:   PetscLogEventBegin(e1,&x,0,0,0);
 27:   PetscLogEventEnd(e1,&x,0,0,0);
 28:   PetscLogEventBegin(e1,&x,&y,0,0);
 29:   PetscLogEventEnd(e1,&x,&y,0,0);
 30:   PetscLogEventBegin(e1,&y,0,0,0);
 31:   PetscLogEventEnd(e1,&y,0,0,0);
 32:   PetscLogEventBegin(e1,&x,0,0,0);
 33:   PetscLogEventEnd(e1,&x,0,0,0);
 34:   PetscLogEventBegin(e1,&x,&y,0,0);
 35:   PetscLogEventEnd(e1,&x,&y,0,0);
 36:   PetscLogEventBegin(e1,&y,0,0,0);
 37:   PetscLogEventEnd(e1,&y,0,0,0);
 38:   PetscLogEventBegin(e1,&x,&e1,0,0);
 39:   PetscLogEventEnd(e1,&x,&e1,0,0);

 41:   PetscTime(&y);
 42:   fprintf(stderr,"%-15s : %e sec, with options : ","PetscLogEvent",(y-x)/10.0);

 44:   PetscOptionsHasName(NULL,"-log",&flg);
 45:   if (flg) fprintf(stderr,"-log ");
 46:   PetscOptionsHasName(NULL,"-log_all",&flg);
 47:   if (flg) fprintf(stderr,"-log_all ");
 48:   PetscOptionsHasName(NULL,"-log_view",&flg);
 49:   if (flg) fprintf(stderr,"-log_view ");
 50:   PetscOptionsHasName(NULL,"-log_mpe",&flg);
 51:   if (flg) fprintf(stderr,"-log_mpe ");

 53:   fprintf(stderr,"\n");

 55:   PetscFinalize();
 56:   return 0;
 57: }