60 #ifndef ParallelAnalysis_hpp 61 #define ParallelAnalysis_hpp 208 int dest,
int myRank, MPI_Comm comm = MPI_COMM_WORLD);
211 int src,
int myRank, MPI_Comm comm = MPI_COMM_WORLD);
216 int dest,
int myRank, MPI_Comm comm = MPI_COMM_WORLD);
220 int src,
int myRank, MPI_Comm comm = MPI_COMM_WORLD);
224 int dest,
int myRank, MPI_Comm comm = MPI_COMM_WORLD);
227 int src,
int myRank, MPI_Comm comm = MPI_COMM_WORLD);
240 reduce(
T object,
int myRank,
int numRanks, MPI_Comm comm = MPI_COMM_WORLD)
242 int lchild = 2 * myRank + 1;
243 if (lchild < numRanks) {
245 int rchild = 2 * myRank + 2;
246 if (rchild < numRanks) {
251 int parent = (myRank - 1) / 2;
263 MPI_Comm comm = MPI_COMM_WORLD);
266 MPI_Comm comm = MPI_COMM_WORLD);
273 uint8_t** buffer,
size_t* bufferSz);
300 #endif // ParallelAnalysis_hpp PackedMetrics(uint numNodes, uint mBegId, uint mEndId, uint mDrvdBegId, uint mDrvdEndId)
static const uint m_mEndIdIdx
void reduce(T object, int myRank, int numRanks, MPI_Comm comm=MPI_COMM_WORLD)
void recvMerge(Prof::CallPath::Profile *profile, int src, int myRank, MPI_Comm comm)
void(* T)(int code, va_list_box *box, int put(int c, void *cl), void *cl, unsigned char flags[256], int width, int precision)
double & idx(uint idxNodes, uint idxMetrics)
void unpackMetrics(Prof::CallPath::Profile &profile, const ParallelAnalysis::PackedMetrics &packedMetrics)
static const uint m_mBegIdIdx
void broadcast(Prof::CallPath::Profile *&profile, int myRank, MPI_Comm comm)
Prof::CallPath::Profile * unpackProfile(uint8_t *buffer, size_t bufferSz)
void packSend(Prof::CallPath::Profile *profile, int dest, int myRank, MPI_Comm comm)
static const uint m_numNodesIdx
void packProfile(const Prof::CallPath::Profile &profile, uint8_t **buffer, size_t *bufferSz)
double idx(uint idxNodes, uint idxMetrics) const
void packMetrics(const Prof::CallPath::Profile &profile, ParallelAnalysis::PackedMetrics &packedMetrics)
static const uint m_numHdr