PetscStackCall() and CHKMEMQ
1 Apr
2013
1 Apr
'13
11:01 a.m.
Many uses of PetscStackCall() are O(1) calls per iteration or communication, thus I think acceptable in debug mode. But some of them are called O(n) times, such as in gamg/agg.c: /* QR */ ierr = PetscFPTrapPush(PETSC_FP_TRAP_OFF);CHKERRQ(ierr); PetscStackCall("LAPACKgeqrf",LAPACKgeqrf_(&Mdata, &N, qqc, &LDA, TAU, WORK, &LWORK, &INFO)); ierr = PetscFPTrapPop();CHKERRQ(ierr); PetscStackCall("LAPACKgeqrf",LAPACKgeqrf_(&Mdata, &N, qqc, &LDA, TAU, WORK, &LWORK, &INFO)); and in blockinvert.h. Presumably we need two versions of PetscCallStack, one that is used to call "safe" functions or those that are only called O(1) times, and one that is used to call "unsafe" or performance-sensitive functions.
4879
Age (days ago)
4879
Last active (days ago)
0 comments
1 participants
participants (1)
-
Jed Brown