Zoltan2
Loading...
Searching...
No Matches
Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t > Class Template Reference

CoordinateModelInput Class that performs mapping between the coordinate partitioning result and mpi ranks base on the coordinate results and mpi physical coordinates. More...

#include <Zoltan2_TaskMapping.hpp>

Inheritance diagram for Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >:
Collaboration diagram for Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >:

Public Member Functions

 CoordinateCommunicationModel ()
virtual ~CoordinateCommunicationModel ()
 CoordinateCommunicationModel (int pcoord_dim_, pcoord_t **pcoords_, int tcoord_dim_, tcoord_t **tcoords_, part_t no_procs_, part_t no_tasks_, int *machine_extent_, bool *machine_extent_wrap_around_, const MachineRepresentation< pcoord_t, part_t > *machine_=NULL)
 Class Constructor:
void setPartArraySize (int psize)
void setPartArray (Kokkos::View< part_t *, Kokkos::HostSpace > pNo)
void getClosestSubset (part_t *proc_permutation, part_t nprocs, part_t ntasks) const
 Function is called whenever nprocs > no_task. Function returns only the subset of processors that are closest to each other.
virtual double getProcDistance (int procId1, int procId2) const
void update_visit_order (part_t *visitOrder, part_t n, int &_u_umpa_seed, part_t rndm)
virtual void getMapping (int myRank, const RCP< const Environment > &env, ArrayRCP< part_t > &rcp_proc_to_task_xadj, ArrayRCP< part_t > &rcp_proc_to_task_adj, ArrayRCP< part_t > &rcp_task_to_proc, const Teuchos::RCP< const Teuchos::Comm< int > > comm_) const
 Function is called whenever nprocs > no_task. Function returns only the subset of processors that are closest to each other.
Public Member Functions inherited from Zoltan2::CommunicationModel< part_t, pcoord_t, node_t >
 CommunicationModel ()
 CommunicationModel (part_t no_procs_, part_t no_tasks_)
virtual ~CommunicationModel ()
part_t getNProcs () const
part_t getNTasks () const
void calculateCommunicationCost (part_t *task_to_proc, part_t *task_communication_xadj, part_t *task_communication_adj, pcoord_t *task_communication_edge_weight)
double getCommunicationCostMetric ()

Static Public Member Functions

static part_t umpa_uRandom (part_t l, int &_u_umpa_seed)

Public Attributes

int proc_coord_dim
pcoord_t ** proc_coords
int task_coord_dim
tcoord_t ** task_coords
int partArraySize
Kokkos::View< part_t *, Kokkos::HostSpace > kokkos_partNoArray
int * machine_extent
bool * machine_extent_wrap_around
const MachineRepresentation< pcoord_t, part_t > * machine
int num_ranks_per_node
bool divide_to_prime_first
Public Attributes inherited from Zoltan2::CommunicationModel< part_t, pcoord_t, node_t >
part_t no_procs
part_t no_tasks

Additional Inherited Members

Protected Attributes inherited from Zoltan2::CommunicationModel< part_t, pcoord_t, node_t >
double commCost

Detailed Description

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
class Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >

CoordinateModelInput Class that performs mapping between the coordinate partitioning result and mpi ranks base on the coordinate results and mpi physical coordinates.

Definition at line 1029 of file Zoltan2_TaskMapping.hpp.

Constructor & Destructor Documentation

◆ CoordinateCommunicationModel() [1/2]

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::CoordinateCommunicationModel ( )
inline

Definition at line 1057 of file Zoltan2_TaskMapping.hpp.

◆ ~CoordinateCommunicationModel()

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
virtual Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::~CoordinateCommunicationModel ( )
inlinevirtual

Definition at line 1070 of file Zoltan2_TaskMapping.hpp.

◆ CoordinateCommunicationModel() [2/2]

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::CoordinateCommunicationModel ( int pcoord_dim_,
pcoord_t ** pcoords_,
int tcoord_dim_,
tcoord_t ** tcoords_,
part_t no_procs_,
part_t no_tasks_,
int * machine_extent_,
bool * machine_extent_wrap_around_,
const MachineRepresentation< pcoord_t, part_t > * machine_ = NULL )
inline

Class Constructor:

