PetaVision  Alpha
PV::Communicator Class Reference

Public Member Functions

 Communicator (Arguments *argumentList)
 
MPI_Comm batchCommunicator () const
 
int commBatch ()
 
int commColumn ()
 
int commRank ()
 
int commRow ()
 
int commSize ()
 
MPI_Comm communicator () const
 
MPIBlock const * getBatchMPIBlock () const
 
MPIBlock const * getGlobalMPIBlock () const
 
MPIBlock const * getLocalMPIBlock () const
 
int getReverseTag (int neighbor)
 
int getTag (int neighbor)
 
int globalCommRank ()
 
int globalCommSize ()
 
MPI_Comm globalCommunicator () const
 
bool hasNeighbor (int neighborId)
 
bool isExtraProc ()
 
int neighborIndex (int commId, int index)
 
int numberOfNeighbors ()
 
int numCommBatches ()
 
int numCommColumns ()
 
int numCommRows ()
 
int reverseDirection (int commId, int direction)
 

Static Public Attributes

static const int EAST = 5
 
static const int LOCAL = 0
 
static const int NORTH = 2
 
static const int NORTHEAST = 3
 
static const int NORTHWEST = 1
 
static const int SOUTH = 7
 
static const int SOUTHEAST = 8
 
static const int SOUTHWEST = 6
 
static const int WEST = 4
 

Protected Member Functions

int commBatch (int commId)
 
int commColumn (int commId)
 
int commIdFromRowColumn (int commRow, int commColumn)
 
int commRow (int commId)
 

Protected Attributes

int exchangeCounter = 1024
 
bool isExtra
 
int neighbors [NUM_NEIGHBORHOOD]
 
int numNeighbors
 
int tags [NUM_NEIGHBORHOOD]
 

Private Member Functions

int east (int commRow, int commColumn)
 
int gcd (int a, int b)
 
bool hasEasternNeighbor (int commRow, int commColumn)
 
bool hasNortheasternNeighbor (int commRow, int commColumn)
 
bool hasNorthernNeighbor (int commRow, int commColumn)
 
bool hasNorthwesternNeighbor (int commRow, int commColumn)
 
bool hasSoutheasternNeighbor (int commRow, int commColumn)
 
bool hasSouthernNeighbor (int commRow, int commColumn)
 
bool hasSouthwesternNeighbor (int commRow, int commColumn)
 
bool hasWesternNeighbor (int commRow, int commColumn)
 
int neighborInit ()
 
int north (int commRow, int commColumn)
 
int northeast (int commRow, int commColumn)
 
int northwest (int commRow, int commColumn)
 
int south (int commRow, int commColumn)
 
int southeast (int commRow, int commColumn)
 
int southwest (int commRow, int commColumn)
 
int west (int commRow, int commColumn)
 

Private Attributes

MPIBlockbatchMPIBlock = nullptr
 
int batchRank
 
int batchWidth
 
MPIBlockglobalMPIBlock = nullptr
 
int globalRank
 
int globalSize
 
MPIBlocklocalMPIBlock = nullptr
 
int localRank
 
int localSize
 
int numCols
 
int numRows
 

Detailed Description

Definition at line 21 of file Communicator.hpp.

Member Function Documentation

int PV::Communicator::commBatch ( int  commId)
protected

Returns the batch column id for the given communication id

Definition at line 206 of file Communicator.cpp.

int PV::Communicator::commColumn ( int  commId)
protected

Returns the communication column id for the given communication id

Definition at line 201 of file Communicator.cpp.

int PV::Communicator::commIdFromRowColumn ( int  commRow,
int  commColumn 
)
protected

Returns the communication id for a given row and column

Definition at line 213 of file Communicator.cpp.

int PV::Communicator::commRow ( int  commId)
protected

Returns the communication row id for the given communication id

Definition at line 196 of file Communicator.cpp.

int PV::Communicator::east ( int  commRow,
int  commColumn 
)
private

Returns the communication id of the eastern HyperColumn

Definition at line 348 of file Communicator.cpp.

bool PV::Communicator::hasEasternNeighbor ( int  row,
int  column 
)
private

Returns true if the given commId has an eastern neighbor (false otherwise)

Definition at line 258 of file Communicator.cpp.

bool PV::Communicator::hasNeighbor ( int  neighbor)

Returns true if the given neighbor is present (false otherwise)

Definition at line 221 of file Communicator.cpp.

bool PV::Communicator::hasNortheasternNeighbor ( int  row,
int  column 
)
private

Returns true if the given commId has a northeastern neighbor (false otherwise)

Definition at line 244 of file Communicator.cpp.

bool PV::Communicator::hasNorthernNeighbor ( int  row,
int  column 
)
private

Returns true if the given commId has a northern neighbor (false otherwise)

Definition at line 238 of file Communicator.cpp.

bool PV::Communicator::hasNorthwesternNeighbor ( int  row,
int  column 
)
private

Returns true if the given commId has a northwestern neighbor (false otherwise)

Definition at line 230 of file Communicator.cpp.

bool PV::Communicator::hasSoutheasternNeighbor ( int  row,
int  column 
)
private

Returns true if the given commId has a southeastern neighbor (false otherwise)

Definition at line 278 of file Communicator.cpp.

bool PV::Communicator::hasSouthernNeighbor ( int  row,
int  column 
)
private

Returns true if the given commId has a southern neighbor (false otherwise)

Definition at line 272 of file Communicator.cpp.

bool PV::Communicator::hasSouthwesternNeighbor ( int  row,
int  column 
)
private

Returns true if the given commId has a southwestern neighbor (false otherwise)

Definition at line 264 of file Communicator.cpp.

bool PV::Communicator::hasWesternNeighbor ( int  row,
int  column 
)
private

Returns true if the given commId has a western neighbor (false otherwise)

Definition at line 252 of file Communicator.cpp.

int PV::Communicator::neighborIndex ( int  commId,
int  direction 
)

Returns the intercolumn rank of the neighbor in the given direction If there is no neighbor, returns a negative value

Definition at line 397 of file Communicator.cpp.

int PV::Communicator::neighborInit ( )
private

Initialize the communication neighborhood

Definition at line 147 of file Communicator.cpp.

int PV::Communicator::north ( int  commRow,
int  commColumn 
)
private

Returns the communication id of the northern HyperColumn

Definition at line 313 of file Communicator.cpp.

int PV::Communicator::northeast ( int  commRow,
int  commColumn 
)
private

Returns the communication id of the northeastern HyperColumn

Definition at line 324 of file Communicator.cpp.

int PV::Communicator::northwest ( int  commRow,
int  commColumn 
)
private

Returns the communication id of the northwestern HyperColumn

Definition at line 300 of file Communicator.cpp.

int PV::Communicator::numberOfNeighbors ( )

Returns the number in communication neighborhood (local included)

Definition at line 285 of file Communicator.cpp.

int PV::Communicator::south ( int  commRow,
int  commColumn 
)
private

Returns the communication id of the southern HyperColumn

Definition at line 372 of file Communicator.cpp.

int PV::Communicator::southeast ( int  commRow,
int  commColumn 
)
private

Returns the communication id of the southeastern HyperColumn

Definition at line 383 of file Communicator.cpp.

int PV::Communicator::southwest ( int  commRow,
int  commColumn 
)
private

Returns the communication id of the southwestern HyperColumn

Definition at line 359 of file Communicator.cpp.

int PV::Communicator::west ( int  commRow,
int  commColumn 
)
private

Returns the communication id of the western HyperColumn

Definition at line 337 of file Communicator.cpp.


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