COMBINATORIAL_BLAS  1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Static Public Member Functions
SpParHelper Class Reference

#include <SpParHelper.h>

List of all members.

Static Public Member Functions

template<typename KEY , typename VAL , typename IT >
static void GlobalSelect (IT gl_rank, pair< KEY, VAL > *&low, pair< KEY, VAL > *&upp, pair< KEY, VAL > *array, IT length, const MPI_Comm &comm)
template<typename KEY , typename VAL , typename IT >
static void BipartiteSwap (pair< KEY, VAL > *low, pair< KEY, VAL > *array, IT length, int nfirsthalf, int color, const MPI_Comm &comm)
template<typename KEY , typename VAL , typename IT >
static void MemoryEfficientPSort (pair< KEY, VAL > *array, IT length, IT *dist, const MPI_Comm &comm)
template<typename KEY , typename VAL , typename IT >
static void DebugPrintKeys (pair< KEY, VAL > *array, IT length, IT *dist, MPI_Comm &World)
template<typename IT , typename NT , typename DER >
static void FetchMatrix (SpMat< IT, NT, DER > &MRecv, const vector< IT > &essentials, vector< MPI_Win > &arrwin, int ownind)
template<typename IT , typename NT , typename DER >
static void BCastMatrix (MPI_Comm &comm1d, SpMat< IT, NT, DER > &Matrix, const vector< IT > &essentials, int root)
template<typename IT , typename NT , typename DER >
static void SetWindows (MPI_Comm &comm1d, const SpMat< IT, NT, DER > &Matrix, vector< MPI_Win > &arrwin)
template<typename IT , typename NT , typename DER >
static void GetSetSizes (const SpMat< IT, NT, DER > &Matrix, IT **&sizes, MPI_Comm &comm1d)
template<typename IT , typename DER >
static void AccessNFetch (DER *&Matrix, int owner, vector< MPI_Win > &arrwin, MPI_Group &group, IT **sizes)
template<typename IT , typename DER >
static void LockNFetch (DER *&Matrix, int owner, vector< MPI_Win > &arrwin, MPI_Group &group, IT **sizes)
static void StartAccessEpoch (int owner, vector< MPI_Win > &arrwin, MPI_Group &group)
static void PostExposureEpoch (int self, vector< MPI_Win > &arrwin, MPI_Group &group)
static void LockWindows (int ownind, vector< MPI_Win > &arrwin)
static void UnlockWindows (int ownind, vector< MPI_Win > &arrwin)
static void Print (const string &s)
static void WaitNFree (vector< MPI_Win > &arrwin)
static void FreeWindows (vector< MPI_Win > &arrwin)

Detailed Description

Definition at line 24 of file SpParHelper.h.


Member Function Documentation

template<class IT , class DER >
void SpParHelper::AccessNFetch ( DER *&  Matrix,
int  owner,
vector< MPI_Win > &  arrwin,
MPI_Group &  group,
IT **  sizes 
)
static

Definition at line 513 of file SpParHelper.cpp.

template<typename IT , typename NT , typename DER >
void SpParHelper::BCastMatrix ( MPI_Comm &  comm1d,
SpMat< IT, NT, DER > &  Matrix,
const vector< IT > &  essentials,
int  root 
)
static
Parameters:
[in]Matrix{For the root processor, the local object to be sent to all others. For all others, it is a (yet) empty object to be filled by the received data}
[in]essentials{irrelevant for the root}

Definition at line 419 of file SpParHelper.cpp.

template<typename KEY , typename VAL , typename IT >
void SpParHelper::BipartiteSwap ( pair< KEY, VAL > *  low,
pair< KEY, VAL > *  array,
IT  length,
int  nfirsthalf,
int  color,
const MPI_Comm &  comm 
)
static

Definition at line 235 of file SpParHelper.cpp.

template<typename KEY , typename VAL , typename IT >
void SpParHelper::DebugPrintKeys ( pair< KEY, VAL > *  array,
IT  length,
IT *  dist,
MPI_Comm &  World 
)
static

