COMBINATORIAL_BLAS  1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Attributes
FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type > Class Template Reference

#include <FullyDist.h>

List of all members.

Public Member Functions

 FullyDist ()
 FullyDist (IT globallen)
 FullyDist (shared_ptr< CommGrid > grid)
 FullyDist (shared_ptr< CommGrid > grid, IT globallen)
FullyDist< IT, NT > & operator= (const FullyDist< IT, NT > &rhs)
IT LengthUntil () const
IT RowLenUntil () const
IT RowLenUntil (int k) const
IT MyLocLength () const
IT MyRowLength () const
IT TotalLength () const
int Owner (IT gind, IT &lind) const
int OwnerWithinRow (IT n_thisrow, IT ind_withinrow, IT &lind) const

Protected Attributes

shared_ptr< CommGridcommGrid
IT glen

Detailed Description

template<class IT, class NT>
class FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >

The full distribution is actually a two-level distribution that matches the matrix distribution In this scheme, each processor row (except the last) is responsible for t = floor(n/sqrt(p)) elements. The last processor row gets the remaining (n-floor(n/sqrt(p))*(sqrt(p)-1)) elements Within the processor row, each processor (except the last) is responsible for loc = floor(t/sqrt(p)) elements. Example: n=103 and p=16 All processors P_ij for i=0,1,2 and j=0,1,2 get floor(floor(102/4)/4) = 6 elements All processors P_i3 for i=0,1,2 get 25-6*3 = 7 elements All processors P_3j for j=0,1,2 get (102-25*3)/4 = 6 elements Processor P_33 gets 27-6*3 = 9 elements Both derived classes, whether sparse or dense, are distributed to processors based on their "length", so that a conversion does not need any communication between sparse and dense formats

Definition at line 58 of file FullyDist.h.


Constructor & Destructor Documentation

template<class IT , class NT >
FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::FullyDist ( )
inline

Definition at line 61 of file FullyDist.h.

template<class IT , class NT >
FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::FullyDist ( IT  globallen)
inline

Definition at line 65 of file FullyDist.h.

template<class IT , class NT >
FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::FullyDist ( shared_ptr< CommGrid grid)
inline

Definition at line 69 of file FullyDist.h.

template<class IT , class NT >
FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::FullyDist ( shared_ptr< CommGrid grid,
IT  globallen 
)
inline

Definition at line 73 of file FullyDist.h.


Member Function Documentation

template<class IT , class NT >
IT FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::LengthUntil ( ) const

Definition at line 173 of file FullyDist.h.

template<class IT , class NT >
IT FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::MyLocLength ( ) const

Definition at line 232 of file FullyDist.h.

template<class IT , class NT >
IT FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::MyRowLength ( ) const

Definition at line 255 of file FullyDist.h.

template<class IT , class NT >
FullyDist<IT,NT>& FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::operator= ( const FullyDist< IT, NT > &  rhs)
inline

Definition at line 77 of file FullyDist.h.

template<class IT , class NT >
int FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::Owner ( IT  gind,
IT &  lind 
) const

Given global index gind, Return the owner processor id, and Assign the local index to lind

Definition at line 104 of file FullyDist.h.

template<class IT , class NT >
int FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::OwnerWithinRow ( IT  n_thisrow,
IT  ind_withinrow,
IT &  lind 
) const
Parameters:
[in]ind_withinrow{index within processor row}
[in]n_thisrow{length within this row}
[out]lind{index local to owning processor} Return the owner processor id (within processor row)

Definition at line 152 of file FullyDist.h.

template<class IT , class NT >
IT FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::RowLenUntil ( ) const

Definition at line 193 of file FullyDist.h.

template<class IT , class NT >
IT FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::RowLenUntil ( int  k) const

Definition at line 213 of file FullyDist.h.

template<class IT , class NT >
IT FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::TotalLength ( ) const
inline

Definition at line 89 of file FullyDist.h.


Member Data Documentation

template<class IT , class NT >
shared_ptr<CommGrid> FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::commGrid
protected

Definition at line 94 of file FullyDist.h.

template<class IT , class NT >
IT FullyDist< IT, NT, typename CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >::glen
protected

Definition at line 95 of file FullyDist.h.


The documentation for this class was generated from the following file: