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

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]
 
int tags [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)
protectedinherited

Returns the batch column id for the given communication id

Definition at line 220 of file Communicator.cpp.

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

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 
)
protectedinherited

Returns the communication id for a given row and column

Definition at line 231 of file Communicator.cpp.

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

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 
)
inherited

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)
inherited

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 
)
inherited

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)
staticinherited

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 ( )
inherited

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 
)
inherited

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 
)
inherited

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: