NEST main@caf0ae8
 
Loading...
Searching...
No Matches
nest::TargetSendBufferPosition Class Reference

This class simplifies keeping track of write position in MPI buffer while collocating targets. More...

#include <send_buffer_position.h>

Public Member Functions

 TargetSendBufferPosition (const AssignedRanks &assigned_ranks, const unsigned int send_recv_count_per_rank)
 
unsigned int idx (const size_t rank) const
 Returns current index of specified rank in MPI buffer.
 
unsigned int begin (const size_t rank) const
 Returns begin index of specified rank in MPI buffer.
 
unsigned int end (const size_t rank) const
 Returns end index of specified rank in MPI buffer.
 
bool is_chunk_filled (const size_t rank) const
 Returns whether the part of the buffer on the specified rank has been filled.
 
bool are_all_chunks_filled () const
 Returns whether the parts of the MPI buffer assigned to this thread has been filled.
 
void increase (const size_t rank)
 

Private Member Functions

size_t rank_to_index_ (const size_t rank) const
 

Private Attributes

size_t begin_rank_
 
size_t end_rank_
 
size_t max_size_
 
size_t num_target_data_written_
 
size_t send_recv_count_per_rank_
 
std::vector< size_t > idx_
 
std::vector< size_t > begin_
 
std::vector< size_t > end_
 

Detailed Description

This class simplifies keeping track of write position in MPI buffer while collocating targets.

Constructor & Destructor Documentation

◆ TargetSendBufferPosition()

nest::TargetSendBufferPosition::TargetSendBufferPosition ( const AssignedRanks &  assigned_ranks,
const unsigned int  send_recv_count_per_rank 
)
inline

Member Function Documentation

◆ are_all_chunks_filled()

bool nest::TargetSendBufferPosition::are_all_chunks_filled ( ) const
inline

Returns whether the parts of the MPI buffer assigned to this thread has been filled.

References idx_, num_target_data_written_, and send_recv_count_per_rank_.

Referenced by nest::EventDeliveryManager::collocate_target_data_buffers_().

Here is the caller graph for this function:

◆ begin()

unsigned int nest::TargetSendBufferPosition::begin ( const size_t  rank) const
inline

Returns begin index of specified rank in MPI buffer.

References begin_, and rank_to_index_().

Referenced by nest::EventDeliveryManager::collocate_target_data_buffers_(), nest::EventDeliveryManager::collocate_target_data_buffers_compressed_(), and nest::ConnectionManager::fill_target_buffer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ end()

unsigned int nest::TargetSendBufferPosition::end ( const size_t  rank) const
inline

Returns end index of specified rank in MPI buffer.

References end_, and rank_to_index_().

Referenced by nest::EventDeliveryManager::collocate_target_data_buffers_(), nest::EventDeliveryManager::collocate_target_data_buffers_compressed_(), is_chunk_filled(), and nest::EventDeliveryManager::set_complete_marker_target_data_().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ idx()

unsigned int nest::TargetSendBufferPosition::idx ( const size_t  rank) const
inline

Returns current index of specified rank in MPI buffer.

References idx_, and rank_to_index_().

Referenced by nest::EventDeliveryManager::collocate_target_data_buffers_(), nest::ConnectionManager::fill_target_buffer(), and is_chunk_filled().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ increase()

void nest::TargetSendBufferPosition::increase ( const size_t  rank)
inline

References idx_, num_target_data_written_, and rank_to_index_().

Referenced by nest::EventDeliveryManager::collocate_target_data_buffers_(), and nest::ConnectionManager::fill_target_buffer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_chunk_filled()

bool nest::TargetSendBufferPosition::is_chunk_filled ( const size_t  rank) const
inline

Returns whether the part of the buffer on the specified rank has been filled.

Parameters
rankRank denoting which part of the buffer we check

References end(), and idx().

Referenced by nest::EventDeliveryManager::collocate_target_data_buffers_(), and nest::ConnectionManager::fill_target_buffer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rank_to_index_()

size_t nest::TargetSendBufferPosition::rank_to_index_ ( const size_t  rank) const
inlineprivate

References begin_rank_, end_rank_, and max_size_.

Referenced by begin(), end(), idx(), and increase().

Here is the caller graph for this function:

Member Data Documentation

◆ begin_

std::vector< size_t > nest::TargetSendBufferPosition::begin_
private

Referenced by begin(), and TargetSendBufferPosition().

◆ begin_rank_

size_t nest::TargetSendBufferPosition::begin_rank_
private

Referenced by rank_to_index_().

◆ end_

std::vector< size_t > nest::TargetSendBufferPosition::end_
private

Referenced by end(), and TargetSendBufferPosition().

◆ end_rank_

size_t nest::TargetSendBufferPosition::end_rank_
private

Referenced by rank_to_index_().

◆ idx_

std::vector< size_t > nest::TargetSendBufferPosition::idx_
private

◆ max_size_

size_t nest::TargetSendBufferPosition::max_size_
private

Referenced by rank_to_index_().

◆ num_target_data_written_

size_t nest::TargetSendBufferPosition::num_target_data_written_
private

Referenced by are_all_chunks_filled(), and increase().

◆ send_recv_count_per_rank_

size_t nest::TargetSendBufferPosition::send_recv_count_per_rank_
private

Referenced by are_all_chunks_filled().


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