Isorropia: Partitioning, Load Balancing and more
Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
Isorropia::Epetra::ZoltanLibClass Class Reference

#include <Isorropia_EpetraZoltanLib.hpp>

Inheritance diagram for Isorropia::Epetra::ZoltanLibClass:
Inheritance graph
[legend]
Collaboration diagram for Isorropia::Epetra::ZoltanLibClass:
Collaboration graph
[legend]

Public Member Functions

 ZoltanLibClass (Teuchos::RCP< const Epetra_CrsGraph > input_graph, int inputType=unspecified_input_)
 
 ZoltanLibClass (Teuchos::RCP< const Epetra_CrsGraph > input_graph, Teuchos::RCP< const Epetra_MultiVector > input_coords, int inputType=unspecified_input_)
 
 ZoltanLibClass (Teuchos::RCP< const Epetra_CrsGraph > input_graph, Teuchos::RCP< CostDescriber > costs, int inputType=unspecified_input_)
 
 ZoltanLibClass (Teuchos::RCP< const Epetra_CrsGraph > input_graph, Teuchos::RCP< CostDescriber > costs, Teuchos::RCP< const Epetra_MultiVector > input_coords, Teuchos::RCP< const Epetra_MultiVector > weights, int inputType=unspecified_input_)
 
 ZoltanLibClass (Teuchos::RCP< const Epetra_RowMatrix > input_matrix, int inputType=unspecified_input_)
 
 ZoltanLibClass (Teuchos::RCP< const Epetra_RowMatrix > input_matrix, Teuchos::RCP< const Epetra_MultiVector > input_coords, int inputType=unspecified_input_)
 
 ZoltanLibClass (Teuchos::RCP< const Epetra_RowMatrix > input_matrix, Teuchos::RCP< CostDescriber > costs, int inputType=unspecified_input_)
 
 ZoltanLibClass (Teuchos::RCP< const Epetra_RowMatrix > input_matrix, Teuchos::RCP< CostDescriber > costs, Teuchos::RCP< const Epetra_MultiVector > input_coords, Teuchos::RCP< const Epetra_MultiVector > weights, int inputType=unspecified_input_)
 
 ZoltanLibClass (Teuchos::RCP< const Epetra_MultiVector > input_coords, int inputType=unspecified_input_)
 
 ZoltanLibClass (Teuchos::RCP< const Epetra_MultiVector > input_coords, Teuchos::RCP< const Epetra_MultiVector > weights, int inputType=unspecified_input_)
 
 ZoltanLibClass (Teuchos::RCP< const Epetra_BlockMap > input_map, int inputType=unspecified_input_)
 
virtual int repartition (Teuchos::ParameterList &paramlist, std::vector< int > &newPartitions, int &exportsSize, std::vector< int > &imports)
 Method to partition the object that the ZoltanLibClass was contructed with. More...
 
virtual int color (Teuchos::ParameterList &paramlist, std::vector< int > &colorAssignment)
 Method to color the object that the ZoltanLibClass was contructed with. More...
 
virtual int order (Teuchos::ParameterList &paramlist, std::vector< int > &orderAssignment)
 Method to order the object that the ZoltanLibClass was contructed with. More...
 

Public Attributes

int input_type_
 
int numPartSizes
 
int * partGIDs
 
float * partSizes
 

Static Public Attributes

static const int hgraph_input_ = 1
 input_type_ == hgraph_input_ This indicates that the matrix or graph represents a hypergraph. More...
 
static const int hgraph2d_finegrain_input_ = 2
 input_type_ == hgraph2d_finegrain_input_ This indicates that the matrix or graph represents a hypergraph. More...
 
static const int graph_input_ = 3
 input_type_ == graph_input_ This indicates that the square symmetric matrix or graph represents a graph in the sense that row/column IDs are vertices and non-zeroes represent edges. More...
 
static const int geometric_input_ = 4
 input_type_ == geometric_input_ This indicates that the Epetra_MultiVector represents geometric coordinates. More...
 
static const int hgraph_graph_input_ = 5
 input_type_ == hgraph_graph_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above). More...
 
static const int hgraph_geometric_input_ = 6
 input_type_ == hgraph_geom_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above). More...
 
static const int graph_geometric_input_ = 7
 input_type_ == graph_geom_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above). More...
 
static const int hgraph_graph_geometric_input_ = 8
 input_type_ == hgraph_graph_geom_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above). More...
 
