![]() |
Ginkgo Generated from branch based on master. Ginkgo version 1.8.0
A numerical linear algebra library targeting many-core architectures
|
This class defines mappings between global and local indices. More...
#include <ginkgo/core/distributed/index_map.hpp>
Public Types | |
using | partition_type = Partition<LocalIndexType, GlobalIndexType> |
Public Member Functions | |
array< LocalIndexType > | map_to_local (const array< GlobalIndexType > &global_ids, index_space index_space_v) const |
Maps global indices to local indices. | |
size_type | get_global_size () const |
get size of index_space::local | |
size_type | get_local_size () const |
get size of index_space::local | |
size_type | get_non_local_size () const |
get size of index_space::non_local | |
index_map (std::shared_ptr< const Executor > exec, std::shared_ptr< const partition_type > partition, comm_index_type rank, const array< GlobalIndexType > &recv_connections) | |
Creates a new index map. | |
index_map (std::shared_ptr< const Executor > exec) | |
Creates an empty index map. | |
const segmented_array< GlobalIndexType > & | get_remote_global_idxs () const |
get the index set ![]() | |
const segmented_array< LocalIndexType > & | get_remote_local_idxs () const |
get the index set ![]() | |
const array< comm_index_type > & | get_remote_target_ids () const |
get the rank ids which contain indices accessed by this rank. | |
std::shared_ptr< const Executor > | get_executor () const |
get the associated executor. | |
index_map (const index_map &other) | |
index_map (index_map &&other) noexcept | |
index_map & | operator= (const index_map &other) |
index_map & | operator= (index_map &&other) |
This class defines mappings between global and local indices.
Given an index space
The required map can be selected by passing the appropriate type of an index_space.
The index map for map_to_local
map that is not part of the specified index space, will be mapped to an invalid_index.
LocalIndexType | type for local indices |
GlobalIndexType | type for global indices |
gko::experimental::distributed::index_map< LocalIndexType, GlobalIndexType >::index_map | ( | std::shared_ptr< const Executor > | exec, |
std::shared_ptr< const partition_type > | partition, | ||
comm_index_type | rank, | ||
const array< GlobalIndexType > & | recv_connections ) |
Creates a new index map.
The passed in recv_connections may contain duplicates, which will be filtered out.
exec | the executor |
partition | the partition of the global index set |
rank | the id of the global index space subset |
recv_connections | the global indices that are not owned by this rank, but accessed by it |
const segmented_array< GlobalIndexType > & gko::experimental::distributed::index_map< LocalIndexType, GlobalIndexType >::get_remote_global_idxs | ( | ) | const |
get the index set
The indices are ordered by their owning rank and global index.
const segmented_array< LocalIndexType > & gko::experimental::distributed::index_map< LocalIndexType, GlobalIndexType >::get_remote_local_idxs | ( | ) | const |
get the index set
The indices are grouped by their owning rank and sorted according to their global index within each group.
The set
const array< comm_index_type > & gko::experimental::distributed::index_map< LocalIndexType, GlobalIndexType >::get_remote_target_ids | ( | ) | const |
get the rank ids which contain indices accessed by this rank.
The order matches the order of the sets in get_remote_global_idxs and get_remote_local_idxs.
array< LocalIndexType > gko::experimental::distributed::index_map< LocalIndexType, GlobalIndexType >::map_to_local | ( | const array< GlobalIndexType > & | global_ids, |
index_space | index_space_v ) const |
Maps global indices to local indices.
global_ids | the global indices to map |
index_space_v | the index space in which the returned local indices are defined |