MPIInputBufferVector Class Reference

#include <MPIInputBuffer.h>

Collaboration diagram for MPIInputBufferVector:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 MPIInputBufferVector (vector< vector< gl_engineid_t > > &glengineids, int numBuffers)
 Constructor.
virtual ~MPIInputBufferVector ()
MPIInputBufferoperator[] (int idx)
 References the idx MPIInputBuffer in the array.
void * getBaseBufferPtr ()
 Gives a pointer of the allocated space for the buffers. [used for testing only].
unsigned int size ()
 Returns the number of MPIInputBuffers in the array.
void initialize (int minDelay, size_t maxMPIMessageSize=0, size_t spikeBufferSize=MPIBUFFER_BLOCK_SIZE)
 Initializes all input buffers. Allocates memory blocks used by the input buffers.
void startNewMPIExchange ()
void prepareNextBufferSlices ()
MPIExchangeBlocksInfogetMPIExchangeBlocksInfo ()

Protected Attributes

bool initialized
int nNodes
 Number of mpi input buffers in the vector (equals to number of mpi nodes).
size_t spike_buffer_size
 Size of the memory block to store the serialized spike data in incoming mpi messages.
size_t max_mpi_msg_size
 Maximum size of mpi message sent in one all-to-all exchange iteration.
vector< MPIInputBuffer_buffers
 vector of all MPIInputBuffers
char * memoryPool
 The allocated contiguous memory block.
MPIExchangeBlocksInfo mpiExchBlocksInfo


Detailed Description

Definition at line 131 of file MPIInputBuffer.h.


Constructor & Destructor Documentation

MPIInputBufferVector::MPIInputBufferVector ( vector< vector< gl_engineid_t > > &  glengineids,
int  numBuffers 
)

Constructor.

Parameters:
numBuffers number of MPIInputBuffers to create in the array.
buf_size size of the memory block to store the serialized data in incoming mpi messages.

Definition at line 130 of file MPIInputBuffer.cpp.

References _buffers, nNodes, and size().

Here is the call graph for this function:

virtual MPIInputBufferVector::~MPIInputBufferVector (  )  [inline, virtual]

Definition at line 142 of file MPIInputBuffer.h.

References initialized, and memoryPool.


Member Function Documentation

MPIInputBuffer& MPIInputBufferVector::operator[] ( int  idx  )  [inline]

References the idx MPIInputBuffer in the array.

Definition at line 149 of file MPIInputBuffer.h.

References _buffers.

void* MPIInputBufferVector::getBaseBufferPtr (  )  [inline]

Gives a pointer of the allocated space for the buffers. [used for testing only].

Definition at line 155 of file MPIInputBuffer.h.

References memoryPool.

Referenced by MPIDefaultAllToAllCommunicator::doExchangeAlgorithm().

unsigned int MPIInputBufferVector::size (  )  [inline]

Returns the number of MPIInputBuffers in the array.

Definition at line 161 of file MPIInputBuffer.h.

References nNodes.

Referenced by MPIInputBufferVector(), and STDistributedIncomingSpikeScheduler::processMPIInputSpikeBuffers().

void MPIInputBufferVector::initialize ( int  minDelay,
size_t  maxMPIMessageSize = 0,
size_t  spikeBufferSize = MPIBUFFER_BLOCK_SIZE 
)

Initializes all input buffers. Allocates memory blocks used by the input buffers.

Definition at line 139 of file MPIInputBuffer.cpp.

References _buffers, MPIExchangeBlocksInfo::getMsgSpec(), initialized, max_mpi_msg_size, memoryPool, mpiExchBlocksInfo, nNodes, and spike_buffer_size.

Referenced by DistributedMultiThreadNetwork::_initialize_().

Here is the call graph for this function:

void MPIInputBufferVector::startNewMPIExchange (  )  [inline]

Definition at line 170 of file MPIInputBuffer.h.

References _buffers.

Referenced by MPIAllToAllCommunicator::doAllToAllExchange().

void MPIInputBufferVector::prepareNextBufferSlices (  )  [inline]

Definition at line 177 of file MPIInputBuffer.h.

References _buffers.

Referenced by MPIAllToAllCommunicator::doAllToAllExchange().

MPIExchangeBlocksInfo & MPIInputBufferVector::getMPIExchangeBlocksInfo (  ) 


Member Data Documentation

Definition at line 187 of file MPIInputBuffer.h.

Referenced by initialize(), and ~MPIInputBufferVector().

Number of mpi input buffers in the vector (equals to number of mpi nodes).

Definition at line 190 of file MPIInputBuffer.h.

Referenced by initialize(), MPIInputBufferVector(), and size().

Size of the memory block to store the serialized spike data in incoming mpi messages.

Definition at line 193 of file MPIInputBuffer.h.

Referenced by initialize().

Maximum size of mpi message sent in one all-to-all exchange iteration.

If value is -1, then whole analog data + spike data that fit into the buffer of size=spike_buffer_size are sent in one message in the first iteration. Otherwise, the buffer is sliced into blocks of size max_mpi_msg_size.

Definition at line 201 of file MPIInputBuffer.h.

Referenced by initialize().

vector of all MPIInputBuffers

Definition at line 204 of file MPIInputBuffer.h.

Referenced by initialize(), MPIInputBufferVector(), operator[](), prepareNextBufferSlices(), and startNewMPIExchange().

The allocated contiguous memory block.

Definition at line 207 of file MPIInputBuffer.h.

Referenced by getBaseBufferPtr(), initialize(), and ~MPIInputBufferVector().

Definition at line 209 of file MPIInputBuffer.h.

Referenced by getMPIExchangeBlocksInfo(), and initialize().


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

Generated on Wed Jul 9 16:34:51 2008 for PCSIM by  doxygen 1.5.5