static const int simple_input_ = 9
 input_type_ == simple_input_ This is used to indicate that a simple partitiong method (block, cyclic, or random) will be used. More...
 
static const int unspecified_input_ = 10
 input_type_ == unspecified_input_ This value is the "unset" state for the input_type_ instance variable. More...
 

Protected Member Functions

virtual int precompute ()
 
virtual int postcompute ()
 
void computeCost ()
 
void preCheckPartition ()
 
void setParameterList (Teuchos::ParameterList &zoltanParamList)
 

Protected Attributes

Teuchos::RCP< const
Epetra_BlockMap > 
input_map_
 
Teuchos::RCP< const
Epetra_CrsGraph > 
input_graph_
 
Teuchos::RCP< const
Epetra_RowMatrix > 
input_matrix_
 
Teuchos::RCP< const
Epetra_MultiVector > 
input_coords_
 
Teuchos::RCP
< Isorropia::Epetra::CostDescriber
costs_
 
Teuchos::RCP< const
Epetra_MultiVector > 
weights_
 

Private Attributes

Teuchos::ParameterList zoltanParamList_
 
std::string partMethod_
 
Zoltan * zz_
 
Teuchos::RCP
< ZoltanLib::QueryObject
queryObject_
 
int num_obj_
 

Constructor & Destructor Documentation

Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_CrsGraph >  input_graph,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_CrsGraph >  input_graph,
Teuchos::RCP< const Epetra_MultiVector >  input_coords,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_CrsGraph >  input_graph,
Teuchos::RCP< CostDescriber costs,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_CrsGraph >  input_graph,
Teuchos::RCP< CostDescriber costs,
Teuchos::RCP< const Epetra_MultiVector >  input_coords,
Teuchos::RCP< const Epetra_MultiVector >  weights,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_RowMatrix >  input_matrix,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_RowMatrix >  input_matrix,
Teuchos::RCP< const Epetra_MultiVector >  input_coords,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_RowMatrix >  input_matrix,
Teuchos::RCP< CostDescriber costs,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_RowMatrix >  input_matrix,
Teuchos::RCP< CostDescriber costs,
Teuchos::RCP< const Epetra_MultiVector >  input_coords,
Teuchos::RCP< const Epetra_MultiVector >  weights,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_MultiVector >  input_coords,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_MultiVector >  input_coords,
Teuchos::RCP< const Epetra_MultiVector >  weights,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_BlockMap >  input_map,
int  inputType = unspecified_input_ 
)

Member Function Documentation

virtual int Isorropia::Epetra::ZoltanLibClass::repartition ( Teuchos::ParameterList &  paramlist,
std::vector< int > &  newPartitions,
int &  exportsSize,
std::vector< int > &  imports 
)
virtual

Method to partition the object that the ZoltanLibClass was contructed with.

Parameters
[in]paramlistParameters to govern partitioning.
[out]newPartitionsThe new partition for each of my objects, in local ID order. The objects may be rows or non-zeroes (for CrsGraph and RowMatrix input) or coordinates (for MultiVector input). Partition numbers can range from zero to numProcs-1.
[out]exportsSizeThe number of my objects that will be exported to another process under the new partitioning. This is also the number of elements in newPartitions that are not equal to my process rank.
[out]importsA list of the global IDs of the objects that will be imported to my process under the new partitioning

Implements Isorropia::Epetra::Library.

virtual int Isorropia::Epetra::ZoltanLibClass::color ( Teuchos::ParameterList &  paramlist,
std::vector< int > &  colorAssignment 
)
virtual

Method to color the object that the ZoltanLibClass was contructed with.

Parameters
[in]paramlistParameters to govern coloring.
[out]colorAssignmentA list of integers indicating the coloring of the object, in local ID order.

Implements Isorropia::Epetra::Library.

virtual int Isorropia::Epetra::ZoltanLibClass::order ( Teuchos::ParameterList &  paramlist,
std::vector< int > &  orderAssignment 
)
virtual

Method to order the object that the ZoltanLibClass was contructed with.

Parameters
[in]paramlistParameters to govern ordering .
[out]orderAssignmentA list of integers indicating the ordering of the object, in local ID order.

Implements Isorropia::Epetra::Library.

virtual int Isorropia::Epetra::ZoltanLibClass::precompute ( )
protectedvirtual

