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 >> >
