Static Public Member Functions | Static Private Member Functions

util::MProbe< T, SubMa, Ma > Class Template Reference

M-way partitioning algorithm feasibility check. The check is done on a set of arrays as described in section 3.2.2 of "E. Saule, E. O. Bas, U. V. Catalyurek, Load-Balancing Spatially Located Computations using Rectangular Partitions Paper, Tech. Report, ArXiv, no. arXiv:1104.2566v1, 2011" More...

#include <util/m_probe.hpp>


Detailed Description

template<typename T, typename SubMa, typename Ma>
class util::MProbe< T, SubMa, Ma >

M-way partitioning algorithm feasibility check. The check is done on a set of arrays as described in section 3.2.2 of "E. Saule, E. O. Bas, U. V. Catalyurek, Load-Balancing Spatially Located Computations using Rectangular Partitions Paper, Tech. Report, ArXiv, no. arXiv:1104.2566v1, 2011"

List of all members.

Static Public Member Functions

static bool probe (T b, const Ma &arrs, int m, int **lb, int **ub, int *procs, int **cuts)

Static Private Member Functions

static int rprobe (const SubMa &wpre, int length, const T &bottleneck, int numproc, int *s, int *sl, int *sh)

Member Function Documentation

template<typename T, typename SubMa, typename Ma>
static bool util::MProbe< T, SubMa, Ma >::probe ( T  b,
const Ma &  arrs,
int  m,
int **  lb,
int **  ub,
int *  procs,
int **  cuts 
) [inline, static]

Given a bottleneck, processor count and multiple arrays, returns feasiblity (yes/no) and cut points if feasible

Parameters:
b Bottleneck value to be tested
arrs A data structure that holds multiple prefix sum arrays
m the number of processors to be tested
lb lower bound array
ub upper bound array
procs the resulting processor count per array
cuts the resulting cut points per array. Cut points are described nicol+
Returns:
*procs and **cuts are assigned. True or false returned depending on feasibility
template<typename T, typename SubMa, typename Ma>
static int util::MProbe< T, SubMa, Ma >::rprobe ( const SubMa &  wpre,
int  length,
const T bottleneck,
int  numproc,
int *  s,
int *  sl,
int *  sh 
) [inline, static, private]

This funtion is very similar to rprobe of the nicol+. The only difference is that this one returns processor number if bottleneck b is feasible

Parameters:
wpre a 1d prefixsum array
length the length of the 1d prefix sum array
bottleneck bottleneck value to be tesed
numproc the number of processors to be tried
s cut points
sl cut point lower bounds per processor
sh cut point upper bounds per processor
Returns:
p if it is possible to partition an array with a given bottleneck B. retuns -1 otherwise. *s includes cut points if feasible

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines