Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

parUtils.C File Reference

#include "mpi.h"
#include "binUtils.h"
#include "dtypes.h"
#include "parUtils.h"

Go to the source code of this file.

Namespaces

namespace  par

Functions

int splitComm2way (const bool *isEmptyList, MPI_Comm *new_comm, MPI_Comm 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.
int splitComm2way (bool iAmEmpty, MPI_Comm *new_comm, MPI_Comm 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.
unsigned int 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.
unsigned int 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.
int splitCommUsingSplittingRank (int splittingRank, MPI_Comm *new_comm, MPI_Comm comm)


Detailed Description

Author:
Rahul S. Sampath, rahul.sampath@gmail.com

Hari Sundar, hsundar@gmail.com

Definition in file parUtils.C.


Function Documentation

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.

Author:
Rahul Sampath
Parameters:
isEmptyList flags (of length equal to the number of processors) to determine whether each processor is active or not.
orig_comm The comm group that needs to be split.
new_comm The new comm group.

Definition at line 216 of file parUtils.C.

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.

Author:
Rahul Sampath
Parameters:
iAmEmpty Some flag to determine which group the calling processor will be combined into.
orig_comm The comm group that needs to be split.
new_comm The new comm group.

Definition at line 114 of file parUtils.C.

References PROF_SPLIT_COMM_2WAY_BEGIN, and PROF_SPLIT_COMM_2WAY_END.

Referenced by ot::completeOctree(), ComputeFBM2_RHS_Part1(), ComputeFBM_RHS_Part2(), ComputeRHS9(), createGDmatType2_Type2(), createLmatType1_Type2(), createLmatType2_Type2(), createMmatType1_Type2(), createMmatType2_Type2(), createRHSType2_Type2(), ot::createShapeFnCoeffs_Type2(), createShFnMat_Type2(), ot::DA::DA_FactoryPart0(), ot::DA::DA_FactoryPart1(), ot::DAMG_InitPrivateType2(), ot::DAMGCreateAndSetDA(), par::test::isSorted(), par::test::isUniqueAndSorted(), ot::lineariseList(), main(), par::removeDuplicates(), and ot::simpleCoarsen().

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.

Author:
Hari Sundar
Parameters:
orig_comm The comm group that needs to be split.
new_comm The new comm group.

Definition at line 21 of file parUtils.C.

References binOp::getPrevHighestPowerOfTwo().

Referenced by par::bitonicSort().

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.

Author:
Hari Sundar
Parameters:
orig_comm The comm group that needs to be split.
new_comm The new comm group.

Definition at line 67 of file parUtils.C.

References binOp::getPrevHighestPowerOfTwo().

Referenced by par::bitonicSort().

int par::splitCommUsingSplittingRank int  splittingRank,
MPI_Comm *  new_comm,
MPI_Comm  orig_comm
 

Definition at line 172 of file parUtils.C.

References PROF_SPLIT_COMM_BEGIN, and PROF_SPLIT_COMM_END.

Referenced by ot::balanceOctree(), ot::coarsenOctree(), ot::DA::DA_FactoryPart3(), ot::DAMGCreateAndSetDA(), ot::points2Octree(), ot::regularGrid2Octree(), and par::sampleSort().


Generated on Tue Mar 24 16:14:16 2009 for DENDRO by  doxygen 1.3.9.1