1 #ifndef _ZOLTAN2_MACHINEREPRESENTATION_HPP_
2 #define _ZOLTAN2_MACHINEREPRESENTATION_HPP_
4 #include <Teuchos_Comm.hpp>
8 #include <Teuchos_StandardParameterEntryValidators.hpp>
10 #include <Teuchos_ParameterList.hpp>
21 template <
typename pcoord_t,
typename part_t>
27 #if defined(HAVE_ZOLTAN2_LDMS)
28 typedef MachineLDMS<pcoord_t,part_t>
machine_t;
29 #elif defined(HAVE_ZOLTAN2_RCALIB)
31 #elif defined(HAVE_ZOLTAN2_TOPOMANAGER)
33 #elif defined(HAVE_ZOLTAN2_BGQTEST)
97 pcoord_t *xyz)
const {
106 pcoord_t *xyz)
const {
125 inline bool getHopCount(
int rank1,
int rank2, pcoord_t &hops)
const {
134 pl.set(
"Machine_Optimization_Level", 10,
135 "Machine Coordinate Transformation Method",
139 RCP<Teuchos::FileNameValidator> file_not_required_validator =
140 Teuchos::rcp(
new Teuchos::FileNameValidator(
false) );
143 pl.set(
"Input_RCA_Machine_Coords",
"",
"Input File for input machine coordinates",
144 file_not_required_validator);
bool hasMachineCoordinates() const
A Machine Class for testing only A more realistic machine should be used for task mapping...
A Machine Class for testing only A more realistic machine should be used for task mapping...
static void getValidParameters(Teuchos::ParameterList &pl)
Set up validators specific to this Problem.
bool getHopCount(int rank1, int rank2, pcoord_t &hops) const
MachineRepresentation(const Teuchos::Comm< int > &comm, const Teuchos::ParameterList &pl)
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...
MachineRepresentation(const Teuchos::Comm< int > &comm)
Constructor MachineRepresentation Class.
bool getMachineCoordinate(const int rank, pcoord_t *xyz) const
getCoordinate function set the machine coordinate xyz of any rank process return true if coordinates ...
SparseMatrixAdapter_t::part_t part_t
int getMachineDim() const
returns the dimension (number of coords per node) in the machine
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
int getNumRanks() const
return the number of ranks.
int getMachineDim() const
virtual bool getHopCount(int rank1, int rank2, pcoord_t &hops)
bool getAllMachineCoordinatesView(pcoord_t **&allCoords) const
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...
int getNumRanks() const
return the number of ranks.
static RCP< Teuchos::AnyNumberParameterEntryValidator > getAnyIntValidator()
Exists to make setting up validators less cluttered.
A Machine Class for testing only A more realistic machine should be used for task mapping...
MachineRepresentation Class Base class for representing machine coordinates, networks, etc.
MachineForTesting< pcoord_t, part_t > machine_t
bool hasMachineCoordinates() const
indicates whether or not the machine has coordinates
bool getMachineCoordinate(const int rank, pcoord_t *xyz)
Defines the Environment class.
pcoord_t machine_pcoord_t
bool getMachineExtent(int *nxyz) const
bool getMyMachineCoordinate(pcoord_t *xyz) const
getMyCoordinate function set the machine coordinate xyz of the current process return true if current...
A Machine Class for testing only A more realistic machine should be used for task mapping...
bool getMyMachineCoordinate(pcoord_t *xyz)
bool getMachineExtent(int *nxyz) const
sets the number of unique coordinates in each machine dimension return true if coordinates are availa...
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...