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 88 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 219 of file Zoltan2_Directory.hpp.
enum Zoltan2::Zoltan2_Directory::Update_Mode |
Update_Mode determines how update executes.
Definition at line 91 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 106 of file Zoltan2_Directory.hpp.
|
inlinevirtual |
Destructor currently does nothing.
Definition at line 117 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 126 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 531 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 913 of file Zoltan2_Directory_Impl.hpp.
int Zoltan2::Zoltan2_Directory< gid_t, lid_t, user_t >::print | ( | ) | const |
gids to remove.
print output. New Kokkos mode needs further development.
Definition at line 850 of file Zoltan2_Directory_Impl.hpp.
void Zoltan2::Zoltan2_Directory< gid_t, lid_t, user_t >::stats | ( | ) | const |
stats. New Kokkos mode needs further development.
Definition at line 894 of file Zoltan2_Directory_Impl.hpp.
|
inline |
returns true if the directory is handling local ids.
Definition at line 153 of file Zoltan2_Directory.hpp.
|
inline |
Definition at line 155 of file Zoltan2_Directory.hpp.
|
inline |
Definition at line 173 of file Zoltan2_Directory.hpp.
|
inline |
Definition at line 195 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 381 of file Zoltan2_Directory_Impl.hpp.
|
protected |
Definition at line 784 of file Zoltan2_Directory_Impl.hpp.
|
protected |
Definition at line 1014 of file Zoltan2_Directory_Impl.hpp.
|
protected |
Definition at line 44 of file Zoltan2_Directory_Impl.hpp.
|
protected |
Definition at line 119 of file Zoltan2_Directory_Impl.hpp.
|
protected |
Definition at line 1042 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 251 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 252 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 253 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 254 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 255 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 256 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 257 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 258 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 260 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 212 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 213 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 214 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 220 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 236 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 238 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 239 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 241 of file Zoltan2_Directory.hpp.
|
protected |
Definition at line 242 of file Zoltan2_Directory.hpp.