Reimplemented from Isorropia::Epetra::Library.

virtual int Isorropia::Epetra::ZoltanLibClass::postcompute ( )
protectedvirtual
void Isorropia::Epetra::ZoltanLibClass::computeCost ( )
protected
void Isorropia::Epetra::ZoltanLibClass::preCheckPartition ( )
protected
void Isorropia::Epetra::ZoltanLibClass::setParameterList ( Teuchos::ParameterList &  zoltanParamList)
protected

Member Data Documentation

Teuchos::ParameterList Isorropia::Epetra::ZoltanLibClass::zoltanParamList_
private
std::string Isorropia::Epetra::ZoltanLibClass::partMethod_
private
Zoltan* Isorropia::Epetra::ZoltanLibClass::zz_
private
Teuchos::RCP<ZoltanLib::QueryObject> Isorropia::Epetra::ZoltanLibClass::queryObject_
private
int Isorropia::Epetra::ZoltanLibClass::num_obj_
private
const int Isorropia::Epetra::Library::hgraph_input_ = 1
staticinherited

input_type_ == hgraph_input_ This indicates that the matrix or graph represents a hypergraph.

Columns represent hyperedges, and row (vertex) partitioning is to be performed.

const int Isorropia::Epetra::Library::hgraph2d_finegrain_input_ = 2
staticinherited

input_type_ == hgraph2d_finegrain_input_ This indicates that the matrix or graph represents a hypergraph.

Columns represent hyperedges, and non-zeroes are to be partitioned.

const int Isorropia::Epetra::Library::graph_input_ = 3
staticinherited

input_type_ == graph_input_ This indicates that the square symmetric matrix or graph represents a graph in the sense that row/column IDs are vertices and non-zeroes represent edges.

The vertices are to be partitioned.

const int Isorropia::Epetra::Library::geometric_input_ = 4
staticinherited

input_type_ == geometric_input_ This indicates that the Epetra_MultiVector represents geometric coordinates.

The MultiVector should have 1, 2 or 3 vectors, representing 1, 2 or 3 dimensional coordinates. The coordinates are to be partitioned.

const int Isorropia::Epetra::Library::hgraph_graph_input_ = 5
staticinherited

input_type_ == hgraph_graph_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above).

This is necessary for hierarchical partitioning with both hypergraph and graph methods.

const int Isorropia::Epetra::Library::hgraph_geometric_input_ = 6
staticinherited

input_type_ == hgraph_geom_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above).

This is necessary for hierarchical partitioning with both hypergraph and geometric methods.

const int Isorropia::Epetra::Library::graph_geometric_input_ = 7
staticinherited

input_type_ == graph_geom_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above).

This is necessary for hierarchical partitioning with both graph and geometric methods.

const int Isorropia::Epetra::Library::hgraph_graph_geometric_input_ = 8
staticinherited

input_type_ == hgraph_graph_geom_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above).

This is necessary for hierarchical partitioning using hypergraph, graph, and geometric methods.

const int Isorropia::Epetra::Library::simple_input_ = 9
staticinherited

input_type_ == simple_input_ This is used to indicate that a simple partitiong method (block, cyclic, or random) will be used.

const int Isorropia::Epetra::Library::unspecified_input_ = 10
staticinherited

input_type_ == unspecified_input_ This value is the "unset" state for the input_type_ instance variable.

int Isorropia::Epetra::Library::input_type_
inherited
int Isorropia::Epetra::Library::numPartSizes
inherited
int* Isorropia::Epetra::Library::partGIDs
inherited
float* Isorropia::Epetra::Library::partSizes
inherited
Teuchos::RCP<const Epetra_BlockMap> Isorropia::Epetra::Library::input_map_
protectedinherited
Teuchos::RCP<const Epetra_CrsGraph> Isorropia::Epetra::Library::input_graph_
protectedinherited
Teuchos::RCP<const Epetra_RowMatrix> Isorropia::Epetra::Library::input_matrix_
protectedinherited
Teuchos::RCP<const Epetra_MultiVector> Isorropia::Epetra::Library::input_coords_
protectedinherited
Teuchos::RCP<Isorropia::Epetra::CostDescriber> Isorropia::Epetra::Library::costs_
protectedinherited
Teuchos::RCP<const Epetra_MultiVector> Isorropia::Epetra::Library::weights_
protectedinherited

The documentation for this class was generated from the following file: