#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().