mt-Metis
|
Functions for allocating, freeing, and manipulating control structures. More...
Macros | |
#define | MTMETIS_CTRL_C |
#define | FIND_STRING(table, str) S_find_string(table,sizeof(table)/sizeof(char*),str) |
Functions | |
ctrl_type * | ctrl_create (void) |
Allocate and initialize a control structure. More... | |
void | ctrl_setup (ctrl_type *const ctrl, real_type *const tpwgts, vtx_type const nvtxs) |
Setup a control structure to partition a graph with a specified number of vertices. The structure should already be configured with nthreads and nparts. More... | |
int | ctrl_parse (double const *const options, ctrl_type **const r_ctrl) |
Create a control structure using the specified set of options. More... | |
void | ctrl_free (ctrl_type *ctrl) |
Free a control structure and its associated memory. More... | |
void | ctrl_combine_timers (ctrl_type *const ctrl, ctrl_type const *const ctrl2) |
Combine the times of the two timers into the first. More... | |
void | ser_ctrl_split (ctrl_type const *const ctrl, vtx_type const *const hnvtxs, ctrl_type **const hctrls) |
Split the control structure serially for recursive bisection or nested dissection. More... | |
ctrl_type * | ser_ctrl_rb (ctrl_type *const ctrl, pid_type const *const offset) |
Create a new control for creating an edge separator. More... | |
void | par_ctrl_free (ctrl_type *ctrl) |
Free a control structure and its associated memory. More... | |
ctrl_type * | par_ctrl_split (ctrl_type const *const ctrl, vtx_type const nvtxs, pid_type const nparts, dlthread_comm_t comm) |
Duplicate a control structure. More... | |
int | par_ctrl_parse (double const *const options, ctrl_type **const r_ctrl, dlthread_comm_t comm) |
Parse a control structure options in parallel. More... | |
void | par_ctrl_setup (ctrl_type *const ctrl, real_type *const tpwgts, vtx_type const nvtxs) |
Setup a control structure in parallel. More... | |
ctrl_type * | par_ctrl_rb (ctrl_type *const ctrl, pid_type const *const offset) |
Create a new control for creating an edge separator. More... | |
char const * | trans_ptype_string (const mtmetis_ptype_t type) |
char const * | trans_ctype_string (const mtmetis_ctype_t type) |
char const * | trans_contype_string (const mtmetis_contype_t type) |
char const * | trans_rtype_string (const mtmetis_rtype_t type) |
char const * | trans_verbosity_string (const mtmetis_verbosity_t type) |
char const * | trans_dtype_string (mtmetis_dtype_t const type) |
mtmetis_ptype_t | trans_string_ptype (char const *const str) |
mtmetis_ctype_t | trans_string_ctype (char const *const str) |
mtmetis_contype_t | trans_string_contype (char const *const str) |
mtmetis_rtype_t | trans_string_rtype (char const *const str) |
mtmetis_verbosity_t | trans_string_verbosity (char const *const str) |
mtmetis_dtype_t | trans_string_dtype (char const *const str) |
Functions for allocating, freeing, and manipulating control structures.
Combine the times of the two timers into the first.
ctrl | The timer to recieve the combined times. |
ctrl2 | The timer to combine times with. |
ctrl_type* ctrl_create | ( | void | ) |
Allocate and initialize a control structure.
void ctrl_free | ( | ctrl_type * | ctrl | ) |
Free a control structure and its associated memory.
ctrl | The control structure to free. |
int ctrl_parse | ( | double const * | options, |
ctrl_type ** | ctrl | ||
) |
Create a control structure using the specified set of options.
options | The options specifying how to setup the ctrl. |
ctrl | A reference to the control structure to allocate and configure. |
void ctrl_setup | ( | ctrl_type * | ctrl, |
real_type * | tpwgts, | ||
vtx_type | nvtxs | ||
) |
Setup a control structure to partition a graph with a specified number of vertices. The structure should already be configured with nthreads and nparts.
ctrl | The control structure to configure. |
tpwgts | The target partition weights for this control (can be NULL). |
nvtxs | The number of vertices in the graph to partition. |
void par_ctrl_free | ( | ctrl_type * | ctrl | ) |
Free a control structure and its associated memory.
ctrl | The control structure to free. |
int par_ctrl_parse | ( | double const * | options, |
ctrl_type ** | r_ctrl, | ||
dlthread_comm_t | comm | ||
) |
Parse a control structure options in parallel.
options | The options to parse. |
r_ctrl | A reference to the ctrl pointer. |
comm | The thread communicator for the current thread group. |
Create a new control for creating an edge separator.
ctrl | The control to parse options from. |
offset | The prefixsum of the number of partitions per half (lengh 3). This is an exclusive prefixsum so offset[0] = 0, and offset[2] = ctrl->nparts. |
void par_ctrl_setup | ( | ctrl_type * | ctrl, |
real_type * | tpwgts, | ||
vtx_type | nvtxs | ||
) |
Setup a control structure in parallel.
ctrl | The control structure. |
tpwgts | The target partition weights for this control (can be NULL). |
nvtxs | The number of vertices in the graph. |
ctrl_type* par_ctrl_split | ( | ctrl_type const * | ctrl, |
vtx_type | nvtxs, | ||
pid_type | nparts, | ||
dlthread_comm_t | comm | ||
) |
Duplicate a control structure.
ctrl | The control structure to split. |
nvtxs | The new number of starting vertices. |
nparts | The new number of partitions. |
comm | The new thread communicator. |
Create a new control for creating an edge separator.
ctrl | The control to parse options from. |
offset | The prefixsum of the number of partitions per half (lengh 3). This is an exclusive prefixsum so offset[0] = 0, and offset[2] = ctrl->nparts. |
Split the control structure serially for recursive bisection or nested dissection.
ctrl | The base control to split. |
hnvtxs | The number of vertices in each graph. |
hctrl | The two resulting ctrls (output). |