Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::GASNetEXInternal Class Reference

#include <gasnetex_internal.h>

Collaboration diagram for Realm::GASNetEXInternal:

Classes

struct  SegmentInfo
 

Public Member Functions

 GASNetEXInternal (GASNetEXModule *_module, RuntimeImpl *_runtime)
 
 ~GASNetEXInternal ()
 
bool init (int *argc, const char ***argv)
 
uintptr_t attach (size_t size)
 
bool attempt_binding (void *base, size_t size, NetworkSegmentInfo::MemoryType memtype, NetworkSegmentInfo::MemoryTypeExtraData memextra, gex_ep_index_t *ep_indexp)
 
void publish_bindings ()
 
void detach ()
 
void get_shared_peers (Realm::NodeSet &shared_peers)
 
void barrier ()
 
void broadcast (gex_rank_t root, const void *val_in, void *val_out, size_t bytes)
 
void gather (gex_rank_t root, const void *val_in, void *vals_out, size_t bytes)
 
void allgatherv (const char *val_in, size_t bytes, std::vector< char > &vals_out, std::vector< size_t > &lengths)
 
size_t sample_messages_received_count ()
 
bool check_for_quiescence (size_t sampled_receive_count)
 
PendingCompletionget_available_comp ()
 
PendingCompletionearly_local_completion (PendingCompletion *comp)
 
size_t recommended_max_payload (gex_rank_t target, gex_ep_index_t target_ep_index, bool with_congestion, size_t header_size, uintptr_t dest_payload_addr)
 
size_t recommended_max_payload (gex_rank_t target, gex_ep_index_t target_ep_index, const void *data, size_t bytes_per_line, size_t lines, size_t line_stride, bool with_congestion, size_t header_size, uintptr_t dest_payload_addr)
 
size_t recommended_max_payload (bool with_congestion, size_t header_size)
 
PreparedMessageprepare_message (gex_rank_t target, gex_ep_index_t target_ep_index, unsigned short msgid, void *&header_base, size_t header_size, void *&payload_base, size_t payload_size, uintptr_t dest_payload_addr)
 
void commit_message (PreparedMessage *msg, PendingCompletion *comp, void *header_base, size_t header_size, void *payload_base, size_t payload_size)
 
void cancel_message (PreparedMessage *msg)
 
gex_am_arg_t handle_short (gex_rank_t srcrank, gex_am_arg_t arg0, const void *hdr, size_t hdr_bytes)
 
gex_am_arg_t handle_medium (gex_rank_t srcrank, gex_am_arg_t arg0, const void *hdr, size_t hdr_bytes, const void *data, size_t data_bytes)
 
gex_am_arg_t handle_long (gex_rank_t srcrank, gex_am_arg_t arg0, const void *hdr, size_t hdr_bytes, const void *data, size_t data_bytes)
 
void handle_reverse_get (gex_rank_t srcrank, gex_ep_index_t src_ep_index, gex_ep_index_t tgt_ep_index, gex_am_arg_t arg0, const void *hdr, size_t hdr_bytes, uintptr_t src_ptr, uintptr_t tgt_ptr, size_t payload_bytes)
 
size_t handle_batch (gex_rank_t srcrank, gex_am_arg_t arg0, gex_am_arg_t cksum, const void *data, size_t data_bytes, gex_am_arg_t *comps)
 
void handle_completion_reply (gex_rank_t srcrank, const gex_am_arg_t *args, size_t nargs)
 

Protected Member Functions

PendingCompletionextract_arg0_local_comp (gex_am_arg_t &arg0)
 
const SegmentInfofind_segment (const void *srcptr) const
 

Static Protected Member Functions

static void short_message_complete (NodeID sender, uintptr_t objptr, uintptr_t comp_info)
 
static void medium_message_complete (NodeID sender, uintptr_t objptr, uintptr_t comp_info)
 
static void long_message_complete (NodeID sender, uintptr_t objptr, uintptr_t comp_info)
 

Protected Attributes

GASNetEXModule *RuntimeImplruntime
 
gex_client_opaque_t client
 
std::vector< gex_ep_opaque_teps
 
gex_tm_opaque_t prim_tm
 
gex_rank_t prim_rank
 
gex_rank_t prim_size
 
gex_segment_opaque_t prim_segment
 
size_t prim_segsize
 
std::vector< SegmentInfosegments_by_addr
 
std::vector< XmitSrc * > xmitsrcs
 
GASNetEXPoller poller
 
GASNetEXInjector injector
 
GASNetEXCompleter completer
 
ReverseGetter rgetter
 
PendingCompletionManager compmgr
 
OutbufManager obmgr
 
atomic< uint64_t > total_packets_received
 
Mutex databuf_mutex
 
OutbufMetadatadatabuf_md
 
gex_callback_handle_t gex_callback_handle
 
ChunkedRecycler< GASNetEXEvent, 64 > event_alloc
 
ChunkedRecycler< PreparedMessage, 32 > prep_alloc
 
ChunkedRecycler< PendingPutHeader, 32 > put_alloc
 

Friends

class ReverseGetter
 
class XmitSrc
 
class XmitSrcDestPair
 
class GASNetEXEvent
 
class GASNetEXPoller
 
class GASNetEXCompleter
 

Constructor & Destructor Documentation

◆ GASNetEXInternal()

Realm::GASNetEXInternal::GASNetEXInternal ( GASNetEXModule _module,
RuntimeImpl _runtime 
)

◆ ~GASNetEXInternal()

Realm::GASNetEXInternal::~GASNetEXInternal ( )

Member Function Documentation

◆ allgatherv()

void Realm::GASNetEXInternal::allgatherv ( const char *  val_in,
size_t  bytes,
std::vector< char > &  vals_out,
std::vector< size_t > &  lengths 
)

◆ attach()

uintptr_t Realm::GASNetEXInternal::attach ( size_t  size)

◆ attempt_binding()

bool Realm::GASNetEXInternal::attempt_binding ( void *  base,
size_t  size,
NetworkSegmentInfo::MemoryType  memtype,
NetworkSegmentInfo::MemoryTypeExtraData  memextra,
gex_ep_index_t ep_indexp 
)

◆ barrier()

void Realm::GASNetEXInternal::barrier ( )

◆ broadcast()

void Realm::GASNetEXInternal::broadcast ( gex_rank_t  root,
const void *  val_in,
void *  val_out,
size_t  bytes 
)

◆ cancel_message()

void Realm::GASNetEXInternal::cancel_message ( PreparedMessage msg)

◆ check_for_quiescence()

bool Realm::GASNetEXInternal::check_for_quiescence ( size_t  sampled_receive_count)

◆ commit_message()

void Realm::GASNetEXInternal::commit_message ( PreparedMessage msg,
PendingCompletion comp,
void *  header_base,
size_t  header_size,
void *  payload_base,
size_t  payload_size 
)

◆ detach()

void Realm::GASNetEXInternal::detach ( )

◆ early_local_completion()

PendingCompletion * Realm::GASNetEXInternal::early_local_completion ( PendingCompletion comp)

◆ extract_arg0_local_comp()

PendingCompletion * Realm::GASNetEXInternal::extract_arg0_local_comp ( gex_am_arg_t arg0)
protected

◆ find_segment()

const SegmentInfo * Realm::GASNetEXInternal::find_segment ( const void *  srcptr) const
protected

◆ gather()

void Realm::GASNetEXInternal::gather ( gex_rank_t  root,
const void *  val_in,
void *  vals_out,
size_t  bytes 
)

◆ get_available_comp()

PendingCompletion * Realm::GASNetEXInternal::get_available_comp ( )

◆ get_shared_peers()

void Realm::GASNetEXInternal::get_shared_peers ( Realm::NodeSet shared_peers)

◆ handle_batch()

size_t Realm::GASNetEXInternal::handle_batch ( gex_rank_t  srcrank,
gex_am_arg_t  arg0,
gex_am_arg_t  cksum,
const void *  data,
size_t  data_bytes,
gex_am_arg_t comps 
)

◆ handle_completion_reply()

void Realm::GASNetEXInternal::handle_completion_reply ( gex_rank_t  srcrank,
const gex_am_arg_t args,
size_t  nargs 
)

◆ handle_long()

gex_am_arg_t Realm::GASNetEXInternal::handle_long ( gex_rank_t  srcrank,
gex_am_arg_t  arg0,
const void *  hdr,
size_t  hdr_bytes,
const void *  data,
size_t  data_bytes 
)

◆ handle_medium()

gex_am_arg_t Realm::GASNetEXInternal::handle_medium ( gex_rank_t  srcrank,
gex_am_arg_t  arg0,
const void *  hdr,
size_t  hdr_bytes,
const void *  data,
size_t  data_bytes 
)

◆ handle_reverse_get()

void Realm::GASNetEXInternal::handle_reverse_get ( gex_rank_t  srcrank,
gex_ep_index_t  src_ep_index,
gex_ep_index_t  tgt_ep_index,
gex_am_arg_t  arg0,
const void *  hdr,
size_t  hdr_bytes,
uintptr_t  src_ptr,
uintptr_t  tgt_ptr,
size_t  payload_bytes 
)

◆ handle_short()

gex_am_arg_t Realm::GASNetEXInternal::handle_short ( gex_rank_t  srcrank,
gex_am_arg_t  arg0,
const void *  hdr,
size_t  hdr_bytes 
)

◆ init()

bool Realm::GASNetEXInternal::init ( int *  argc,
const char ***  argv 
)

◆ long_message_complete()

