are all matrix values locally inserted?
We can save some time (especially with large number of processes) when we know in advance if each process will insert values only for the "owned" rows in parallel, i.e. rows in [rstart,rend), with MatGetOwnershipRange(mat,&rstart,&rend).
If we knew this, we can specify MatSetOption(mat,MAT_NO_OFFPROC_ENTRIES) and skip one allreduce + rendezvous during the assembly process
Is there a way to assess this programmatically? or we can add a dictionary entry to let the user request this optimization.