Go to the documentation of this file. 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 getMachineExtent(int *nxyz) const
sets the number of unique coordinates in each machine dimension return true if coordinates are availa...
bool hasMachineCoordinates() const
MachineForTesting< pcoord_t, part_t > machine_t
A Machine Class for testing only A more realistic machine should be used for task mapping.
bool getMyMachineCoordinate(pcoord_t *xyz)
bool getHopCount(int rank1, int rank2, pcoord_t &hops) const
int getMachineDim() const
int getNumRanks() const
return the number of ranks.
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...
SparseMatrixAdapter_t::part_t part_t
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 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 Class Base class for representing machine coordinates, networks,...
static RCP< Teuchos::AnyNumberParameterEntryValidator > getAnyIntValidator()
Exists to make setting up validators less cluttered.
int getMachineDim() const
returns the dimension (number of coords per node) in the machine
bool getMachineCoordinate(const int rank, pcoord_t *xyz)
bool hasMachineCoordinates() const
indicates whether or not the machine has coordinates
static void getValidParameters(Teuchos::ParameterList &pl)
Set up validators specific to this Problem.
bool getMachineCoordinate(const int rank, pcoord_t *xyz) const
getCoordinate function set the machine coordinate xyz of any rank process return true if coordinates ...
virtual bool getHopCount(int rank1, int rank2, pcoord_t &hops)
bool getMyMachineCoordinate(pcoord_t *xyz) const
getMyCoordinate function set the machine coordinate xyz of the current process return true if current...
bool getMachineExtent(int *nxyz) const
bool getAllMachineCoordinatesView(pcoord_t **&allCoords) const
bool getAllMachineCoordinatesView(pcoord_t **&allCoords) const
getProcDim function set the coordinates of all ranks allCoords[i][j], i=0,...,getMachineDim(),...
A Machine Class for testing only A more realistic machine should be used for task mapping.
MachineRepresentation(const Teuchos::Comm< int > &comm)
Constructor MachineRepresentation Class.
A Machine Class for testing only A more realistic machine should be used for task mapping.
Defines the Environment class.
pcoord_t machine_pcoord_t
MachineRepresentation(const Teuchos::Comm< int > &comm, const Teuchos::ParameterList &pl)
A Machine Class for testing only A more realistic machine should be used for task mapping.