|
Isorropia: Partitioning, Load Balancing and more
|
#include <Isorropia_EpetraZoltanLib.hpp>


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 ¶mlist, std::vector< int > &newPartitions, int &exportsSize, std::vector< int > &imports) |
| Method to partition the object that the ZoltanLibClass was contructed with. | |
| virtual int | color (Teuchos::ParameterList ¶mlist, std::vector< int > &colorAssignment) |
| Method to color the object that the ZoltanLibClass was contructed with. | |
| virtual int | order (Teuchos::ParameterList ¶mlist, std::vector< int > &orderAssignment) |
| Method to order the object that the ZoltanLibClass was contructed with. | |
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. | |
| static const int | hgraph2d_finegrain_input_ = 2 |
| input_type_ == hgraph2d_finegrain_input_ This indicates that the matrix or graph represents a hypergraph. | |
| 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. | |
| static const int | geometric_input_ = 4 |
| input_type_ == geometric_input_ This indicates that the Epetra_MultiVector represents geometric coordinates. | |
| 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). | |
| 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). | |
| 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). | |
| 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). | |
| 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. | |
| static const int | unspecified_input_ = 10 |
| input_type_ == unspecified_input_ This value is the "unset" state for the input_type_ instance variable. | |
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_ |
| 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_ |
||
| ) |
| 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.
| [in] | paramlist | Parameters to govern partitioning. |
| [out] | newPartitions | The 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] | exportsSize | The 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] | imports | A 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.
| [in] | paramlist | Parameters to govern coloring. |
| [out] | colorAssignment | A 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.
| [in] | paramlist | Parameters to govern ordering . |
| [out] | orderAssignment | A list of integers indicating the ordering of the object, in local ID order. |
Implements Isorropia::Epetra::Library.
| virtual int Isorropia::Epetra::ZoltanLibClass::precompute | ( | ) | [protected, virtual] |
Reimplemented from Isorropia::Epetra::Library.
| virtual int Isorropia::Epetra::ZoltanLibClass::postcompute | ( | ) | [protected, virtual] |
Implements Isorropia::Epetra::Library.
| void Isorropia::Epetra::ZoltanLibClass::computeCost | ( | ) | [protected] |
| void Isorropia::Epetra::ZoltanLibClass::preCheckPartition | ( | ) | [protected] |
| void Isorropia::Epetra::ZoltanLibClass::setParameterList | ( | Teuchos::ParameterList & | zoltanParamList | ) | [protected] |
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 [static, inherited] |
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 [static, inherited] |
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 [static, inherited] |
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 [static, inherited] |
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 [static, inherited] |
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 [static, inherited] |
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 [static, inherited] |
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 [static, inherited] |
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 [static, inherited] |
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 [static, inherited] |
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_ [protected, inherited] |
Teuchos::RCP<const Epetra_CrsGraph> Isorropia::Epetra::Library::input_graph_ [protected, inherited] |
Teuchos::RCP<const Epetra_RowMatrix> Isorropia::Epetra::Library::input_matrix_ [protected, inherited] |
Teuchos::RCP<const Epetra_MultiVector> Isorropia::Epetra::Library::input_coords_ [protected, inherited] |
Teuchos::RCP<Isorropia::Epetra::CostDescriber> Isorropia::Epetra::Library::costs_ [protected, inherited] |
Teuchos::RCP<const Epetra_MultiVector> Isorropia::Epetra::Library::weights_ [protected, inherited] |