Definition at line 330 of file SpParHelper.cpp.

template<class IT , class NT , class DER >
void SpParHelper::FetchMatrix ( SpMat< IT, NT, DER > &  MRecv,
const vector< IT > &  essentials,
vector< MPI_Win > &  arrwin,
int  ownind 
)
static
Parameters:
[in,out]MRecv{an already existing, but empty SpMat<...> object}
[in]essentials{carries essential information (i.e. required array sizes) about ARecv}
[in]arrwin{windows array of size equal to the number of built-in arrays in the SpMat data structure}
[in]ownind{processor index (within this processor row/column) of the owner of the matrix to be received}
Remarks:
{The communicator information is implicitly contained in the MPI::Win objects}

Definition at line 388 of file SpParHelper.cpp.

void SpParHelper::FreeWindows ( vector< MPI_Win > &  arrwin)
inlinestatic

Definition at line 580 of file SpParHelper.cpp.

template<class IT , class NT , class DER >
void SpParHelper::GetSetSizes ( const SpMat< IT, NT, DER > &  Matrix,
IT **&  sizes,
MPI_Comm &  comm1d 
)
static
Parameters:
[in]sizes2D array where sizes[i] is an array of size r/s representing the ith essential component of all local blocks within that row/col sizes[i][j] is the size of the ith essential component of the jth local block within this row/col

Definition at line 544 of file SpParHelper.cpp.

template<typename KEY , typename VAL , typename IT >
void SpParHelper::GlobalSelect ( IT  gl_rank,
pair< KEY, VAL > *&  low,
pair< KEY, VAL > *&  upp,
pair< KEY, VAL > *  array,
IT  length,
const MPI_Comm &  comm 
)
static

Definition at line 117 of file SpParHelper.cpp.

template<class IT , class DER >
void SpParHelper::LockNFetch ( DER *&  Matrix,
int  owner,
vector< MPI_Win > &  arrwin,
MPI_Group &  group,
IT **  sizes 
)
static

Definition at line 526 of file SpParHelper.cpp.

void SpParHelper::LockWindows ( int  ownind,
vector< MPI_Win > &  arrwin 
)
inlinestatic

Definition at line 465 of file SpParHelper.cpp.

template<typename KEY , typename VAL , typename IT >
void SpParHelper::MemoryEfficientPSort ( pair< KEY, VAL > *  array,
IT  length,
IT *  dist,
const MPI_Comm &  comm 
)
static

Definition at line 31 of file SpParHelper.cpp.

void SpParHelper::PostExposureEpoch ( int  self,
vector< MPI_Win > &  arrwin,
MPI_Group &  group 
)
inlinestatic
Parameters:
[in]self{rank of "this" processor to be excluded when starting the exposure epoch}

Definition at line 505 of file SpParHelper.cpp.

void SpParHelper::Print ( const string &  s)
inlinestatic

Definition at line 558 of file SpParHelper.cpp.

template<class IT , class NT , class DER >
void SpParHelper::SetWindows ( MPI_Comm &  comm1d,
const SpMat< IT, NT, DER > &  Matrix,
vector< MPI_Win > &  arrwin 
)
static

Definition at line 441 of file SpParHelper.cpp.

void SpParHelper::StartAccessEpoch ( int  owner,
vector< MPI_Win > &  arrwin,
MPI_Group &  group 
)
inlinestatic
Parameters:
[in]owner{target processor rank within the processor group}
[in]arrwin{start access epoch only to owner's arrwin (-windows) }

Definition at line 486 of file SpParHelper.cpp.

void SpParHelper::UnlockWindows ( int  ownind,
vector< MPI_Win > &  arrwin 
)
inlinestatic

Definition at line 473 of file SpParHelper.cpp.

void SpParHelper::WaitNFree ( vector< MPI_Win > &  arrwin)
inlinestatic

Definition at line 568 of file SpParHelper.cpp.


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