#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 |
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< CommGrid > | commGrid |
IT | glen |
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.
|
inlineexplicit |
Definition at line 62 of file FullyDist.h.
|
inlineexplicit |
Definition at line 67 of file FullyDist.h.
|
inline |
Definition at line 77 of file FullyDist.h.
|
inline |
Definition at line 81 of file FullyDist.h.
|
inlineexplicit |
Definition at line 62 of file FullyDist.h.
|
inlineexplicit |
Definition at line 67 of file FullyDist.h.
|
inline |
Definition at line 77 of file FullyDist.h.
|
inline |
Definition at line 81 of file FullyDist.h.
|
inlineexplicit |
Definition at line 62 of file FullyDist.h.
|
inlineexplicit |
Definition at line 67 of file FullyDist.h.
|
inline |
Definition at line 77 of file FullyDist.h.
|
inline |
Definition at line 81 of file FullyDist.h.
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.
IT combblas::FullyDist< IT, NT, typename combblas::disable_if< combblas::is_boolean< NT >::value, NT >::type >::LengthUntil | ( | ) | const |
IT combblas::FullyDist< IT, NT, typename combblas::disable_if< combblas::is_boolean< NT >::value, NT >::type >::LengthUntil | ( | ) | const |
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.
IT combblas::FullyDist< IT, NT, typename combblas::disable_if< combblas::is_boolean< NT >::value, NT >::type >::MyLocLength | ( | ) | const |
IT combblas::FullyDist< IT, NT, typename combblas::disable_if< combblas::is_boolean< NT >::value, NT >::type >::MyLocLength | ( | ) | const |
IT combblas::FullyDist< IT, NT, typename combblas::disable_if< combblas::is_boolean< NT >::value, NT >::type >::MyRowLength | ( | ) | const |
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.
IT combblas::FullyDist< IT, NT, typename combblas::disable_if< combblas::is_boolean< NT >::value, NT >::type >::MyRowLength | ( | ) | const |
|
inline |
Definition at line 85 of file FullyDist.h.
|
inline |
Definition at line 85 of file FullyDist.h.
|
inline |
Definition at line 85 of file FullyDist.h.
int combblas::FullyDist< IT, NT, typename combblas::disable_if< combblas::is_boolean< NT >::value, NT >::type >::Owner | ( | IT | gind, |
IT & | lind | ||
) | const |
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.
int combblas::FullyDist< IT, NT, typename combblas::disable_if< combblas::is_boolean< NT >::value, NT >::type >::Owner | ( | IT | gind, |
IT & | lind | ||
) | const |
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 |
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 |
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 |
[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.
IT combblas::FullyDist< IT, NT, typename combblas::disable_if< combblas::is_boolean< NT >::value, NT >::type >::RowLenUntil | ( | ) | const |
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.
IT combblas::FullyDist< IT, NT, typename combblas::disable_if< combblas::is_boolean< NT >::value, NT >::type >::RowLenUntil | ( | ) | const |
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.
IT combblas::FullyDist< IT, NT, typename combblas::disable_if< combblas::is_boolean< NT >::value, NT >::type >::RowLenUntil | ( | int | k | ) | const |
IT combblas::FullyDist< IT, NT, typename combblas::disable_if< combblas::is_boolean< NT >::value, NT >::type >::RowLenUntil | ( | int | k | ) | const |
|
inline |
Definition at line 97 of file FullyDist.h.
|
inline |
Definition at line 97 of file FullyDist.h.
|
inline |
Definition at line 97 of file FullyDist.h.
|
protected |
Definition at line 102 of file FullyDist.h.
|
protected |
Definition at line 103 of file FullyDist.h.