Zoltan2
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Attributes
Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_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 >:
Inheritance graph
[legend]
Collaboration diagram for Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t >:
Collaboration graph
[legend]

List of all members.

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_)
 Class Constructor:
void setPartArraySize (int psize)
void setPartArray (part_t *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, 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
 Function is called whenever nprocs > no_task. Function returns only the subset of processors that are closest to each other.
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
part_tpartNoArray
part_t no_procs
part_t no_tasks

Protected Attributes

double commCost

Detailed Description

template<typename pcoord_t, typename tcoord_t, typename part_t>
class Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_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 679 of file Zoltan2_TaskMapping.hpp.


Constructor & Destructor Documentation

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

Definition at line 690 of file Zoltan2_TaskMapping.hpp.

template<typename pcoord_t, typename tcoord_t, typename part_t>
virtual Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t >::~CoordinateCommunicationModel ( ) [inline, virtual]

Definition at line 699 of file Zoltan2_TaskMapping.hpp.

template<typename pcoord_t, typename tcoord_t, typename part_t>
Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t >::CoordinateCommunicationModel ( int  pcoord_dim_,
pcoord_t **  pcoords_,
int  tcoord_dim_,
tcoord_t **  tcoords_,
part_t  no_procs_,
part_t  no_tasks_ 
) [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 709 of file Zoltan2_TaskMapping.hpp.


Member Function Documentation

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

Definition at line 725 of file Zoltan2_TaskMapping.hpp.

template<typename pcoord_t, typename tcoord_t, typename part_t>
void Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t >::setPartArray ( part_t pNo) [inline]

Definition at line 728 of file Zoltan2_TaskMapping.hpp.

template<typename pcoord_t, typename tcoord_t, typename part_t>
void Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_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 738 of file Zoltan2_TaskMapping.hpp.

template<typename pcoord_t, typename tcoord_t, typename part_t>
static part_t Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t >::umpa_uRandom ( part_t  l,
int &  _u_umpa_seed 
) [inline, static]

Definition at line 765 of file Zoltan2_TaskMapping.hpp.

template<typename pcoord_t, typename tcoord_t, typename part_t>
virtual double Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t >::getProcDistance ( int  procId1,
int  procId2 
) const [inline, virtual]
template<typename pcoord_t, typename tcoord_t, typename part_t>
void Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t >::update_visit_order ( part_t visitOrder,
part_t  n,
int &  _u_umpa_seed,
part_t  rndm 
) [inline]

Definition at line 795 of file Zoltan2_TaskMapping.hpp.

template<typename pcoord_t, typename tcoord_t, typename part_t>
virtual void Zoltan2::CoordinateCommunicationModel< pcoord_t, tcoord_t, part_t >::getMapping ( int  myRank,
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 [inline, virtual]

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 >.

Definition at line 840 of file Zoltan2_TaskMapping.hpp.

template<typename part_t , typename pcoord_t >
part_t Zoltan2::CommunicationModel< part_t, pcoord_t >::getNProcs ( ) const [inline, inherited]

Definition at line 607 of file Zoltan2_TaskMapping.hpp.

template<typename part_t , typename pcoord_t >
part_t Zoltan2::CommunicationModel< part_t, pcoord_t >::getNTasks ( ) const [inline, inherited]

Definition at line 610 of file Zoltan2_TaskMapping.hpp.

template<typename part_t , typename pcoord_t >
void Zoltan2::CommunicationModel< part_t, pcoord_t >::calculateCommunicationCost ( part_t task_to_proc,
part_t task_communication_xadj,
part_t task_communication_adj,
pcoord_t *  task_communication_edge_weight 
) [inline, inherited]

Definition at line 615 of file Zoltan2_TaskMapping.hpp.

template<typename part_t , typename pcoord_t >
double Zoltan2::CommunicationModel< part_t, pcoord_t >::getCommunicationCostMetric ( ) [inline, inherited]

Definition at line 655 of file Zoltan2_TaskMapping.hpp.


Member Data Documentation

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

Definition at line 682 of file Zoltan2_TaskMapping.hpp.

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

Definition at line 683 of file Zoltan2_TaskMapping.hpp.

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

Definition at line 684 of file Zoltan2_TaskMapping.hpp.

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

Definition at line 685 of file Zoltan2_TaskMapping.hpp.

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

Definition at line 686 of file Zoltan2_TaskMapping.hpp.

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

Definition at line 687 of file Zoltan2_TaskMapping.hpp.

template<typename part_t , typename pcoord_t >
double Zoltan2::CommunicationModel< part_t, pcoord_t >::commCost [protected, inherited]

Definition at line 596 of file Zoltan2_TaskMapping.hpp.

template<typename part_t , typename pcoord_t >
part_t Zoltan2::CommunicationModel< part_t, pcoord_t >::no_procs [inherited]

Definition at line 599 of file Zoltan2_TaskMapping.hpp.

template<typename part_t , typename pcoord_t >
part_t Zoltan2::CommunicationModel< part_t, pcoord_t >::no_tasks [inherited]

Definition at line 600 of file Zoltan2_TaskMapping.hpp.


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