mt-Metis
Functions
imetis.h File Reference

Metis wrappers. More...

#include "ctrl.h"
#include "graph.h"

Go to the source code of this file.

Functions

wgt_type metis_initcut (ctrl_type *const ctrl, pid_type const nparts, real_type *tpwgts, size_t const ncuts, int const rb, vtx_type nvtxs, adj_type *const xadj, vtx_type *const adjncy, wgt_type *const vwgt, wgt_type *const adjwgt, pid_type *const where)
 Generate an initial partitioning. More...
 
wgt_type metis_initsep (ctrl_type *ctrl, size_t nseps, vtx_type nvtxs, adj_type *xadj, vtx_type *adjncy, wgt_type *vwgt, wgt_type *adjwgt, pid_type *where)
 Generate an initial vertex separator using metis. More...
 
wgt_type metis_kway (ctrl_type *ctrl, graph_type *graph, pid_type *const *where, int rb)
 Serially generate a k-way partition using metis (direct k-way parittioning). More...
 
wgt_type metis_esep (ctrl_type *ctrl, graph_type *graph, pid_type *const *where)
 Serially generate a 2-way edge separator using metis. More...
 
wgt_type metis_vsep (ctrl_type *ctrl, graph_type *graph, pid_type *const *where)
 Serially generate a 2-way vertex separator using metis. More...
 
void metis_nd (ctrl_type *ctrl, graph_type *graph, pid_type *const *perm)
 Generate a nested dissection, spawning parallel tasks if called by multiple threads. More...
 

Detailed Description

Metis wrappers.

Author
Dominique LaSalle lasal.nosp@m.le@c.nosp@m.s.umn.nosp@m..edu Copyright 2015, Regents of the University of Minnesota
Version
1
Date
2015-06-08

Function Documentation

wgt_type metis_esep ( ctrl_type ctrl,
graph_type graph,
pid_type *const *  where 
)

Serially generate a 2-way edge separator using metis.

Parameters
ctrlThe control structure containing partitioning parameters.
graphThe graph to partition.
whereThe partition id for each vertex (output).
Returns
The weight of the edge separator.
wgt_type metis_initcut ( ctrl_type *const  ctrl,
pid_type const  nparts,
real_type *  tpwgts,
size_t const  ncuts,
int const  rb,
vtx_type  nvtxs,
adj_type *const  xadj,
vtx_type *const  adjncy,
wgt_type *const  vwgt,
wgt_type *const  adjwgt,
pid_type *const  where 
)

Generate an initial partitioning.

Parameters
ctrlThe control structure with parameters.
npartsThe number of parittions in the partitioning.
tpwgtsThe target partition weights.
ncutsThe number of partitionings to make.
rbUse recursive bisection to generate k-way partitionings.
nvtxsThe number of vertices in the graph.
xadjThe adjacency list pointer.
adjncyThe adjacency list.
vwgtThe vertex weights.
adjwgtThe adjacecny weights.
whereThe partition ids of each vertex (output).
Returns
The weight of the separator.
wgt_type metis_initsep ( ctrl_type ctrl,
size_t  nseps,
vtx_type  nvtxs,
adj_type *  xadj,
vtx_type *  adjncy,
wgt_type *  vwgt,
wgt_type *  adjwgt,
pid_type *  where 
)

Generate an initial vertex separator using metis.

Parameters
ctrlThe control structure with parameters.
nsepsThe number of separators to generate.
nvtxsThe number of vertices in the graph.
xadjThe adjacency list pointer.
adjncyThe adjacency list.
vwgtThe vertex weights.
adjwgtThe adjacecny weights.
whereThe partition ids of each vertex (output).
Returns
The weight of the separator.
wgt_type metis_kway ( ctrl_type ctrl,
graph_type graph,
pid_type *const *  where,
int  rb 
)

Serially generate a k-way partition using metis (direct k-way parittioning).

Parameters
ctrlThe control structure containing partitioning parameters.
graphThe graph to partition.
whereThe partition id for each vertex (output).
rbWhether or not to use recursive bisection.
Returns
The weight of the edgecut.
void metis_nd ( ctrl_type ctrl,
graph_type graph,
pid_type *const *  perm 
)

Generate a nested dissection, spawning parallel tasks if called by multiple threads.

Parameters
ctrlThe control structure.
graphThe graph structure.
permThe resulting permutation.
wgt_type metis_vsep ( ctrl_type ctrl,
graph_type graph,
pid_type *const *  where 
)

Serially generate a 2-way vertex separator using metis.

Parameters
ctrlThe control structure containing partitioning parameters.
graphThe graph to partition.
whereThe partition id for each vertex (output).
Returns
The weight of the vertex separator.