On Sat, Aug 29, 2020 at 3:24 PM Eda Oktay <eda.ok...@metu.edu.tr> wrote:
> Hi all, > > I am trying to partition a sparse matrix by using ParMETIS. I am > converting my matrix to adjacency type and then applying partitioning. > Default, I understood that partitioning doesn't use edge-weights. However, > when I used the following codes I saw from ex15 and used > "-test_use_edge_weights 1", I am getting the same results as when I don't > consider edge weights. > > PetscBool use_edge_weights=PETSC_FALSE; > > PetscOptionsGetBool(NULL,NULL,"-test_use_edge_weights",&use_edge_weights,NULL); > if (use_edge_weights) { > MatPartitioningSetUseEdgeWeights(part,use_edge_weights); > > MatPartitioningGetUseEdgeWeights(part,&use_edge_weights); > if (!use_edge_weights) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_ARG_INCOMP, > "use_edge_weights flag does not setup correctly \n"); > } > > My matrix does not consist of 1s and 0s, so I want partitioning to > consider all the nonzero elements in the matrix as edge weights. Don't > MatPartitioningSetUseEdgeWeights and MatPartitioningGetUseEdgeWeights do > that? Should I add something more? In the page > of MatPartitioningSetUseEdgeWeights, it is written that "If set > use_edge_weights to TRUE, users need to make sure legal edge weights are > stored in an ADJ matrix.". How can I make sure of this? > This is a question for the ParMetis list. My memory says that the weights need to be non-negative, and for their optimization algorithm to work, they should be small, say < 10. Thanks, Matt > I am trying to compare the use of ParMETIS with the spectral partitioning > algorithm when I used a weighted Laplacian. > > Thanks! > > Eda > > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>