#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< 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.
| 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 >::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 >::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.
| 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 |
| [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.
| 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 |
| 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 |
|
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.