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

#include <channel.h>

Inheritance diagram for Realm::RemoteChannel:
Collaboration diagram for Realm::RemoteChannel:

Public Member Functions

uintptr_t get_remote_ptr () const
 
void register_redop (ReductionOpID redop_id)
 
bool supports_redop (ReductionOpID redop_id) const override
 
long submit (Request **requests, long nr) override
 
void pull () override
 
long available () override
 
uint64_t supports_path (ChannelCopyInfo channel_copy_info, CustomSerdezID src_serdez_id, CustomSerdezID dst_serdez_id, ReductionOpID redop_id, size_t total_bytes, const std::vector< size_t > *src_frags, const std::vector< size_t > *dst_frags, XferDesKind *kind_ret=0, unsigned *bw_ret=0, unsigned *lat_ret=0) override
 
bool supports_indirection_memory (Memory mem) const override
 Queries if a given mem can be used as an indirection buffer.
 
void enqueue_ready_xd (XferDes *xd) override
 
void wakeup_xd (XferDes *xd) override
 
- Public Member Functions inherited from Realm::Channel
 Channel (XferDesKind _kind)
 
virtual ~Channel ()
 
virtual long progress_xd (XferDes *xd, long max_nr)
 
const std::vector< SupportedPath > & get_paths (void) const
 
void update_channel_state (void)
 
virtual Memory suggest_ib_memories () const
 
virtual Memory suggest_ib_memories_for_node (NodeID node) const
 
virtual bool needs_wrapping_iterator () const
 
virtual RemoteChannelInfoconstruct_remote_info () const
 
void print (std::ostream &os) const
 

Protected Member Functions

 RemoteChannel (uintptr_t _remote_ptr, const std::vector< Memory > &indirect_memories)
 
 RemoteChannel (uintptr_t _remote_ptr)
 
void shutdown () override
 
XferDesFactoryget_factory () override
 
- Protected Member Functions inherited from Realm::Channel
SupportedPathadd_path (span< const Memory > src_mems, span< const Memory > dst_mems, unsigned bandwidth, unsigned latency, unsigned frag_overhead, XferDesKind xd_kind)
 
SupportedPathadd_path (span< const Memory > src_mems, Memory::Kind dst_kind, bool dst_global, unsigned bandwidth, unsigned latency, unsigned frag_overhead, XferDesKind xd_kind)
 
SupportedPathadd_path (Memory::Kind src_kind, bool src_global, span< const Memory > dst_mems, unsigned bandwidth, unsigned latency, unsigned frag_overhead, XferDesKind xd_kind)
 
SupportedPathadd_path (Memory::Kind src_kind, bool src_global, Memory::Kind dst_kind, bool dst_global, unsigned bandwidth, unsigned latency, unsigned frag_overhead, XferDesKind xd_kind)
 
SupportedPathadd_path (bool local_loopback, unsigned bandwidth, unsigned latency, unsigned frag_overhead, XferDesKind xd_kind)
 

Protected Attributes

RWLock mutex
 
uintptr_t remote_ptr
 
std::unordered_set< ReductionOpIDsupported_redops
 
SimpleXferDesFactory factory_singleton
 
const std::set< Memoryindirect_memories
 
- Protected Attributes inherited from Realm::Channel
std::vector< SupportedPathpaths
 

Friends

class SimpleRemoteChannelInfo
 

Additional Inherited Members

- Public Attributes inherited from Realm::Channel
NodeID node
 
XferDesKind kind
 
bool has_redop_path {false}
 
bool has_non_redop_path {false}
 

Constructor & Destructor Documentation

◆ RemoteChannel() [1/2]

Realm::RemoteChannel::RemoteChannel ( uintptr_t  _remote_ptr,
const std::vector< Memory > &  indirect_memories 
)
protected

◆ RemoteChannel() [2/2]

Realm::RemoteChannel::RemoteChannel ( uintptr_t  _remote_ptr)
protected

Member Function Documentation

◆ available()

long Realm::RemoteChannel::available ( )
overridevirtual

Implements Realm::Channel.

◆ enqueue_ready_xd()

void Realm::RemoteChannel::enqueue_ready_xd ( XferDes xd)
inlineoverridevirtual

Implements Realm::Channel.

◆ get_factory()

XferDesFactory * Realm::RemoteChannel::get_factory ( )
overrideprotectedvirtual

Implements Realm::Channel.

◆ get_remote_ptr()

uintptr_t Realm::RemoteChannel::get_remote_ptr ( ) const

◆ pull()

void Realm::RemoteChannel::pull ( )
overridevirtual

Implements Realm::Channel.

◆ register_redop()

void Realm::RemoteChannel::register_redop ( ReductionOpID  redop_id)

◆ shutdown()

void Realm::RemoteChannel::shutdown ( )
overrideprotectedvirtual

Reimplemented from Realm::Channel.

◆ submit()

long Realm::RemoteChannel::submit ( Request **  requests,
long  nr 
)
overridevirtual

Implements Realm::Channel.

◆ supports_indirection_memory()

bool Realm::RemoteChannel::supports_indirection_memory ( Memory  mem) const
overridevirtual

Queries if a given mem can be used as an indirection buffer.

Parameters
memMemory to be used as an indirection buffer
Returns
True if the given mem can be used as an indirection buffer for a copy

Reimplemented from Realm::Channel.

◆ supports_path()

uint64_t Realm::RemoteChannel::supports_path ( ChannelCopyInfo  channel_copy_info,
CustomSerdezID  src_serdez_id,
CustomSerdezID  dst_serdez_id,
ReductionOpID  redop_id,
size_t  total_bytes,
const std::vector< size_t > *  src_frags,
const std::vector< size_t > *  dst_frags,
XferDesKind kind_ret = 0,
unsigned *  bw_ret = 0,
unsigned *  lat_ret = 0 
)
overridevirtual

Reimplemented from Realm::Channel.

◆ supports_redop()

bool Realm::RemoteChannel::supports_redop ( ReductionOpID  redop_id) const
overridevirtual

Reimplemented from Realm::Channel.

◆ wakeup_xd()

void Realm::RemoteChannel::wakeup_xd ( XferDes xd)
inlineoverridevirtual

Implements Realm::Channel.

Friends And Related Symbol Documentation

◆ SimpleRemoteChannelInfo

friend class SimpleRemoteChannelInfo
friend

Member Data Documentation

◆ factory_singleton

SimpleXferDesFactory Realm::RemoteChannel::factory_singleton
protected

◆ indirect_memories

const std::set<Memory> Realm::RemoteChannel::indirect_memories
protected

◆ mutex

RWLock Realm::RemoteChannel::mutex
mutableprotected

◆ remote_ptr

uintptr_t Realm::RemoteChannel::remote_ptr
protected

◆ supported_redops

std::unordered_set<ReductionOpID> Realm::RemoteChannel::supported_redops
protected

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