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 
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
bool getMyMachineCoordinate(pcoord_t *xyz) const
getMyCoordinate function set the machine coordinate xyz of the current process return true if current...
Machine(const Teuchos::Comm< int > &comm)
Constructor MachineRepresentation Class.
MachineClass Base class for representing machine coordinates, networks, etc.
bool getMachineExtent(int *nxyz) const
sets the number of unique coordinates in each machine dimension return true if coordinates are availa...
virtual bool getHopCount(int rank1, int rank2, pcoord_t &hops)
bool getMachineCoordinate(const int rank, pcoord_t *xyz) const
getCoordinate function set the machine coordinate xyz of any rank process return true if coordinates ...
int getMachineDim() const
returns the dimension (number of coords per node) in the machine
int getNumRanks() const
return the number of ranks.
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...
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...
bool hasMachineCoordinates() const
indicates whether or not the machine has coordinates
bool getAllMachineCoordinatesView(pcoord_t **allCoords) const
getProcDim function set the coordinates of all ranks allCoords[i][j], i=0,...,getMachineDim(), j=0,...,getNumRanks(), is the i-th dimensional coordinate for rank j. return true if coordinates are available for all ranks