COMBINATORIAL_BLAS  1.6
combblas::FullyDist< IT, NT, typename combblas::disable_if< combblas::is_boolean< NT >::value, NT >::type > Class Template Reference

#include <FullyDist.h>

Public Member Functions

 FullyDist ()
 
 FullyDist (IT globallen)
 
 FullyDist (std::shared_ptr< CommGrid > grid)
 
 FullyDist (std::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
 
 FullyDist ()
 
 FullyDist (IT globallen)
 
 FullyDist (std::shared_ptr< CommGrid > grid)
 
 FullyDist (std::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

std::shared_ptr< CommGridcommGrid
 
IT glen
 

Detailed Description

template<class IT, class NT>
class combblas::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 59 of file FullyDist.h.

Constructor & Destructor Documentation

◆ FullyDist() [1/8]

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

Definition at line 62 of file FullyDist.h.

◆ FullyDist() [2/8]

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

Definition at line 67 of file FullyDist.h.

◆ FullyDist() [3/8]

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

Definition at line 77 of file FullyDist.h.

◆ FullyDist() [4/8]

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

Definition at line 81 of file FullyDist.h.

◆ FullyDist() [5/8]

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

Definition at line 62 of file FullyDist.h.

◆ FullyDist() [6/8]

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

Definition at line 67 of file FullyDist.h.

◆ FullyDist() [7/8]

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

Definition at line 77 of file FullyDist.h.

◆ FullyDist() [8/8]

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

Definition at line 81 of file FullyDist.h.

Member Function Documentation

◆ LengthUntil() [1/2]

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

Definition at line 181 of file FullyDist.h.

◆ LengthUntil() [2/2]

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

◆ MyLocLength() [1/2]

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

Definition at line 240 of file FullyDist.h.

◆ MyLocLength() [2/2]

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

◆ MyRowLength() [1/2]

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

Definition at line 263 of file FullyDist.h.

◆ MyRowLength() [2/2]

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

◆ operator=() [1/2]

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

Definition at line 85 of file FullyDist.h.

◆ operator=() [2/2]

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

Definition at line 85 of file FullyDist.h.

◆ Owner() [1/2]

template<class IT , class NT >
int combblas::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 112 of file FullyDist.h.

◆ Owner() [2/2]

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

◆ OwnerWithinRow() [1/2]

template<class IT , class NT >
int combblas::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 160 of file FullyDist.h.

◆ OwnerWithinRow() [2/2]

template<class IT , class NT >
int combblas::FullyDist< IT, NT, typename combblas::disable_if< combblas::is_boolean< NT >::value, NT >::type >::OwnerWithinRow ( IT  n_thisrow,
IT  ind_withinrow,
IT &  lind 
) const

◆ RowLenUntil() [1/4]

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

Definition at line 201 of file FullyDist.h.

◆ RowLenUntil() [2/4]

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

◆ RowLenUntil() [3/4]

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

Definition at line 221 of file FullyDist.h.

◆ RowLenUntil() [4/4]

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

◆ TotalLength() [1/2]

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

Definition at line 97 of file FullyDist.h.

◆ TotalLength() [2/2]

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

Definition at line 97 of file FullyDist.h.

Member Data Documentation

◆ commGrid

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

Definition at line 102 of file FullyDist.h.

◆ glen

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

Definition at line 103 of file FullyDist.h.


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