Typo: I mean “Assuming initializer is only needed once for entire session”
On Saturday, June 20, 2020, Sam Guo <[email protected]> wrote: > Assuming finalizer is only needed once for entire session(?), I can put > initializer into the static block to call it once but where do I call > finalizer? > > > On Saturday, June 20, 2020, Junchao Zhang <[email protected]> wrote: > >> The counter num_attr should be recycled. But first try to call PETSc >> initialize/Finalize only once to see it fixes the error. >> --Junchao Zhang >> >> >> On Sat, Jun 20, 2020 at 12:48 AM Sam Guo <[email protected]> wrote: >> >>> To clarify, I call PETSc initialize and PETSc finalize everytime I call >>> SLEPc: >>> >>> PetscInitializeNoPointers(argc,args,nullptr,nullptr); >>> >>> SlepcInitialize(&argc,&args,static_cast<char*>(nullptr),help); >>> >>> //calling slepc >>> >>> SlepcFinalize(); >>> >>> PetscFinalize(); >>> >>> >>> >>> On Fri, Jun 19, 2020 at 10:32 PM Sam Guo <[email protected]> wrote: >>> >>>> Dear PETSc team, >>>> When I called SLEPc multiple time, I eventually got following error: >>>> >>>> MPI operation not supported by PETSc's sequential MPI wrappers >>>> [0]PETSC ERROR: #1 PetscInitialize() line 967 in >>>> ../../../petsc/src/sys/objects/pinit.c >>>> [0]PETSC ERROR: #2 SlepcInitialize() line 262 in >>>> ../../../slepc/src/sys/slepcinit.c >>>> [0]PETSC ERROR: #3 SlepcInitializeNoPointers() line 359 in >>>> ../../../slepc/src/sys/slepcinit.c >>>> PETSC ERROR: Logging has not been enabled. >>>> You might have forgotten to call PetscInitialize(). >>>> >>>> I debugged: it is because of following in petsc/src/sys/mpiuni/mpi.c >>>> >>>> if (num_attr >= MAX_ATTR) >>>> >>>> in function int MPI_Comm_create_keyval(MPI_Copy_function >>>> *copy_fn,MPI_Delete_function *delete_fn,int *keyval,void *extra_state) >>>> >>>> num_attr is declared static and keeps increasing every >>>> time MPI_Comm_create_keyval is called. >>>> >>>> I am using petsc 3.11.3 but found 3.13.2 has the same logic. >>>> >>>> Is this a bug or I didn't use it correctly? >>>> >>>> Thanks, >>>> Sam >>>> >>>
