distributed-ranges
distributed-ranges copied to clipboard
mhp::distributed_mdarray
Summary
Created two-dimensional distributed matrix data structure.
Concepts
- A distributed_range is a forward_range with a segments that returns a range of remote_ranges.
- A remote_range is a forward_range with a rank stating which memory locale it is in.
Feature details
Implement distributed matrix data structure, which automatically distributes a dense matrix among multiple memory locales. It should provide
- Tile Partitioning - matrix automatically partitions a matrix into multiple tiles using a block cyclic distribution strategy that is customizable by the user by choosing either block or interleave on leading dimension.
- Each tile is a remote_range matrix view that can be viewed individually using the tile method.
- support halo exchange
- Matrix Access: that is elements of the dense matrix can be access globally using operator[], which returns a remote reference to the corresponding element.
- support an iterator interface, where the iterator iterates over every stored element of the matrix returning a tuple value holding the corresponding row and column index as well as scalar value.
Te structure needs to
- be tested and functional on MPI backend.
- support new Distributed Mdspan Algorithms: mdfor_each, mdfor_each_stencil, mdfor_each_tile
- support new Distributed Mdspan Views: mdsubspan