PPL Logo

libs/ck-libs/metis/libmetis/kwayrefine.c File Reference

Driving routines for multilevel k-way refinement. More...

Go to the source code of this file.

Functions

void RefineKWay (ctrl_t *ctrl, graph_t *orggraph, graph_t *graph)
void AllocateKWayPartitionMemory (ctrl_t *ctrl, graph_t *graph)
void ComputeKWayPartitionParams (ctrl_t *ctrl, graph_t *graph)
void ProjectKWayPartition (ctrl_t *ctrl, graph_t *graph)
void ComputeKWayBoundary (ctrl_t *ctrl, graph_t *graph, idx_t bndtype)
void ComputeKWayVolGains (ctrl_t *ctrl, graph_t *graph)
int IsBalanced (ctrl_t *ctrl, graph_t *graph, real_t ffactor)


Detailed Description

Driving routines for multilevel k-way refinement.

Date:
Started 7/28/1997
Author:
George

Copyright 1997-2009, Regents of the University of Minnesota

Version:
Id
kwayrefine.c 10737 2011-09-13 13:37:25Z karypis

Definition in file kwayrefine.c.


Function Documentation

void RefineKWay ( ctrl_t ctrl,
graph_t orggraph,
graph_t graph 
)

void AllocateKWayPartitionMemory ( ctrl_t ctrl,
graph_t graph 
)

This function allocates memory for the k-way cut-based refinement

Definition at line 116 of file kwayrefine.c.

References graph_t::bndind, graph_t::bndptr, graph_t::ckrinfo, gk_errexit(), gk_malloc(), METIS_OBJTYPE_CUT, METIS_OBJTYPE_VOL, graph_t::ncon, ctrl_t::nparts, graph_t::nvtxs, ctrl_t::objtype, graph_t::pwgts, graph_t::vkrinfo, and graph_t::where.

Referenced by MlevelKWayPartitioning(), and ProjectKWayPartition().

Here is the call graph for this function:

Here is the caller graph for this function:

void ComputeKWayPartitionParams ( ctrl_t ctrl,
graph_t graph 
)

void ProjectKWayPartition ( ctrl_t ctrl,
graph_t graph 
)

void ComputeKWayBoundary ( ctrl_t ctrl,
graph_t graph,
idx_t  bndtype 
)

This function computes the boundary definition for balancing.

Definition at line 507 of file kwayrefine.c.

References graph_t::bndind, graph_t::bndptr, graph_t::ckrinfo, ckrinfo_t::ed, gk_errexit(), vkrinfo_t::gv, ckrinfo_t::id, METIS_OBJTYPE_CUT, METIS_OBJTYPE_VOL, graph_t::nbnd, vkrinfo_t::ned, graph_t::nvtxs, ctrl_t::objtype, and graph_t::vkrinfo.

Referenced by RefineKWay().

Here is the call graph for this function:

Here is the caller graph for this function:

void ComputeKWayVolGains ( ctrl_t ctrl,
graph_t graph 
)

This function computes the initial gains in the communication volume

Definition at line 562 of file kwayrefine.c.

References graph_t::adjncy, adjncy, graph_t::adjwgt, adjwgt, graph_t::bndind, graph_t::bndptr, vnbr_t::gv, vkrinfo_t::gv, vkrinfo_t::inbr, iwspacemalloc(), PUP::l, graph_t::minvol, graph_t::nbnd, vkrinfo_t::ned, vkrinfo_t::nid, vkrinfo_t::nnbrs, ctrl_t::nparts, nparts, graph_t::nvtxs, graph_t::vkrinfo, ctrl_t::vnbrpool, graph_t::vsize, vsize, graph_t::where, where, graph_t::xadj, and xadj.

Referenced by ComputeKWayPartitionParams(), and ProjectKWayPartition().

Here is the call graph for this function:

Here is the caller graph for this function:

int IsBalanced ( ctrl_t ctrl,
graph_t graph,
real_t  ffactor 
)

This function checks if the partition weights are within the balance contraints

Definition at line 666 of file kwayrefine.c.

References ComputeLoadImbalanceDiff(), ctrl_t::nparts, ctrl_t::pijbm, and ctrl_t::ubfactors.

Referenced by Greedy_McKWayCutOptimize(), Greedy_McKWayVolOptimize(), and RefineKWay().

Here is the call graph for this function:

Here is the caller graph for this function:


Generated on Mon Sep 21 08:09:29 2020 for Charm++ by  doxygen 1.5.5