#include <mailbox.hpp>
Classes | |
class | msg_buffer |
class | twod_router |
Public Types | |
typedef TMsg | message_type |
Public Member Functions | |
mailbox_routed (MPI_Comm _mpi_comm, int _mpi_tag) | |
~mailbox_routed () | |
void | send_tree_fast (int raw_dest, const TMsg &_raw_msg) |
void | send_tree_parent (const TMsg &_raw_msg) |
void | send_tree_children (const TMsg &_raw_msg) |
void | route_fast_path (uint32_t dest, const routed_msg_type &_msg) |
template<typename OutputIterator > | |
void | bcast (TMsg _raw_msg, OutputIterator _oitr) |
void | bcast_to_targets (TMsg _msg) |
void | check_for_starvation () |
template<typename OutputIterator > | |
void | send (int raw_dest, const TMsg &_raw_msg, OutputIterator _oitr, bool fast=true) |
template<typename OutputIterator > | |
void | receive (OutputIterator _oitr, bool aggregsive=false) |
bool | is_idle () |
void | flush_buffers_if_idle () |
int | comm_rank () const |
int | comm_size () const |
Private Types | |
typedef TMsg | routed_msg_type |
Private Member Functions | |
msg_buffer | allocate_msg_buffer () |
void | free_msg_buffer (void *_ptr) |
void | post_isend (int index) |
bool | cleanup_pending_isend_requests_index (size_t index) |
void | cleanup_pending_isend_requests (bool force_aggressive=false) |
void | post_new_irecv (void *_buff) |
Private Attributes | |
MPI_Comm | m_mpi_comm |
MPI configuration. More... | |
int | m_mpi_tag |
int | m_mpi_rank |
int | m_mpi_size |
size_t | m_pending_partial_buffers |
size_t | m_num_pending_isend |
size_t | m_last_recv_count |
std::vector< void * > | m_vec_free_buffers |
std::vector< msg_buffer > | m_buffer_per_rank |
std::vector< std::list< boost::tuple< MPI_Request, void *, std::list< size_t >::iterator > > > | m_list_isend_request_per_rank |
std::list< size_t > | m_list_isends |
std::list< std::pair< MPI_Request, void * > > | m_list_irecv_request |
twod_router | m_2d_comm |
std::vector< std::list< size_t >::iterator > | m_pending_iterator_per_rank |
std::list< size_t > | m_list_pending |
int | m_tree_parent |
int | m_tree_child1 |
int | m_tree_child2 |
bool | m_receiving |
uint64_t | m_mpi_send_counter |
uint64_t | m_tree_send_counter |
uint64_t | m_route_counter |
uint64_t | m_send_counter |
uint64_t | m_recv_counter |
Definition at line 75 of file mailbox.hpp.
typedef TMsg havoqgt::mpi::mailbox_routed< TMsg >::message_type |
Definition at line 158 of file mailbox.hpp.
|
private |
Definition at line 88 of file mailbox.hpp.
|
inline |
Definition at line 160 of file mailbox.hpp.
|
inline |
Definition at line 205 of file mailbox.hpp.
|
inlineprivate |
Definition at line 424 of file mailbox.hpp.
|
inline |
Definition at line 288 of file mailbox.hpp.
|
inline |
Definition at line 306 of file mailbox.hpp.
|
inline |
|
inlineprivate |
If the number of current pending isends is less than user desired, just check the next fair bit. If the number is greater than desired, aggregsively check all bits.
Definition at line 504 of file mailbox.hpp.
|
inlineprivate |
Definition at line 481 of file mailbox.hpp.
|
inline |
|
inline |
|
inline |
Definition at line 410 of file mailbox.hpp.
|
inlineprivate |
Definition at line 439 of file mailbox.hpp.
|
inline |
Definition at line 405 of file mailbox.hpp.
|
inlineprivate |
Definition at line 443 of file mailbox.hpp.
|
inlineprivate |
Definition at line 511 of file mailbox.hpp.
|
inline |
Definition at line 364 of file mailbox.hpp.
|
inline |
Definition at line 271 of file mailbox.hpp.
|
inline |
Definition at line 330 of file mailbox.hpp.
|
inline |
Definition at line 262 of file mailbox.hpp.
|
inline |
Definition at line 241 of file mailbox.hpp.
|
inline |
Definition at line 258 of file mailbox.hpp.
|
private |
Definition at line 541 of file mailbox.hpp.
|
private |
Definition at line 533 of file mailbox.hpp.
|
private |
Definition at line 530 of file mailbox.hpp.
|
private |
Definition at line 539 of file mailbox.hpp.
|
private |
Definition at line 536 of file mailbox.hpp.
|
private |
Definition at line 538 of file mailbox.hpp.
|
private |
Definition at line 545 of file mailbox.hpp.
|
private |
MPI configuration.
Definition at line 523 of file mailbox.hpp.
|
private |
Definition at line 525 of file mailbox.hpp.
|
private |
Definition at line 554 of file mailbox.hpp.
|
private |
Definition at line 526 of file mailbox.hpp.
|
private |
Definition at line 524 of file mailbox.hpp.
|
private |
Definition at line 529 of file mailbox.hpp.
|
private |
Definition at line 543 of file mailbox.hpp.
|
private |
Definition at line 528 of file mailbox.hpp.
|
private |
Definition at line 551 of file mailbox.hpp.
|
private |
Definition at line 558 of file mailbox.hpp.
|
private |
Definition at line 556 of file mailbox.hpp.
|
private |
Definition at line 557 of file mailbox.hpp.
|
private |
Definition at line 548 of file mailbox.hpp.
|
private |
Definition at line 549 of file mailbox.hpp.
|
private |
Definition at line 547 of file mailbox.hpp.
|
private |
Definition at line 555 of file mailbox.hpp.
|
private |
Definition at line 532 of file mailbox.hpp.