The library is thread safe and its functions can be called from multiple host threads, even with the same handle. When multiple threads share the same handle,
extreme care needs to be taken when the handle configuration is changed because that change will affect potentially subsequent cuBLAS calls in all threads.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
It is even more true for the destruction of the handle. So it is not recommended that multiple thread share the same cuBLAS handle.
From my reading of this there should be absolutely no issue. The handle configuration is never being changed. It should be set in PetscInitialize() and destroyed in PetscFinalize(). Since lazy configuration of cuBLAS is turned off (right?).