Public Member Functions | Private Attributes

twod::JagPQHeurVer< T, Pr, onedalgoY, onedalgoX > Class Template Reference

implements a PxQ jagged partitioning heuristic using the second dimension as main dimension. More...

#include <twod/her_jag_2d.hpp>

Inheritance diagram for twod::JagPQHeurVer< T, Pr, onedalgoY, onedalgoX >:
twod::PartBase< T, Pr >

Detailed Description

template<typename T, typename Pr, T(*)(int procCount, const util::Aggreg2Dto1D< T, util::TransposePrefix2D< T, Pr >, false > &prefixSumArray, int length, int *cutIndexes, T) onedalgoY = oned::NicolPlus<T, util::Aggreg2Dto1D<T, util::TransposePrefix2D<T, Pr>, false> >::nicol_plus, T(*)(int procCount, const util::Aggreg2Dto1D< T, util::TransposePrefix2D< T, Pr >, true > &prefixSumArray, int length, int *cutIndexes, T) onedalgoX = oned::NicolPlus<T, util::Aggreg2Dto1D<T, util::TransposePrefix2D<T, Pr>, true> >::nicol_plus>
class twod::JagPQHeurVer< T, Pr, onedalgoY, onedalgoX >

implements a PxQ jagged partitioning heuristic using the second dimension as main dimension.

This class is implemented as a wrapper to twod::JagPQHeurHor using util::TransposePrefix2D.

Parameters:
T data type of instance matrix
Pr data type of 2D matrix

List of all members.

Public Member Functions

 JagPQHeurVer ()
virtual ~JagPQHeurVer ()
void setP (int P)
 selects the number of stripes in the main dimension
virtual T part (int procCount, const Pr &prefixSumArray, util::RectList< T, Pr > &parts)

Private Attributes

int P

Constructor & Destructor Documentation

template<typename T , typename Pr , T(*)(int procCount, const util::Aggreg2Dto1D< T, util::TransposePrefix2D< T, Pr >, false > &prefixSumArray, int length, int *cutIndexes, T) onedalgoY, T(*)(int procCount, const util::Aggreg2Dto1D< T, util::TransposePrefix2D< T, Pr >, true > &prefixSumArray, int length, int *cutIndexes, T) onedalgoX>
twod::JagPQHeurVer< T, Pr, onedalgoY, onedalgoX >::JagPQHeurVer (  ) 
template<typename T , typename Pr , T(*)(int procCount, const util::Aggreg2Dto1D< T, util::TransposePrefix2D< T, Pr >, false > &prefixSumArray, int length, int *cutIndexes, T) onedalgoY, T(*)(int procCount, const util::Aggreg2Dto1D< T, util::TransposePrefix2D< T, Pr >, true > &prefixSumArray, int length, int *cutIndexes, T) onedalgoX>
twod::JagPQHeurVer< T, Pr, onedalgoY, onedalgoX >::~JagPQHeurVer (  )  [virtual]

Member Function Documentation

template<typename T , typename Pr , T(*)(int procCount, const util::Aggreg2Dto1D< T, util::TransposePrefix2D< T, Pr >, false > &prefixSumArray, int length, int *cutIndexes, T) onedalgoY, T(*)(int procCount, const util::Aggreg2Dto1D< T, util::TransposePrefix2D< T, Pr >, true > &prefixSumArray, int length, int *cutIndexes, T) onedalgoX>
T twod::JagPQHeurVer< T, Pr, onedalgoY, onedalgoX >::part ( int  procCount,
const Pr prefixSumArray,
util::RectList< T, Pr > &  parts 
) [virtual]

Applies 2d heuristic jagged partitioning to a given 2d prefixSumArray

Parameters:
procCount is the number of processors
prefixSumArray first column and first row consists of zero only. But the borders of rectangles in rect_list never touch this area (index 0 in row or column)
parts must be allocated before calling this function
Returns:
*parts, a rectangle list of partitions. Borders of the rectangle is incuded when calculating total load of a rectangle

Implements twod::PartBase< T, Pr >.

template<typename T , typename Pr , T(*)(int procCount, const util::Aggreg2Dto1D< T, util::TransposePrefix2D< T, Pr >, false > &prefixSumArray, int length, int *cutIndexes, T) onedalgoY, T(*)(int procCount, const util::Aggreg2Dto1D< T, util::TransposePrefix2D< T, Pr >, true > &prefixSumArray, int length, int *cutIndexes, T) onedalgoX>
void twod::JagPQHeurVer< T, Pr, onedalgoY, onedalgoX >::setP ( int  P  ) 

selects the number of stripes in the main dimension

Parameters:
P number of stripes in the main dimension. If 0, the number of stripes will be computed at runtime by taking the square root of the number of processors.

Member Data Documentation

template<typename T , typename Pr , T(*)(int procCount, const util::Aggreg2Dto1D< T, util::TransposePrefix2D< T, Pr >, false > &prefixSumArray, int length, int *cutIndexes, T) onedalgoY = oned::NicolPlus<T, util::Aggreg2Dto1D<T, util::TransposePrefix2D<T, Pr>, false> >::nicol_plus, T(*)(int procCount, const util::Aggreg2Dto1D< T, util::TransposePrefix2D< T, Pr >, true > &prefixSumArray, int length, int *cutIndexes, T) onedalgoX = oned::NicolPlus<T, util::Aggreg2Dto1D<T, util::TransposePrefix2D<T, Pr>, true> >::nicol_plus>
int twod::JagPQHeurVer< T, Pr, onedalgoY, onedalgoX >::P [private]

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