Zoltan2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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
bool getMachineCoordinate(const int rank, pcoord_t *xyz) const
getCoordinate function set the machine coordinate xyz of any rank process return true if coordinates ...
Machine(const Teuchos::Comm< int > &comm)
Constructor MachineRepresentation Class.
bool getMyMachineCoordinate(pcoord_t *xyz) const
getMyCoordinate function set the machine coordinate xyz of the current process return true if current...
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 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
MachineClass Base class for representing machine coordinates, networks, etc.
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 hasMachineCoordinates() const
indicates whether or not the machine has coordinates
int getNumRanks() const
return the number of ranks.
virtual bool getHopCount(int rank1, int rank2, pcoord_t &hops)
bool getMachineExtent(int *nxyz) const
sets the number of unique coordinates in each machine dimension return true if coordinates are availa...
int getMachineDim() const
returns the dimension (number of coords per node) in the machine