mt-Metis
Macros | Functions
imetis.c File Reference

Metis wrappers. More...

#include "imetis.h"
#include "../metis/include/metis.h"

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 const 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 *const ctrl, size_t const nseps, vtx_type const nvtxs, adj_type *const xadj, vtx_type *const adjncy, wgt_type *const vwgt, wgt_type *const adjwgt, pid_type *const where)
 Generate an initial vertex separator using metis. More...
 
wgt_type metis_kway (ctrl_type *const ctrl, graph_type *const graph, pid_type *const *const where, int const rb)
 Serially generate a k-way partition using metis (direct k-way parittioning). More...
 
wgt_type metis_esep (ctrl_type *const ctrl, graph_type *const graph, pid_type *const *const where)
 Serially generate a 2-way edge separator using metis. More...
 
wgt_type metis_vsep (ctrl_type *const ctrl, graph_type *const graph, pid_type *const *const where)
 Serially generate a 2-way vertex separator using metis. More...
 
void metis_nd (ctrl_type *const ctrl, graph_type *const graph, pid_type *const *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.