[petsc-users] A quick question on 'un-symmetric graph'

Mark F. Adams mark.adams at columbia.edu
Sat Jan 5 22:19:29 CST 2013


> 
> This is a symmetric graph, but not a symmetric matrix, though the asymmetry is only due to boundary conditions (boundary rows have only a diagonal nonzero; the other zeros are still stored explicitly). Do you have a preference about how this is handled? (I don't think we should need extra options to handle this extremely common case.)
> 

If the graph is symmetric then the only problem is that after thresholding the graph can be unsymmetric if the values are not symmetric.

So the solution is to:
[0]PETSC ERROR: Have un-symmetric graph (apparently). Use 
'-pc_gamg_sym_graph true' to symetrize the graph or '-pc_gamg_threshold 
0.0' if the matrix is structurally symmetric.!
There is no simple way to make fix this, that I can think of.  If I threshold I need to have the transpose data to threshold symmetrically and if the graph is not symmetric then the MIS algorithm would need to be reworked.   The best way that I can think of to rework MIS is to symmetrize the graph, which puts us back to where we started.

As the user noticed, this is not a problem is serial and it can often work in small scale parallel, but it gets you eventually.

symetrizing the graph is not that expensive (compared to the rest of setup) -- we could make '-pc_gamg_sym_graph true' the default … I'm thinking this is a good idea.  Better to be robust  and deal with optimizing for users that can not amortize setup.

 


More information about the petsc-users mailing list