INMOST
A toolkit for distributed mathematical modeling
INMOST::Partitioner Class Reference

Main class to modify or improve the mesh distribution for better load balancing. More...

#include <inmost_partitioner.h>

Public Types

enum  Type {
  Zoltan_Parmetis , Zoltan_Scotch , Zoltan_PHG , Zoltan_RCB ,
  Zoltan_RIB , Zoltan_HSFC , Parmetis , MetisRec ,
  MetisRecContig , MetisKway , MetisKwayContig , INNER_RCM ,
  INNER_KMEANS
}
 Type of the Partitioner can be currently used in this version of INMOST. More...
 
enum  Action { Partition , Repartition , Refine }
 

Public Member Functions

 Partitioner (Mesh *m)
 The default constructor of the partitioner for the specified mesh.
 
 Partitioner (const Partitioner &other)
 
Partitioneroperator= (Partitioner const &other)
 
void AddSet (std::string set_name)
 Account for sets in the partitioner.
 
bool RemSet (std::string set_name)
 
void ClearSets ()
 
void Evaluate ()
 Evaluate the earlier specified partitioner. More...
 
void SetMethod (enum Type t, enum Action a=Repartition)
 Set the partitioner method to be used. More...
 
void SetWeight (Tag weight)
 Compute the specific weights for the selected partitioner.
 
void ResetWeight ()
 Reset the computed weights for the partitioner.
 
MeshGetMesh ()
 Get the Mesh pointer for the current partitioner.
 
Tag GetWeight ()
 Get the Tag of the computed weights for the current partitioner.
 

Static Public Member Functions

static void Initialize (int *argc, char ***argv)
 Initialize the use of partitioner. More...
 
static void Finalize ()
 Finalize the use of partitioner. More...
 

Detailed Description

Main class to modify or improve the mesh distribution for better load balancing.

Definition at line 17 of file inmost_partitioner.h.

Member Enumeration Documentation

◆ Action

Enumerator
Partition 

Partition "from scratch", not taking into account the current mesh distribution.

Repartition 

Repartition the existing partition but try to stay close to the current mesh distribution.

Refine 

Refine the current partition assuming only small changes of mesh distribution.

Definition at line 39 of file inmost_partitioner.h.

◆ Type

Type of the Partitioner can be currently used in this version of INMOST.

See also
Zoltan: Parallel Partitioning, Load Balancing and Data-Management Services. http://www.cs.sandia.gov/Zoltan/
ParMETIS: Parallel Graph Partitioning and Fill-reducing Matrix Ordering. http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview
Enumerator
Zoltan_Parmetis 

Parmetis partitioner with the Zoltan package interface.

Zoltan_Scotch 

Scotch partitioner with the Zoltan package interface.

Zoltan_PHG 

Zoltan topology-based method using Partitioning of HyperGraph.

Zoltan_RCB 

Zoltan geometry-based method using Recursive Coordinate Bisection.

Zoltan_RIB 

Zoltan geometry-based method using Recursive Inertial Bisection.

Zoltan_HSFC 

Zoltan geometry-based method using Hilbert Space-Filling Curve partitioning.

Parmetis 

Parmetis partitioner with the original interface.

MetisRec 

Metis partitioner using METIS_PartGraphRecursive.

MetisRecContig 

Metis partitioner using METIS_PartGraphRecursive with contiguous option.

MetisKway 

Metis partitioner using METIS_PartGraphKway.

MetisKwayContig 

Metis partitioner using METIS_PartGraphKway with contiguous option.

INNER_RCM 

Internal serial only partitioner based on the Reverse Cuthill–McKee algorithm ordering.

INNER_KMEANS 

Internal parallel paritioner based on K-means clustering.

Definition at line 23 of file inmost_partitioner.h.

Member Function Documentation

◆ Evaluate()

void INMOST::Partitioner::Evaluate ( )

Evaluate the earlier specified partitioner.

See also
Partitioner::SetMethod

◆ Finalize()

static void INMOST::Partitioner::Finalize ( )
static

Finalize the use of partitioner.

See also
Partitioner::Initialize

◆ Initialize()

static void INMOST::Partitioner::Initialize ( int *  argc,
char ***  argv 
)
static

Initialize the use of partitioner.

Parameters
argcThe number of arguments transmitted to the function main.
argvThe pointer to arguments transmitted to the function main. The shortest call to this function with the default solver parameters is the following: Initialize(NULL,NULL);
See also
Partitioner::SetMethod
Partitioner::Finalize

◆ SetMethod()

void INMOST::Partitioner::SetMethod ( enum Type  t,
enum Action  a = Repartition 
)

Set the partitioner method to be used.

Parameters
tThe concrete Type of the partitioner from the selected package.
aThe partitioner Action, the default is Repartition.
See also
Partitioner::Evaluate

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