PetaVision  Alpha
 All Data Structures Namespaces Functions Variables
PV::InterColComm Class Reference
Inheritance diagram for PV::InterColComm:

Public Member Functions

 InterColComm (PV_Arguments *argumentList)
int addPublisher (HyPerLayer *pub)
int clearPublishers ()
int commBatch ()
int commColumn ()
int commRank ()
int commRow ()
int commSize ()
MPI_Comm communicator ()
int exchange (pvdata_t *data, const MPI_Datatype neighborDatatypes[], const PVLayerLoc *loc)
int exchangeBorders (int pubId, const PVLayerLoc *loc, int delay=0)
double fprintTime (std::ostream &st)
int getReverseTag (int neighbor)
int getTag (int neighbor)
int globalCommRank ()
int globalCommSize ()
MPI_Comm globalCommunicator ()
bool hasNeighbor (int neighborId)
int increaseTimeLevel (int pubId)
bool isExtraProc ()
char * name ()
int neighborIndex (int commId, int index)
int numberOfBorders ()
int numberOfNeighbors ()
int numCommBatches ()
int numCommColumns ()
int numCommRows ()
int publish (HyPerLayer *pub, PVLayerCube *cube)
DataStorepublisherStore (int pubId)
size_t recvOffset (int n, const PVLayerLoc *loc)
int reverseDirection (int commId, int direction)
size_t sendOffset (int n, const PVLayerLoc *loc)
int subscribe (BaseConnection *conn)
int updateActiveIndices (int pubId)
int updateAllActiveIndices (int pubId)
int wait (int pubId)

Static Public Member Functions

static int freeDatatypes (MPI_Datatype *mpi_datatypes)
static MPI_Datatype * newDatatypes (const PVLayerLoc *loc)

Protected Member Functions

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

Protected Attributes

int borders [NUM_NEIGHBORHOOD-1]
int isExtra
int neighbors [NUM_NEIGHBORHOOD]
int numBorders
int numNeighbors
int remoteNeighbors [NUM_NEIGHBORHOOD]

Private Member Functions

int resizePublishersArray (int newSize)

Private Attributes

int numPublishers
int publisherArraySize
Publisher ** publishers

Detailed Description

Definition at line 91 of file InterColComm.hpp.

Member Function Documentation

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

Returns the batch column id for the given communication id

Definition at line 220 of file Communicator.cpp.

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

Returns the communication column id for the given communication id

Definition at line 212 of file Communicator.cpp.

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

Returns the communication id for a given row and column

Definition at line 231 of file Communicator.cpp.

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

Returns the communication row id for the given communication id

Definition at line 204 of file Communicator.cpp.

int PV::Communicator::exchange ( pvdata_t *  data,
const MPI_Datatype  neighborDatatypes[],
const PVLayerLoc loc 

Exchange data with neighbors

  • the data regions to be sent are described by the datatypes
  • do irecv first so there is a location for send data to be received

Definition at line 737 of file Communicator.cpp.

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

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

Definition at line 239 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 442 of file Communicator.cpp.

MPI_Datatype * PV::Communicator::newDatatypes ( const PVLayerLoc loc)

Create a set of data types for inter-neighbor communication

  • caller should delete the MPI_Datatype array by calling Communicator::freeDatatypes

Definition at line 645 of file Communicator.cpp.

int PV::Communicator::numberOfNeighbors ( )

Returns the number in communication neighborhood (local included)

Definition at line 320 of file Communicator.cpp.

size_t PV::Communicator::recvOffset ( int  n,
const PVLayerLoc loc 

Returns the recv data offset for the given neighbor

  • recv into borders

Definition at line 561 of file Communicator.cpp.

size_t PV::Communicator::sendOffset ( int  n,
const PVLayerLoc loc 

Returns the send data offset for the given neighbor

  • send from interior

Definition at line 601 of file Communicator.cpp.

int PV::InterColComm::wait ( int  pubId)

wait until all outstanding published messages have arrived

Definition at line 121 of file InterColComm.cpp.

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