COMBINATORIAL_BLAS  1.6
parUtils.cpp File Reference
#include "mpi.h"
#include "binUtils.h"
#include "dtypes.h"
#include "parUtils.h"

Go to the source code of this file.

Namespaces

 par
 Collection of Generic Parallel Functions: Sorting, Partitioning, Searching,...
 

Functions

unsigned int par::splitCommBinary (MPI_Comm orig_comm, MPI_Comm *new_comm)
 Splits a communication group into two, the first having a power of 2 number of processors and the other having the remainder. The first group is sorted in the ascending order of their ranks in the old comm and the second group is sorted in the descending order of their ranks in the old comm. More...
 
unsigned int par::splitCommBinaryNoFlip (MPI_Comm orig_comm, MPI_Comm *new_comm)
 Splits a communication group into two, the first having a power of 2 number of processors and the other having the remainder. Both the groups are sorted in the ascending order of their ranks in the old comm. More...
 
int par::splitComm2way (bool iAmEmpty, MPI_Comm *new_comm, MPI_Comm orig_comm)
 Splits a communication group into two, one containing processors that passed a value of 'false' for the parameter 'iAmEmpty' and the another containing processors that passed a value of 'true' for the parameter. Both the groups are sorted in the ascending order of their ranks in the old comm. More...
 
int par::splitCommUsingSplittingRank (int splittingRank, MPI_Comm *new_comm, MPI_Comm orig_comm)
 
int par::splitComm2way (const bool *isEmptyList, MPI_Comm *new_comm, MPI_Comm orig_comm)
 Splits a communication group into two depending on the values in isEmptyList. Both the groups are sorted in the ascending order of their ranks in the old comm. All processors must call this function with the same 'isEmptyList' array. More...
 
int par::AdjustCommunicationPattern (std::vector< int > &send_sizes, std::vector< int > &send_partners, std::vector< int > &recv_sizes, std::vector< int > &recv_partners, MPI_Comm comm)