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

#include <channel.h>

Inheritance diagram for Realm::Channel:

Classes

struct  SupportedPath
 

Public Member Functions

 Channel (XferDesKind _kind)
 
virtual ~Channel ()
 
virtual void shutdown ()
 
virtual XferDesFactoryget_factory ()=0
 
virtual bool supports_redop (ReductionOpID redop_id) const
 
virtual long progress_xd (XferDes *xd, long max_nr)
 
virtual long submit (Request **requests, long nr)=0
 
virtual void pull ()=0
 
virtual long available ()=0
 
const std::vector< SupportedPath > & get_paths (void) const
 
void update_channel_state (void)
 
virtual 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)
 
virtual bool supports_indirection_memory (Memory mem) const
 Queries if a given mem can be used as an indirection buffer.
 
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
 
virtual void enqueue_ready_xd (XferDes *xd)=0
 
virtual void wakeup_xd (XferDes *xd)=0
 

Public Attributes

NodeID node
 
XferDesKind kind
 
bool has_redop_path {false}
 
bool has_non_redop_path {false}
 

Protected Member Functions

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

std::vector< SupportedPathpaths
 

Constructor & Destructor Documentation

◆ Channel()

Realm::Channel::Channel ( XferDesKind  _kind)
inline

◆ ~Channel()

virtual Realm::Channel::~Channel ( )
inlinevirtual

Member Function Documentation

◆ add_path() [1/5]

SupportedPath & Realm::Channel::add_path ( bool  local_loopback,
unsigned  bandwidth,
unsigned  latency,
unsigned  frag_overhead,
XferDesKind  xd_kind 
)
protected

◆ add_path() [2/5]

SupportedPath & Realm::Channel::add_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 
)
protected

◆ add_path() [3/5]

SupportedPath & Realm::Channel::add_path ( Memory::Kind  src_kind,
bool  src_global,
span< const Memory dst_mems,
unsigned  bandwidth,
unsigned  latency,
unsigned  frag_overhead,
XferDesKind  xd_kind 
)
protected

◆ add_path() [4/5]

SupportedPath & Realm::Channel::add_path ( span< const Memory src_mems,
Memory::Kind  dst_kind,
bool  dst_global,
unsigned  bandwidth,
unsigned  latency,
unsigned  frag_overhead,
XferDesKind  xd_kind 
)
protected

◆ add_path() [5/5]

SupportedPath & Realm::Channel::add_path ( span< const Memory src_mems,
span< const Memory dst_mems,
unsigned  bandwidth,
unsigned  latency,
unsigned  frag_overhead,
XferDesKind  xd_kind 
)
protected

◆ available()

◆ construct_remote_info()

virtual RemoteChannelInfo * Realm::Channel::construct_remote_info ( ) const
virtual

◆ enqueue_ready_xd()

◆ get_factory()

virtual XferDesFactory * Realm::Channel::get_factory ( )
pure virtual

◆ get_paths()

const std::vector< SupportedPath > & Realm::Channel::get_paths ( void  ) const

◆ needs_wrapping_iterator()

virtual bool Realm::Channel::needs_wrapping_iterator ( ) const
inlinevirtual

◆ print()

void Realm::Channel::print ( std::ostream &  os) const

◆ progress_xd()

◆ pull()

◆ shutdown()

◆ submit()

◆ suggest_ib_memories()

virtual Memory Realm::Channel::suggest_ib_memories ( ) const
virtual

◆ suggest_ib_memories_for_node()

virtual Memory Realm::Channel::suggest_ib_memories_for_node ( NodeID  node) const
virtual

◆ supports_indirection_memory()

virtual bool Realm::Channel::supports_indirection_memory ( Memory  mem) const
virtual

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 in Realm::Cuda::GPUIndirectChannel, and Realm::RemoteChannel.

◆ supports_path()

virtual uint64_t Realm::Channel::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 
)
virtual

◆ supports_redop()

virtual bool Realm::Channel::supports_redop ( ReductionOpID  redop_id) const
virtual

◆ update_channel_state()

void Realm::Channel::update_channel_state ( void  )

◆ wakeup_xd()

Member Data Documentation

◆ has_non_redop_path

bool Realm::Channel::has_non_redop_path {false}

◆ has_redop_path

bool Realm::Channel::has_redop_path {false}

◆ kind

XferDesKind Realm::Channel::kind

◆ node

NodeID Realm::Channel::node

◆ paths

std::vector<SupportedPath> Realm::Channel::paths
protected

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