MADNESS 0.10.1
|
This class implements the communications server thread and provides the only send interface. More...
#include <worldrmi.h>
Classes | |
class | RmiTask |
Public Types | |
typedef SafeMPI::Request | Request |
Static Public Member Functions | |
static void | assert_aslr_off (const SafeMPI::Intracomm &comm=SafeMPI::COMM_WORLD) |
static void | begin (const SafeMPI::Intracomm &comm=SafeMPI::COMM_WORLD) |
static void | end () |
static bool | get_debug () |
static const RMIStats & | get_stats () |
static bool | get_this_thread_is_server () |
static Request | isend (const void *buf, size_t nbyte, ProcessID dest, rmi_handlerT func, unsigned int attr=ATTR_UNORDERED) |
Send a remote method invocation (again you should probably be looking at worldam.h instead) | |
static std::size_t | max_msg_len () |
Returns the size of recv buffers, in bytes. | |
static std::size_t | maxq () |
static std::size_t | nrecv () |
Returns the number of recv buffers. | |
static void | set_debug (bool status) |
static void | set_this_thread_is_server (bool flag=true) |
Static Public Attributes | |
static const size_t | ALIGNMENT = 64 |
static const attrT | ATTR_ORDERED =0x1 |
static const attrT | ATTR_UNORDERED =0x0 |
static const size_t | HEADER_LEN = ALIGNMENT |
static std::list< std::unique_ptr< RMISendReq > > | send_req |
static int | testsome_backoff_us = 2 |
Private Types | |
typedef qmsg::attrT | attrT |
typedef qmsg::counterT | counterT |
Private Member Functions | |
RMI (const RMI &) | |
RMI & | operator= (const RMI &) |
Static Private Member Functions | |
static void | clear_send_req () |
static bool & | is_server_thread_accessor () |
Static Private Attributes | |
static bool | debugging = false |
static const size_t | DEFAULT_MAX_MSG_LEN = 3*512*1024 |
the default size of recv buffers, in bytes; the actual size can be configured by the user via envvar MAD_BUFFER_SIZE | |
static const int | DEFAULT_NRECV = 128 |
the default # of recv buffers; the actual number can be configured by the user via envvar MAD_RECV_BUFFERS | |
static RMIStats | stats |
static std::unique_ptr< RmiTask > | task_ptr = nullptr |
This class implements the communications server thread and provides the only send interface.
|
private |
|
private |
|
private |
|
static |
will complain to std::cerr and throw if ASLR is on by making sure that address of this function matches across comm
[in] | comm | the communicator |
References assert_aslr_off(), madness::detail::compare_fn_addresses(), SafeMPI::Intracomm::Get_rank(), MADNESS_ASSERT, MADNESS_EXCEPTION, MPI_LONG, SafeMPI::Op_create(), SafeMPI::Op_free(), and SafeMPI::Intracomm::Reduce().
Referenced by assert_aslr_off(), and begin().
|
static |
|
inlinestaticprivate |
References madness::RMIStats::max_serv_send_q, send_req, and stats.
Referenced by madness::RMI::RmiTask::process_some().
|
inlinestatic |
References task_ptr.
|
inlinestatic |
References debugging.
|
inlinestatic |
References stats.
Referenced by madness::WorldProfileObj::~WorldProfileObj(), and madness::print_stats().
|
inlinestatic |
References is_server_thread_accessor().
Referenced by madness::WorldAmInterface::send().
|
staticprivate |
Referenced by get_this_thread_is_server(), and set_this_thread_is_server().
|
inlinestatic |
Send a remote method invocation (again you should probably be looking at worldam.h instead)
[in] | buf | Pointer to the data buffer (do not modify until send is completed) |
[in] | nbyte | Size of the data in bytes |
[in] | dest | Process to receive the message |
[in] | func | The function to handle the message on the remote end |
[in] | attr | Attributes of the message (ATTR_UNORDERED or ATTR_ORDERED) |
References madness::func(), MADNESS_EXCEPTION, madness::print_error(), and task_ptr.
Referenced by madness::WorldAmInterface::send().
|
inlinestatic |
Returns the size of recv buffers, in bytes.
References MADNESS_ASSERT, and task_ptr.
Referenced by madness::BinSorter< T, inserterT >::BinSorter(), and Foo::Foo().
|
inlinestatic |
References MADNESS_ASSERT, and task_ptr.
|
inlinestatic |
Returns the number of recv buffers.
References MADNESS_ASSERT, and task_ptr.
|
inlinestatic |
References is_server_thread_accessor().
Referenced by madness::RMI::RmiTask::run().
|
static |
Referenced by madness::RMI::RmiTask::RmiTask(), and madness::RMI::RmiTask::post_pending_huge_msg().
|
static |
Referenced by madness::RMI::RmiTask::is_ordered().
|
static |
|
staticprivate |
Referenced by madness::RMI::RmiTask::exit(), get_debug(), madness::RMI::RmiTask::process_some(), and set_debug().
|
staticprivate |
the default size of recv buffers, in bytes; the actual size can be configured by the user via envvar MAD_BUFFER_SIZE
Referenced by madness::RMI::RmiTask::RmiTask().
|
staticprivate |
the default # of recv buffers; the actual number can be configured by the user via envvar MAD_RECV_BUFFERS
Referenced by madness::RMI::RmiTask::RmiTask().
|
static |
Referenced by madness::RMI::RmiTask::huge_msg_handler().
|
static |
Referenced by clear_send_req(), and madness::WorldAmInterface::send().
|
staticprivate |
Referenced by clear_send_req(), get_stats(), and madness::RMI::RmiTask::process_some().
|
staticprivate |
Referenced by begin(), end(), madness::RMI::RmiTask::huge_msg_handler(), isend(), max_msg_len(), maxq(), and nrecv().
|
static |
Referenced by begin(), and madness::RMI::RmiTask::process_some().