ginkgo-project / ginkgo

Numerical linear algebra software package
https://ginkgo-project.github.io/
BSD 3-Clause "New" or "Revised" License
401 stars 88 forks source link

Adds sparse communicator class #1546

Closed MarcelKoch closed 5 months ago

MarcelKoch commented 7 months ago

Based on #1544

This PR adds a class that handles the communication of a local vector. It uses the neigborhood non-blocking all-to-all for this. The sparse comm is constructed from an index_map.

In another PR this will be used in the distributed matrix.

Note: This uses C++17 to use type-erasure for the sparse_communicator.

PR Stack:

MarcelKoch commented 7 months ago

@upsj I think this PR might be a good opportunity to discuss your distributed::RowGather idea. In principle this class is already that, but not in the lin-op hierarchy.

MarcelKoch commented 6 months ago

@pratikvn you are right, the class mixes a few responsibilities. I will split it up into one class that handles the all-to-all communication and another one which does the distributed row gather.

MarcelKoch commented 5 months ago

This is superseded by #1588 and #1589