PETSc wrappers and CPU test infrastructure, as well as MPI support for multuiGPU