Implements AM interface.
More...
#include <worldam.h>
|
static void | handler (void *buf, std::size_t nbyte) |
| This handles all incoming RMI messages for all instances.
|
|
|
| Mutex (int junk=0) |
| Make and initialize a mutex ... initial state is unlocked.
|
|
virtual | ~Mutex () |
|
void | lock () const |
| Acquire the mutex waiting if necessary.
|
|
pthread_mutex_t * | ptr () const |
| Return a pointer to the pthread mutex for use by a condition variable.
|
|
bool | try_lock () const |
| Try to acquire the mutex ... return true on success, false on failure.
|
|
void | unlock () const |
| Free a mutex owned by this thread.
|
|
◆ WorldAmInterface()
madness::WorldAmInterface::WorldAmInterface |
( |
World & |
world | ) |
|
References madness::WorldMpiInterface::comm(), SafeMPI::COMM_WORLD, DEFAULT_NSEND, fred(), SafeMPI::Intracomm::Get_group(), madness::Mutex::lock(), map_to_comm_world, madness::World::mpi, nproc, nsend, send_req, SafeMPI::Group::Translate_ranks(), and madness::Mutex::unlock().
◆ ~WorldAmInterface()
madness::WorldAmInterface::~WorldAmInterface |
( |
| ) |
|
|
virtual |
◆ fence()
void madness::WorldAmInterface::fence |
( |
| ) |
|
|
inline |
◆ free_managed_buffers()
int madness::WorldAmInterface::free_managed_buffers |
( |
| ) |
|
|
inline |
◆ handler()
static void madness::WorldAmInterface::handler |
( |
void * |
buf, |
|
|
std::size_t |
nbyte |
|
) |
| |
|
inlinestaticprivate |
◆ send()
Sends a managed non-blocking active message.
References madness::arg(), madness::AmArg::clear_flags(), cur_msg, madness::RMI::get_this_thread_is_server(), handler(), madness::RMI::isend(), madness::Mutex::lock(), MADNESS_ASSERT, map_to_comm_world, madness::myusleep(), nsend, nsent, op(), rank, send_req, madness::RMI::send_req, madness::AmArg::set_func(), madness::AmArg::set_src(), madness::AmArg::set_worldid(), madness::Mutex::try_lock(), madness::Mutex::unlock(), and worldid.
Referenced by madness::WorldGopInterface::bcast_task(), madness::WorldGopInterface::group_bcast_task(), madness::RemoteReference< T >::reset(), madness::WorldObject< Derived >::send_am(), madness::WorldObject< Derived >::send_task(), madness::WorldTaskQueue::send_task(), madness::FutureImpl< T >::set(), and madness::FutureImpl< T >::set_handler().
◆ World
◆ WorldGopInterface
◆ cur_msg
int madness::WorldAmInterface::cur_msg |
|
private |
Index of next buffer to attempt to use.
Referenced by send().
◆ DEFAULT_NSEND
const int madness::WorldAmInterface::DEFAULT_NSEND = 128 |
|
staticprivate |
◆ map_to_comm_world
std::vector<int> madness::WorldAmInterface::map_to_comm_world |
|
private |
◆ nproc
const int madness::WorldAmInterface::nproc |
|
private |
◆ nrecv
unsigned long madness::WorldAmInterface::nrecv |
|
private |
◆ nsend
int madness::WorldAmInterface::nsend |
|
private |
◆ nsent
unsigned long madness::WorldAmInterface::nsent |
|
private |
◆ rank
const ProcessID madness::WorldAmInterface::rank |
|
private |
◆ send_req
std::unique_ptr<SendReq []> madness::WorldAmInterface::send_req |
|
private |
◆ worldid
unsigned long madness::WorldAmInterface::worldid |
|
private |
The documentation for this class was generated from the following files: