MueLu: uncoupled aggregation refactor
Created by: lucbv
This pull request is providing a refactor of the uncoupled aggregation algorithms to leverage kokkos capabilities as well as the work done on distance 2 graph coloring.
@trilinos/muelu
Description
The interface of aggregation algorithms now requires the number of colors and color assignment from the distance 2 coloring graph algorithm as input.
At the moment the coloring algorithm is called in phase 1 of aggregation but this will be moved to the UncoupledAggregationFactory.
Another item to be modified is the aggStat vector that is created as an std::vector<unsigned>
in UncoupledAggregationFactory
Motivation and Context
This provides an implementation of the uncoupled aggregation algorithms that is architecture portable and that should improve performance on manycore/GPU machines.
Related Issues
How Has This Been Tested?
muelu/test/scaling/Driver.cpp
is modified within this pull request and is used as the primary vehicle for tests but more tests needs to be added since the driver will return to its normal form upon merge of this pull request.
Checklist
-
My commit messages mention the appropriate GitHub issue numbers. -
My code follows the code style of the affected package(s). -
My change requires a change to the documentation. -
I have updated the documentation accordingly. -
I have read the code contribution guidelines for this project. -
I have added tests to cover my changes. -
All new and existing tests passed. -
No new compiler warnings were introduced. -
These changes break backwards compatibility.