|
PaCO++
0.05
|

Go to the source code of this file.
Defines | |
| #define | DISTRIBUTION_TYPE 16 |
| #define | DST_TOPOLOGY 2 |
| #define | ELEMENT_SIZE 4 |
| #define | SRC_TOPOLOGY 1 |
| #define | TOTAL_SIZE 8 |
Functions | |
| static unsigned | BlocNumberOfElementProc (const unsigned glen, const unsigned rank, const unsigned nbprocs, const unsigned bsz, const unsigned pos) |
| static unsigned | blocSize (const unsigned glen, const unsigned nbprocs, const BasicBC_param_t ¶m) |
| static unsigned | computeBlocBoundInf (const unsigned bsz, const unsigned rank, const unsigned nbprocs, const unsigned pos) |
| static void | computeBlocBounds (unsigned long *low, unsigned long *high, const unsigned glen, const unsigned rank, const unsigned nbprocs, const unsigned bsz, const unsigned pos) |
| static unsigned | getProcRangeInf (unsigned low, unsigned bsz) |
| static unsigned | getProcRangeSup (unsigned high, unsigned bsz) |
| static unsigned | NumberOfBlocProc (const unsigned glen, const unsigned nbprocs, const unsigned bsz, const unsigned rank) |
| static unsigned | OwnerBloc (const unsigned bid, const unsigned nbprocs) |
| static unsigned | TotalNumberOfElementProc (const unsigned glen, const unsigned rank, const unsigned nbprocs, const unsigned bsz) |
| #define DISTRIBUTION_TYPE 16 |
Definition at line 8 of file BasicBC.cc.
Referenced by BasicBC::setBlocSize().
| #define DST_TOPOLOGY 2 |
Definition at line 5 of file BasicBC.cc.
Referenced by BasicBC::setDestTopology().
| #define ELEMENT_SIZE 4 |
Definition at line 6 of file BasicBC.cc.
Referenced by BasicBC::setEltSize().
| #define SRC_TOPOLOGY 1 |
Definition at line 4 of file BasicBC.cc.
Referenced by BasicBC::setSourceTopology().
| #define TOTAL_SIZE 8 |
Definition at line 7 of file BasicBC.cc.
Referenced by BasicBC::setTotalNbElt().
| static unsigned BlocNumberOfElementProc | ( | const unsigned | glen, |
| const unsigned | rank, | ||
| const unsigned | nbprocs, | ||
| const unsigned | bsz, | ||
| const unsigned | pos | ||
| ) | [inline, static] |
Definition at line 45 of file BasicBC.cc.
Referenced by BasicBC::computePiecesToSend().
{
unsigned long low = ( pos * nbprocs + rank ) * bsz;
unsigned long end = low + bsz;
unsigned long high = (glen < end ? glen : end);
return ( high - low );
}
| static unsigned blocSize | ( | const unsigned | glen, |
| const unsigned | nbprocs, | ||
| const BasicBC_param_t & | param | ||
| ) | [inline, static] |
Definition at line 98 of file BasicBC.cc.
References BASICBC_BLOC, BASICBC_BLOCCYCLIC, BASICBC_CYCLIC, BasicBC_param_t::blocsize, BasicBC_param_t::type, and BasicBC_param_t::unitsize.
Referenced by BasicBC::computePiecesToSend(), and BasicBC::setDescr().
{
switch(param.type)
{
case BASICBC_BLOC:
{
unsigned nbbloc = (glen + param.unitsize - 1) / param.unitsize;
return ((nbbloc + nbprocs - 1 ) / nbprocs) * param.unitsize;
}
case BASICBC_CYCLIC: return param.unitsize; break;
case BASICBC_BLOCCYCLIC: return param.blocsize*param.unitsize; break;
}
return 0;
}
| static unsigned computeBlocBoundInf | ( | const unsigned | bsz, |
| const unsigned | rank, | ||
| const unsigned | nbprocs, | ||
| const unsigned | pos | ||
| ) | [inline, static] |
Definition at line 60 of file BasicBC.cc.
{
return ( pos * nbprocs + rank) * bsz;
}
| static void computeBlocBounds | ( | unsigned long * | low, |
| unsigned long * | high, | ||
| const unsigned | glen, | ||
| const unsigned | rank, | ||
| const unsigned | nbprocs, | ||
| const unsigned | bsz, | ||
| const unsigned | pos | ||
| ) | [inline, static] |
Definition at line 69 of file BasicBC.cc.
Referenced by BasicBC::computePiecesToSend().
{
unsigned long start = (pos * nbprocs + rank) * bsz;
unsigned long end = start + bsz;
*low = start;
*high = ((glen <= end)?glen:end); // min
}
| static unsigned getProcRangeInf | ( | unsigned | low, |
| unsigned | bsz | ||
| ) | [inline, static] |
Definition at line 23 of file BasicBC.cc.
Referenced by BasicBC::computePiecesToSend(), computeReceiveBlock1D(), and computeSendBlock1D().
{
return low / bsz; // first remote node
}
| static unsigned getProcRangeSup | ( | unsigned | high, |
| unsigned | bsz | ||
| ) | [inline, static] |
Definition at line 28 of file BasicBC.cc.
Referenced by BasicBC::computePiecesToSend(), computeReceiveBlock1D(), and computeSendBlock1D().
{
return (high-1) / bsz; // last remote node
}
| static unsigned NumberOfBlocProc | ( | const unsigned | glen, |
| const unsigned | nbprocs, | ||
| const unsigned | bsz, | ||
| const unsigned | rank | ||
| ) | [inline, static] |
Definition at line 35 of file BasicBC.cc.
Referenced by BasicBC::computePiecesToSend(), and TotalNumberOfElementProc().
{
unsigned nbbloc = (glen + bsz - 1 ) / bsz;
return (nbbloc / nbprocs) + (rank < (nbbloc % nbprocs ) ) ;
}
| static unsigned OwnerBloc | ( | const unsigned | bid, |
| const unsigned | nbprocs | ||
| ) | [inline, static] |
Definition at line 16 of file BasicBC.cc.
Referenced by BasicBC::computePiecesToSend().
{
return bid % nbprocs;
}
| static unsigned TotalNumberOfElementProc | ( | const unsigned | glen, |
| const unsigned | rank, | ||
| const unsigned | nbprocs, | ||
| const unsigned | bsz | ||
| ) | [inline, static] |
Definition at line 82 of file BasicBC.cc.
References NumberOfBlocProc().
Referenced by BasicBC::computePiecesToSend(), computeReceiveDataBlock1DServer(), computeSendDataBlock1DClient(), and BasicBC::setDescr().
{
unsigned nbblocfull = NumberOfBlocProc(glen, nbprocs, bsz, rank) - 1;
// Is the last full ?
unsigned long low = ( nbblocfull * nbprocs + rank ) * bsz;
unsigned long end = low + bsz;
unsigned long high = (glen < end ? glen : end);
return nbblocfull * bsz + ( high - low );
}
