fpmas 1.6
Classes | Public Member Functions | List of all members
fpmas::graph::ZoltanLoadBalancing< T > Class Template Reference

#include <zoltan_load_balancing.h>

Inheritance diagram for fpmas::graph::ZoltanLoadBalancing< T >:
Inheritance graph
[legend]
Collaboration diagram for fpmas::graph::ZoltanLoadBalancing< T >:
Collaboration graph
[legend]

Public Member Functions

 ZoltanLoadBalancing (communication::MpiCommunicatorBase &comm)
 
 ZoltanLoadBalancing (communication::MpiCommunicatorBase &comm, int lb_period)
 
 ZoltanLoadBalancing (communication::MpiCommunicatorBase &comm, int lb_period, float imbalance_tol)
 
PartitionMap balance (api::graph::NodeMap< T > nodes, api::graph::PartitionMap fixed_vertices) override
 
PartitionMap balance (api::graph::NodeMap< T > nodes, api::graph::PartitionMap fixed_vertices, api::graph::PartitionMode partition_mode) override
 
PartitionMap balance (api::graph::NodeMap< T > nodes) override
 
PartitionMap balance (api::graph::NodeMap< T > nodes, api::graph::PartitionMode partition_mode) override
 
- Public Member Functions inherited from fpmas::api::graph::LoadBalancing< T >
virtual PartitionMap balance (NodeMap< T > nodes)=0
 
virtual PartitionMap balance (NodeMap< T > nodes, PartitionMode partition_mode)=0
 
- Public Member Functions inherited from fpmas::api::graph::FixedVerticesLoadBalancing< T >
virtual PartitionMap balance (NodeMap< T > nodes, PartitionMap fixed_vertices)=0
 
virtual PartitionMap balance (NodeMap< T > nodes, PartitionMap fixed_vertices, PartitionMode partition_mode)=0
 

Detailed Description

template<typename T>
class fpmas::graph::ZoltanLoadBalancing< T >

api::load_balancing::FixedVerticesLoadBalancing implementation based on the Zoltan library.

Constructor & Destructor Documentation

◆ ZoltanLoadBalancing() [1/3]

template<typename T >
fpmas::graph::ZoltanLoadBalancing< T >::ZoltanLoadBalancing ( communication::MpiCommunicatorBase comm)
inline

ZoltanLoadBalancing constructor.

Default values
Parameters
commMpiCommunicator implementation

◆ ZoltanLoadBalancing() [2/3]

template<typename T >
fpmas::graph::ZoltanLoadBalancing< T >::ZoltanLoadBalancing ( communication::MpiCommunicatorBase comm,
int  lb_period 
)
inline

ZoltanLoadBalancing constructor.

10*lb_period is used as the Zoltan PHG_REPART_MULTIPLIER value.

Default values
Parameters
commMpiCommunicator implementation
lb_periodNumber of iterations between each load balancing (used as a Zoltan algorithm parameter, does not need to correspond to the actual load balancing period)

◆ ZoltanLoadBalancing() [3/3]

template<typename T >
fpmas::graph::ZoltanLoadBalancing< T >::ZoltanLoadBalancing ( communication::MpiCommunicatorBase comm,
int  lb_period,
float  imbalance_tol 
)
inline

ZoltanLoadBalancing constructor.

10*lb_period is used as the Zoltan PHG_REPART_MULTIPLIER value.

Parameters
commMpiCommunicator implementation
lb_periodNumber of iterations between each load balancing (used as a Zoltan algorithm parameter, does not need to correspond to the actual load balancing period)
imbalance_tolAcceptable imbalance tolerance, computed as the maximum load divided by the average load.

Member Function Documentation

◆ balance() [1/4]

template<typename T >
PartitionMap fpmas::graph::ZoltanLoadBalancing< T >::balance ( api::graph::NodeMap< T >  nodes,
api::graph::PartitionMap  fixed_vertices 
)
override

Deprecated:
Deprecated in favor of balance(NodeMap<T>, PartitionMode)

Implements fpmas::api::graph::LoadBalancing

◆ balance() [2/4]

template<typename T >
PartitionMap fpmas::graph::ZoltanLoadBalancing< T >::balance ( api::graph::NodeMap< T >  nodes,
api::graph::PartitionMap  fixed_vertices,
api::graph::PartitionMode  partition_mode 
)
override

Computes a node partition from the input nodes, assigning a fixed rank to nodes specified in the fixed vertices map.

This functions is synchronous and blocks until all processes call it.

Each process calls the functions with its own node map, so that the global set of nodes to balance correspond to the union of all the local node maps specified as arguments.

Fixed vertices are assumed to be consistent across processes, behavior is undefined otherwise.

Parameters
nodeslocal nodes to balance
fixed_verticesfixed vertices map
partition_modepartitioning strategy
Returns
balanced partition map
Implementation details
Computes a balanced partition from the default Zoltan PHG Hypergraph partitioning method

Implements fpmas::api::graph::FixedVerticesLoadBalancing

◆ balance() [3/4]

template<typename T >
PartitionMap fpmas::graph::ZoltanLoadBalancing< T >::balance ( api::graph::NodeMap< T >  nodes)
override

Deprecated:
Deprecated in favor of balance(NodeMap<T>, PartitionMap, PartitionMode)

Implements fpmas::api::graph::LoadBalancing

◆ balance() [4/4]

template<typename T >
PartitionMap fpmas::graph::ZoltanLoadBalancing< T >::balance ( api::graph::NodeMap< T >  nodes,
api::graph::PartitionMode  partition_mode 
)
override

Computes a node partition from the input nodes.

This functions is synchronous and blocks until all processes call it.

Each process calls the functions with its own node map, so that the global set of nodes to balance corresponds to the union of all the local node maps specified as arguments.

Parameters
nodeslocal nodes to balance
partition_modepartitioning strategy
Returns
balanced partition map
Implementation details
Equivalent to balance(NodeMap<T>, PartitionMap, PartitionMode), with an empty set of fixed vertices.

Implements fpmas::api::graph::FixedVerticesLoadBalancing


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