Zoltan2
|
Zoltan2_Directory is an abstract base class. More...
#include <Zoltan2_Directory.hpp>
Public Types | |
enum | Update_Mode { Replace = 0 , Add , Aggregate , AggregateAdd } |
Update_Mode determines how update executes. More... | |
Public Member Functions | |
Zoltan2_Directory (Teuchos::RCP< const Teuchos::Comm< int > > comm_, bool use_lid_, int debug_level_) | |
Construct Zoltan2_Directory (abstract class). | |
virtual | ~Zoltan2_Directory () |
Destructor currently does nothing. | |
int | update (size_t length, const gid_t *gid, const lid_t *lid, const user_t *user, const int *partition, Update_Mode update_mode) |
update is called by user to submit new data. | |
int | find (size_t length, const gid_t *gid, lid_t *lid, user_t *user, int *partition, int *owner, bool throw_if_missing=true) |
Can be Replace, Add, or Aggregate. | |
int | remove (size_t length, const gid_t *gid) |
if true will throw if a gid is not found. This is used by the unit tests to properly assess if remove has worked. | |
int | print () const |
gids to remove. | |
void | stats () const |
stats. New Kokkos mode needs further development. | |
bool | is_use_lid () const |
returns true if the directory is handling local ids. | |
void | get_locally_managed_gids (std::vector< gid_t > &local_gids) const |
void | remap_user_data_as_unique_gids () |
size_t | node_map_size () const |
Protected Types | |
typedef Kokkos::UnorderedMap< gid_t, Zoltan2_Directory_Node< gid_t, lid_t, user_t >, Kokkos::HostSpace > | node_map_t |
Protected Member Functions | |
int | update_local (gid_t *gid, lid_t *lid, user_t *user, int partition, int owner) |
int | find_local (gid_t *gid, lid_t *lid, user_t *user, int *partition, int *owner, bool throw_if_missing=true) const |
int | remove_local (gid_t *gid) |
void | allocate () |
int | copy (const Zoltan2_Directory< gid_t, lid_t, user_t > &dd) |
unsigned int | hash_proc (const gid_t &gid) const |
virtual bool | is_Zoltan2_Directory_Vector () const |
virtual void | update_local_user (const user_t *pRaw, user_t &dst) |
virtual void | user_to_raw (const user_t &src, user_t *pRaw) const |
virtual void | raw_to_user (const user_t *pRaw, user_t &dst) const |
virtual size_t | size_of_value_type () const |
virtual size_t | get_update_msg_size (const user_t &data) const |
virtual size_t | get_update_msg_size (const user_t *pRaw) const |
virtual size_t | get_local_find_msg_size (gid_t *gid, bool throw_if_missing=true) const |
virtual size_t | get_incoming_find_msg_size (Zoltan2_DD_Find_Msg< gid_t, lid_t > *msg) const |
Protected Attributes | |
size_t | find_msg_size |
size_t | update_msg_size |
size_t | remove_msg_size |
node_map_t | node_map |
Teuchos::RCP< const Teuchos::Comm< int > > | comm |
bool | use_lid |
int | debug_level |
size_t | max_id_size |
Update_Mode | mode |
Zoltan2_Directory is an abstract base class.
The user will implement Zoltan2_Directory_Simple or Zoltan2_Directory_Vector in the current form and this class provides all the shared methods.
Definition at line 125 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 256 of file Zoltan2_Directory.hpp.
enum Zoltan2::Zoltan2_Directory::Update_Mode |
Update_Mode determines how update executes.
Definition at line 128 of file Zoltan2_Directory.hpp.
|
inline |
Construct Zoltan2_Directory (abstract class).
comm_ | Teuchos comm provided by user. |
use_lid_ | are local IDs being submitted and read. |
debug_level_ | debug level controls output |
Definition at line 143 of file Zoltan2_Directory.hpp.
|
inlinevirtual |
Destructor currently does nothing.
Definition at line 154 of file Zoltan2_Directory.hpp.
int Zoltan2::Zoltan2_Directory< gid_t, lid_t, user_t >::update | ( | size_t | length, |
const gid_t * | gid, | ||
const lid_t * | lid, | ||
const user_t * | user, | ||
const int * | partition, | ||
Update_Mode | update_mode | ||
) |
update is called by user to submit new data.
lid | gids being updated. |
user | lids if used. |
partition | user data if used. |
update_mode | partition data if used. |
Definition at line 163 of file Zoltan2_Directory_Impl.hpp.
int Zoltan2::Zoltan2_Directory< gid_t, lid_t, user_t >::find | ( | size_t | length, |
const gid_t * | gid, | ||
lid_t * | lid, | ||
user_t * | user, | ||
int * | partition, | ||
int * | owner, | ||
bool | throw_if_missing = true |
||
) |
Can be Replace, Add, or Aggregate.
find is called by user to get data back from directory.
lid | gids to find. |
user | lids to find if being used. |
partition | user data to find if being used. |
owner | partition data to find if used. |
throw_if_missing | owner data to find if used. |
Definition at line 568 of file Zoltan2_Directory_Impl.hpp.
int Zoltan2::Zoltan2_Directory< gid_t, lid_t, user_t >::remove | ( | size_t | length, |
const gid_t * | gid | ||
) |
if true will throw if a gid is not found. This is used by the unit tests to properly assess if remove has worked.
remove eliminates these gids from the directory .
Definition at line 950 of file Zoltan2_Directory_Impl.hpp.
int Zoltan2::Zoltan2_Directory< gid_t, lid_t, user_t >::print |
gids to remove.
print output. New Kokkos mode needs further development.
Definition at line 887 of file Zoltan2_Directory_Impl.hpp.
void Zoltan2::Zoltan2_Directory< gid_t, lid_t, user_t >::stats |
stats. New Kokkos mode needs further development.
Definition at line 931 of file Zoltan2_Directory_Impl.hpp.
|
inline |
returns true if the directory is handling local ids.
Definition at line 190 of file Zoltan2_Directory.hpp.
|
inline |
Definition at line 192 of file Zoltan2_Directory.hpp.
|
inline |
Definition at line 210 of file Zoltan2_Directory.hpp.
|
inline |
Definition at line 232 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 418 of file Zoltan2_Directory_Impl.hpp.
|
protected |
Definition at line 821 of file Zoltan2_Directory_Impl.hpp.
|
protected |
Definition at line 1051 of file Zoltan2_Directory_Impl.hpp.
|
protected |
Definition at line 81 of file Zoltan2_Directory_Impl.hpp.
|
protected |
Definition at line 156 of file Zoltan2_Directory_Impl.hpp.
|
protected |
Definition at line 1079 of file Zoltan2_Directory_Impl.hpp.
|
inlineprotectedvirtual |
Reimplemented in Zoltan2::Zoltan2_Directory_Simple< gid_t, lid_t, user_t >, and Zoltan2::Zoltan2_Directory_Vector< gid_t, lid_t, user_t >.
Definition at line 288 of file Zoltan2_Directory.hpp.
|
inlineprotectedvirtual |
Reimplemented in Zoltan2::Zoltan2_Directory_Simple< gid_t, lid_t, user_t >, and Zoltan2::Zoltan2_Directory_Vector< gid_t, lid_t, user_t >.
Definition at line 289 of file Zoltan2_Directory.hpp.
|
inlineprotectedvirtual |
Reimplemented in Zoltan2::Zoltan2_Directory_Simple< gid_t, lid_t, user_t >, and Zoltan2::Zoltan2_Directory_Vector< gid_t, lid_t, user_t >.
Definition at line 290 of file Zoltan2_Directory.hpp.
|
inlineprotectedvirtual |
Reimplemented in Zoltan2::Zoltan2_Directory_Simple< gid_t, lid_t, user_t >, and Zoltan2::Zoltan2_Directory_Vector< gid_t, lid_t, user_t >.
Definition at line 291 of file Zoltan2_Directory.hpp.
|
inlineprotectedvirtual |
Reimplemented in Zoltan2::Zoltan2_Directory_Simple< gid_t, lid_t, user_t >, and Zoltan2::Zoltan2_Directory_Vector< gid_t, lid_t, user_t >.
Definition at line 292 of file Zoltan2_Directory.hpp.
|
inlineprotectedvirtual |
Reimplemented in Zoltan2::Zoltan2_Directory_Simple< gid_t, lid_t, user_t >, and Zoltan2::Zoltan2_Directory_Vector< gid_t, lid_t, user_t >.
Definition at line 293 of file Zoltan2_Directory.hpp.
|
inlineprotectedvirtual |
Reimplemented in Zoltan2::Zoltan2_Directory_Simple< gid_t, lid_t, user_t >, and Zoltan2::Zoltan2_Directory_Vector< gid_t, lid_t, user_t >.
Definition at line 294 of file Zoltan2_Directory.hpp.
|
inlineprotectedvirtual |
Reimplemented in Zoltan2::Zoltan2_Directory_Simple< gid_t, lid_t, user_t >, and Zoltan2::Zoltan2_Directory_Vector< gid_t, lid_t, user_t >.
Definition at line 295 of file Zoltan2_Directory.hpp.
|
inlineprotectedvirtual |
Reimplemented in Zoltan2::Zoltan2_Directory_Simple< gid_t, lid_t, user_t >, and Zoltan2::Zoltan2_Directory_Vector< gid_t, lid_t, user_t >.
Definition at line 297 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 249 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 250 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 251 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 257 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 273 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 275 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 276 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 278 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 279 of file Zoltan2_Directory.hpp.