Parameters
pcoord_dim_the dimension of the processors
pcoords_the processor coordinates. allocated outside of the class.
tcoord_dim_dimension of the tasks coordinates.
tcoords_the task coordinates allocated outside of the class.
no_procs_the number of processors
no_tasks_the number of taks.

Definition at line 1082 of file Zoltan2_TaskMapping.hpp.

Member Function Documentation

◆ setPartArraySize()

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
void Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::setPartArraySize ( int psize)
inline

Definition at line 1105 of file Zoltan2_TaskMapping.hpp.

◆ setPartArray()

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
void Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::setPartArray ( Kokkos::View< part_t *, Kokkos::HostSpace > pNo)
inline

Definition at line 1109 of file Zoltan2_TaskMapping.hpp.

◆ getClosestSubset()

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
void Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::getClosestSubset ( part_t * proc_permutation,
part_t nprocs,
part_t ntasks ) const
inline

Function is called whenever nprocs > no_task. Function returns only the subset of processors that are closest to each other.

Parameters
proc_permutationholds the indices of the processors that are chosen.
nprocsthe number of processors.
ntasksthe number of taks.

Definition at line 1120 of file Zoltan2_TaskMapping.hpp.

◆ umpa_uRandom()

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
part_t Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::umpa_uRandom ( part_t l,
int & _u_umpa_seed )
inlinestatic

Definition at line 1150 of file Zoltan2_TaskMapping.hpp.

◆ getProcDistance()

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
virtual double Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::getProcDistance ( int procId1,
int procId2 ) const
inlinevirtual

◆ update_visit_order()

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
void Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::update_visit_order ( part_t * visitOrder,
part_t n,
int & _u_umpa_seed,
part_t rndm )
inline

Definition at line 1195 of file Zoltan2_TaskMapping.hpp.

◆ getMapping()

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
virtual void Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::getMapping ( int myRank,
const RCP< const Environment > & env,
ArrayRCP< part_t > & rcp_proc_to_task_xadj,
ArrayRCP< part_t > & rcp_proc_to_task_adj,
ArrayRCP< part_t > & rcp_task_to_proc,
const Teuchos::RCP< const Teuchos::Comm< int > > comm_ ) const
inlinevirtual

Function is called whenever nprocs > no_task. Function returns only the subset of processors that are closest to each other.

Parameters
proc_to_task_xadjholds the pointer to the task array
proc_to_task_xadjholds the indices of tasks wrt to proc_to_task_xadj array.
task_to_procholds the processors mapped to tasks.

Implements Zoltan2::CommunicationModel< part_t, pcoord_t, node_t >.

Definition at line 1244 of file Zoltan2_TaskMapping.hpp.

Member Data Documentation

◆ proc_coord_dim

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
int Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::proc_coord_dim

Definition at line 1035 of file Zoltan2_TaskMapping.hpp.

◆ proc_coords

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
pcoord_t** Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::proc_coords

Definition at line 1037 of file Zoltan2_TaskMapping.hpp.

◆ task_coord_dim

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
int Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::task_coord_dim

Definition at line 1039 of file Zoltan2_TaskMapping.hpp.

◆ task_coords

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
tcoord_t** Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::task_coords

Definition at line 1041 of file Zoltan2_TaskMapping.hpp.

◆ partArraySize

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
int Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::partArraySize

Definition at line 1045 of file Zoltan2_TaskMapping.hpp.

◆ kokkos_partNoArray

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
Kokkos::View<part_t *, Kokkos::HostSpace> Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::kokkos_partNoArray

Definition at line 1047 of file Zoltan2_TaskMapping.hpp.

◆ machine_extent

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
int* Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::machine_extent

Definition at line 1049 of file Zoltan2_TaskMapping.hpp.

◆ machine_extent_wrap_around

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
bool* Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::machine_extent_wrap_around

Definition at line 1050 of file Zoltan2_TaskMapping.hpp.

◆ machine

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
const MachineRepresentation<pcoord_t,part_t>* Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::machine

Definition at line 1051 of file Zoltan2_TaskMapping.hpp.

◆ num_ranks_per_node

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
int Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::num_ranks_per_node

Definition at line 1053 of file Zoltan2_TaskMapping.hpp.

◆ divide_to_prime_first

template<typename pcoord_t, typename tcoord_t, typename part_t, typename node_t>
bool Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t, node_t >::divide_to_prime_first

Definition at line 1054 of file Zoltan2_TaskMapping.hpp.


The documentation for this class was generated from the following file: