Zoltan2
Classes | Namespaces | Functions
Zoltan2_Metric.hpp File Reference

Metric class and namespace methods to compute quality metrics. More...

#include <Zoltan2_StridedData.hpp>
#include <Zoltan2_PartitioningSolution.hpp>
#include <Tpetra_Map.hpp>
#include <Tpetra_CrsMatrix.hpp>
#include <Zoltan2_GraphModel.hpp>
#include <cmath>
#include <iomanip>
#include <iostream>
#include <vector>
Include dependency graph for Zoltan2_Metric.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Zoltan2::MetricValues< scalar_t >
 A class containing the metrics for one measurable item. More...
 
class  Zoltan2::GraphMetricValues< scalar_t >
 A class containing the metrics for one measurable item. More...
 

Namespaces

 Zoltan2
 

Functions

template<typename scalar_t >
void Zoltan2::getStridedStats (const ArrayView< scalar_t > &v, int stride, int offset, scalar_t &min, scalar_t &max, scalar_t &sum)
 Find min, max and sum of metric values. More...
 
template<typename scalar_t >
void Zoltan2::getStridedStats (const ArrayView< scalar_t > &v, int stride, int offset, scalar_t &max, scalar_t &sum)
 Find max and sum of graph metric values. More...
 
template<typename scalar_t , typename lno_t , typename part_t >
void Zoltan2::normedPartWeights (const RCP< const Environment > &env, part_t numberOfParts, const ArrayView< const part_t > &parts, const ArrayView< StridedData< lno_t, scalar_t > > &vwgts, multiCriteriaNorm mcNorm, scalar_t *weights)
 Compute the total weight in each part on this process. More...
 
template<typename scalar_t , typename lno_t , typename part_t >
void Zoltan2::globalSumsByPart (const RCP< const Environment > &env, const RCP< const Comm< int > > &comm, const ArrayView< const part_t > &part, int vwgtDim, const ArrayView< StridedData< lno_t, scalar_t > > &vwgts, multiCriteriaNorm mcNorm, part_t &numParts, part_t &numNonemptyParts, ArrayRCP< MetricValues< scalar_t > > &metrics, ArrayRCP< scalar_t > &globalSums)
 Given the local partitioning, compute the global sums in each part. More...
 
template<typename Adapter >
void Zoltan2::globalWeightedCutsByPart (const RCP< const Environment > &env, const RCP< const Comm< int > > &comm, const RCP< const GraphModel< typename Adapter::base_adapter_t > > &graph, const ArrayView< const typename Adapter::part_t > &part, typename Adapter::part_t &numParts, ArrayRCP< GraphMetricValues< typename Adapter::scalar_t > > &metrics, ArrayRCP< typename Adapter::scalar_t > &globalSums)
 Given the local partitioning, compute the global weighted cuts in each part. More...
 
template<typename scalar_t , typename part_t >
void Zoltan2::computeImbalances (part_t numParts, part_t targetNumParts, const scalar_t *psizes, scalar_t sumVals, const scalar_t *vals, scalar_t &min, scalar_t &max, scalar_t &avg)
 Compute the imbalance. More...
 
template<typename scalar_t , typename part_t >
void Zoltan2::computeImbalances (part_t numParts, part_t targetNumParts, int numSizes, ArrayView< ArrayRCP< scalar_t > > psizes, scalar_t sumVals, const scalar_t *vals, scalar_t &min, scalar_t &max, scalar_t &avg)
 Compute the imbalance in the case of multiple part sizes. More...
 
template<typename Adapter >
void Zoltan2::objectMetrics (const RCP< const Environment > &env, const RCP< const Comm< int > > &comm, multiCriteriaNorm mcNorm, const RCP< const typename Adapter::base_adapter_t > &ia, const RCP< const PartitioningSolution< Adapter > > &solution, bool useDegreeAsWeight, const RCP< const GraphModel< typename Adapter::base_adapter_t > > &graphModel, typename Adapter::part_t &numParts, typename Adapter::part_t &numNonemptyParts, ArrayRCP< MetricValues< typename Adapter::scalar_t > > &metrics)
 Compute imbalance metrics for a distribution. More...
 
template<typename scalar_t , typename part_t >
void Zoltan2::printMetrics (std::ostream &os, part_t targetNumParts, part_t numParts, part_t numNonemptyParts, const ArrayView< MetricValues< scalar_t > > &infoList)
 Print out a header and the values for a list of metrics. More...
 
template<typename scalar_t , typename part_t >
void Zoltan2::printMetrics (std::ostream &os, part_t targetNumParts, part_t numParts, const ArrayView< GraphMetricValues< scalar_t > > &infoList)
 Print out a header and the values for a list of graph metrics. More...
 
template<typename scalar_t , typename part_t >
void Zoltan2::printMetrics (std::ostream &os, part_t targetNumParts, part_t numParts, part_t numNonemptyParts, const MetricValues< scalar_t > &info)
 Print out a header and the values for a single metric. More...
 
template<typename scalar_t , typename part_t >
void Zoltan2::printMetrics (std::ostream &os, part_t targetNumParts, part_t numParts, const GraphMetricValues< scalar_t > &info)
 Print out a header and the values for a single metric. More...
 
template<typename scalar_t >
scalar_t Zoltan2::normedWeight (ArrayView< scalar_t > weights, multiCriteriaNorm norm)
 Compute the norm of the vector of weights. More...
 
template<typename lno_t , typename scalar_t >
scalar_t Zoltan2::normedWeight (ArrayView< StridedData< lno_t, scalar_t > > weights, lno_t idx, multiCriteriaNorm norm)
 Compute the norm of the vector of weights stored as StridedData. More...
 

Detailed Description

Metric class and namespace methods to compute quality metrics.

Todo:
Add graph and hypergraph metrics.

Definition in file Zoltan2_Metric.hpp.