#include <MPIInputBuffer.h>

Public Member Functions | |
| MPIInputBufferVector (vector< vector< gl_engineid_t > > &glengineids, int numBuffers) | |
| Constructor. | |
| virtual | ~MPIInputBufferVector () |
| MPIInputBuffer & | operator[] (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 () |
| MPIExchangeBlocksInfo & | getMPIExchangeBlocksInfo () |
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 |
Definition at line 131 of file MPIInputBuffer.h.
| MPIInputBufferVector::MPIInputBufferVector | ( | vector< vector< gl_engineid_t > > & | glengineids, | |
| int | numBuffers | |||
| ) |
Constructor.
| 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().

| virtual MPIInputBufferVector::~MPIInputBufferVector | ( | ) | [inline, virtual] |
| 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_().

| 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 | ( | ) |
Definition at line 168 of file MPIInputBuffer.cpp.
References mpiExchBlocksInfo.
Referenced by MPISynchroShuffleAllToAllComm::doExchangeAlgorithm(), and MPIDefaultAllToAllCommunicator::doExchangeAlgorithm().
bool MPIInputBufferVector::initialized [protected] |
Definition at line 187 of file MPIInputBuffer.h.
Referenced by initialize(), and ~MPIInputBufferVector().
int MPIInputBufferVector::nNodes [protected] |
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_t MPIInputBufferVector::spike_buffer_size [protected] |
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().
size_t MPIInputBufferVector::max_mpi_msg_size [protected] |
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<MPIInputBuffer> MPIInputBufferVector::_buffers [protected] |
vector of all MPIInputBuffers
Definition at line 204 of file MPIInputBuffer.h.
Referenced by initialize(), MPIInputBufferVector(), operator[](), prepareNextBufferSlices(), and startNewMPIExchange().
char* MPIInputBufferVector::memoryPool [protected] |
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().
1.5.5