Zoltan2
Zoltan2_Machine.hpp
Go to the documentation of this file.
1 #ifndef _ZOLTAN2_MACHINE_HPP_
2 #define _ZOLTAN2_MACHINE_HPP_
3 
4 #include <Teuchos_Comm.hpp>
5 #include <Zoltan2_config.h>
6 namespace Zoltan2{
7 
11 template <typename pcoord_t, typename part_t>
12 class Machine{
13 
14 protected:
15  int numRanks;
16  int myRank;
17 
18 public:
23  Machine(const Teuchos::Comm<int> &comm) :
24  numRanks(comm.getSize()), myRank(comm.getRank())
25  { }
26 
27  virtual ~Machine(){ }
28 
31  bool hasMachineCoordinates() const {
32  return false; // Coordinates not available in this machine
33  }
34 
37  int getMachineDim() const {
38  return 0; // Coordinates not available in this machine
39  }
40 
44  bool getMachineExtent(int *nxyz) const {
45  return false; // Extent not available in this machine
46  }
47 
51  bool getMachineExtentWrapArounds(bool *wrap_around) const {
52  return false; // Extent not available in this machine
53  }
54 
59  bool getMyMachineCoordinate(pcoord_t *xyz) const {
60  return false; // Coordinates not available in this machine
61  }
62 
67  bool getMachineCoordinate(const int rank, pcoord_t *xyz) const {
68  return false; // Coordinates not available by rank
69  }
70 
75  bool getMachineCoordinate(const char *nodename, pcoord_t *xyz) const {
76  return false; // Coordinates not available by nodename
77  }
78 
85  bool getAllMachineCoordinatesView(pcoord_t **allCoords) const {
86  return false; // Coordinates not available in this machine
87  }
88 
91  int getNumRanks() const { return numRanks; }
92 
93  virtual bool getHopCount(int rank1, int rank2, pcoord_t &hops){
94  return false;
95  }
96 
97  // KDD TODO: Add Graph interface and methods supporting full LDMS interface.
98 
99 };
100 }
101 #endif
Zoltan2::Machine::~Machine
virtual ~Machine()
Definition: Zoltan2_Machine.hpp:27
Zoltan2::Machine::getMachineCoordinate
bool getMachineCoordinate(const char *nodename, pcoord_t *xyz) const
getCoordinate function set the machine coordinate xyz of any node by nodename return true if coordina...
Definition: Zoltan2_Machine.hpp:75
Zoltan2::Machine::getNumRanks
int getNumRanks() const
return the number of ranks.
Definition: Zoltan2_Machine.hpp:91
Zoltan2::Machine::getMachineCoordinate
bool getMachineCoordinate(const int rank, pcoord_t *xyz) const
getCoordinate function set the machine coordinate xyz of any rank process return true if coordinates ...
Definition: Zoltan2_Machine.hpp:67
Zoltan2::Machine::getMyMachineCoordinate
bool getMyMachineCoordinate(pcoord_t *xyz) const
getMyCoordinate function set the machine coordinate xyz of the current process return true if current...
Definition: Zoltan2_Machine.hpp:59
Zoltan2::Machine::getMachineExtentWrapArounds
bool getMachineExtentWrapArounds(bool *wrap_around) const
if the machine has a wrap-around tourus link in each dimension. return true if the information is ava...
Definition: Zoltan2_Machine.hpp:51
Zoltan2::Machine::Machine
Machine(const Teuchos::Comm< int > &comm)
Constructor MachineRepresentation Class.
Definition: Zoltan2_Machine.hpp:23
Zoltan2::Machine::numRanks
int numRanks
Definition: Zoltan2_Machine.hpp:15
Zoltan2::Machine::getHopCount
virtual bool getHopCount(int rank1, int rank2, pcoord_t &hops)
Definition: Zoltan2_Machine.hpp:93
Zoltan2::Machine::myRank
int myRank
Definition: Zoltan2_Machine.hpp:16
Zoltan2::Machine
MachineClass Base class for representing machine coordinates, networks, etc.
Definition: Zoltan2_Machine.hpp:12
Zoltan2
Definition: Zoltan2_AlgSerialGreedy.hpp:56
Zoltan2::Machine::getMachineDim
int getMachineDim() const
returns the dimension (number of coords per node) in the machine
Definition: Zoltan2_Machine.hpp:37
Zoltan2::Machine::hasMachineCoordinates
bool hasMachineCoordinates() const
indicates whether or not the machine has coordinates
Definition: Zoltan2_Machine.hpp:31
Zoltan2::Machine::getAllMachineCoordinatesView
bool getAllMachineCoordinatesView(pcoord_t **allCoords) const
getProcDim function set the coordinates of all ranks allCoords[i][j], i=0,...,getMachineDim(),...
Definition: Zoltan2_Machine.hpp:85
Zoltan2::Machine::getMachineExtent
bool getMachineExtent(int *nxyz) const
sets the number of unique coordinates in each machine dimension return true if coordinates are availa...
Definition: Zoltan2_Machine.hpp:44