Does the MIS you use, use the numerical values in the matrix? Looking at the 
code it looks like not, while hem does seems to use them.

   But MatCreateGraph() seems to always get the numerical values, makes them 
positive and then scales them by the diagonal even when no filtering will be 
done. Can this be optimized out for no filtering and not HEM (for scalar 
matrices it looks like even the MatDuplicate() is not needed since it just 
processes a copy of the original matrix?)

   I think the current parallel symmetrization could be optimized especially 
when one doe not need numerical values. Probably can be done faster than 
MatTranspose() followed by MatMAXPY()

   The MIS also seems to slow down with multiple MPI ranks.

   These combine to make the total time to solution much slower in parallel 
than sequential for GAMG, while all the rest of GAMG gets good speedup. 

   Is there a parallel coarse grid point selector that would be faster and not 
have the parallel bottle necks that could be coded up relatively easily?

 Barry


> On Sep 18, 2022, at 4:21 PM, Mark Adams <mfad...@lbl.gov> wrote:
> 
> 
> 
> On Sun, Sep 18, 2022 at 4:02 PM Barry Smith <bsm...@petsc.dev 
> <mailto:bsm...@petsc.dev>> wrote:
> 
>   Mark,
> 
>    Do all MIS algorithms  in PETSc require a symmetric graph structure? And 
> parallel ones can hang if not structurally symmetric?
> 
> Yes,
>  
> 
>    When used sequentially I guess it never hangs but it may not produce a 
> "correct" MIS if the matrix structure is not symmetric?
> 
> It is fine in serial and it is not necessarily an MIS of the symmetrized 
> graph.
> If there is a one way edge between two vertices and the order of the greedy 
> MIS process picks the root of the edge it is an MIS of the symmetrized graph, 
> otherwise both vertices could get selected.
>  
> But like the MIS is fine for GAMG in this circumstance?
> 
> It will be fine for GAMG. The MIS is just a heuristic.
>  
> 
>   Barry
> 

Reply via email to