static void Realm::GASNetEXInternal::long_message_complete ( NodeID  sender,
uintptr_t  objptr,
uintptr_t  comp_info 
)
staticprotected

◆ medium_message_complete()

static void Realm::GASNetEXInternal::medium_message_complete ( NodeID  sender,
uintptr_t  objptr,
uintptr_t  comp_info 
)
staticprotected

◆ prepare_message()

PreparedMessage * Realm::GASNetEXInternal::prepare_message ( gex_rank_t  target,
gex_ep_index_t  target_ep_index,
unsigned short  msgid,
void *&  header_base,
size_t  header_size,
void *&  payload_base,
size_t  payload_size,
uintptr_t  dest_payload_addr 
)

◆ publish_bindings()

void Realm::GASNetEXInternal::publish_bindings ( )

◆ recommended_max_payload() [1/3]

size_t Realm::GASNetEXInternal::recommended_max_payload ( bool  with_congestion,
size_t  header_size 
)

◆ recommended_max_payload() [2/3]

size_t Realm::GASNetEXInternal::recommended_max_payload ( gex_rank_t  target,
gex_ep_index_t  target_ep_index,
bool  with_congestion,
size_t  header_size,
uintptr_t  dest_payload_addr 
)

◆ recommended_max_payload() [3/3]

size_t Realm::GASNetEXInternal::recommended_max_payload ( gex_rank_t  target,
gex_ep_index_t  target_ep_index,
const void *  data,
size_t  bytes_per_line,
size_t  lines,
size_t  line_stride,
bool  with_congestion,
size_t  header_size,
uintptr_t  dest_payload_addr 
)

◆ sample_messages_received_count()

size_t Realm::GASNetEXInternal::sample_messages_received_count ( )

◆ short_message_complete()

static void Realm::GASNetEXInternal::short_message_complete ( NodeID  sender,
uintptr_t  objptr,
uintptr_t  comp_info 
)
staticprotected

Friends And Related Symbol Documentation

◆ GASNetEXCompleter

friend class GASNetEXCompleter
friend

◆ GASNetEXEvent

friend class GASNetEXEvent
friend

◆ GASNetEXPoller

friend class GASNetEXPoller
friend

◆ ReverseGetter

friend class ReverseGetter
friend

◆ XmitSrc

friend class XmitSrc
friend

◆ XmitSrcDestPair

friend class XmitSrcDestPair
friend

Member Data Documentation

◆ client

gex_client_opaque_t Realm::GASNetEXInternal::client
protected

◆ completer

GASNetEXCompleter Realm::GASNetEXInternal::completer
protected

◆ compmgr

PendingCompletionManager Realm::GASNetEXInternal::compmgr
protected

◆ databuf_md

OutbufMetadata* Realm::GASNetEXInternal::databuf_md
protected

◆ databuf_mutex

Mutex Realm::GASNetEXInternal::databuf_mutex
protected

◆ eps

std::vector<gex_ep_opaque_t> Realm::GASNetEXInternal::eps
protected

◆ event_alloc

ChunkedRecycler<GASNetEXEvent, 64> Realm::GASNetEXInternal::event_alloc
protected

◆ gex_callback_handle

gex_callback_handle_t Realm::GASNetEXInternal::gex_callback_handle
protected

◆ injector

GASNetEXInjector Realm::GASNetEXInternal::injector
protected

◆ obmgr

OutbufManager Realm::GASNetEXInternal::obmgr
protected

◆ poller

GASNetEXPoller Realm::GASNetEXInternal::poller
protected

◆ prep_alloc

ChunkedRecycler<PreparedMessage, 32> Realm::GASNetEXInternal::prep_alloc
protected

◆ prim_rank

gex_rank_t Realm::GASNetEXInternal::prim_rank
protected

◆ prim_segment

gex_segment_opaque_t Realm::GASNetEXInternal::prim_segment
protected

◆ prim_segsize

size_t Realm::GASNetEXInternal::prim_segsize
protected

◆ prim_size

gex_rank_t Realm::GASNetEXInternal::prim_size
protected

◆ prim_tm

gex_tm_opaque_t Realm::GASNetEXInternal::prim_tm
protected

◆ put_alloc

ChunkedRecycler<PendingPutHeader, 32> Realm::GASNetEXInternal::put_alloc
protected

◆ rgetter

ReverseGetter Realm::GASNetEXInternal::rgetter
protected

◆ runtime

GASNetEXModule* RuntimeImpl* Realm::GASNetEXInternal::runtime
protected

◆ segments_by_addr

std::vector<SegmentInfo> Realm::GASNetEXInternal::segments_by_addr
protected

◆ total_packets_received

atomic<uint64_t> Realm::GASNetEXInternal::total_packets_received
protected

◆ xmitsrcs

std::vector<XmitSrc *> Realm::GASNetEXInternal::xmitsrcs
protected

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