[petsc-users] Debugging MatAssemblyEnd

Dominik Szczerba dominik at itis.ethz.ch
Fri Aug 26 03:37:45 CDT 2011


> When you run in the debugger and break after it has obviously hung, are all
> processes stopped at the same place?

Of course not, they are stuck at barriers elsewhere. Thanks for the
valuable question.

> If you see an error condition, you can
> run
> CHKMEMQ;
> MPI_Barrier(((PetscObject)A)->comm);
> MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY);
> MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY);
> If it hangs, check where every process is stuck.

I obviously seem to be missing some barriers. But why would I need
MPI_Barrier(((PetscObject)A)->comm) and not just
MPI_Barrier(PETSC_COMM_WORLD)? Would that only force a barrier for
A-related traffic?

Dominik


More information about the petsc-users mailing list