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

#include <machine_impl.h>

Collaboration diagram for Realm::MachineImpl:

Public Member Functions

 MachineImpl (RuntimeImpl *_runtime_impl)
 
 ~MachineImpl (void)
 
RuntimeImplget_runtime_impl (void) const
 
void get_all_memories (std::set< Memory > &mset) const
 
void get_all_processors (std::set< Processor > &pset) const
 
void get_local_processors (std::set< Processor > &pset) const
 
void get_local_processors_by_kind (std::set< Processor > &pset, Processor::Kind kind) const
 
void get_visible_memories (Processor p, std::set< Memory > &mset, bool local_only) const
 
void get_visible_memories (Memory m, std::set< Memory > &mset, bool local_only) const
 
void get_shared_processors (Memory m, std::set< Processor > &pset, bool local_only) const
 
bool get_process_info (Processor p, Machine::ProcessInfo *info) const
 
bool has_affinity (Processor p, Memory m, Machine::AffinityDetails *details=0) const
 
bool has_affinity (Memory m1, Memory m2, Machine::AffinityDetails *details=0) const
 
int get_proc_mem_affinity (std::vector< Machine::ProcessorMemoryAffinity > &result, Processor restrict_proc=Processor::NO_PROC, Memory restrict_memory=Memory::NO_MEMORY, bool local_only=true) const
 
int get_mem_mem_affinity (std::vector< Machine::MemoryMemoryAffinity > &result, Memory restrict_mem1=Memory::NO_MEMORY, Memory restrict_mem2=Memory::NO_MEMORY, bool local_only=true) const
 
void parse_node_announce_data (int node_id, const void *args, size_t arglen, bool remote)
 
void add_proc_mem_affinity (const Machine::ProcessorMemoryAffinity &pma, bool lock_held=false)
 
void add_subscription (Machine::MachineUpdateSubscriber *subscriber)
 
void remove_subscription (Machine::MachineUpdateSubscriber *subscriber)
 
void update_kind_maps (void)
 
void enumerate_mem_mem_affinities (void)
 
void add_process_info (int node_id, const Machine::ProcessInfo &process_info, bool lock_held=false)
 

Public Attributes

Mutex mutex
 
std::vector< Machine::ProcessorMemoryAffinityproc_mem_affinities
 
std::set< Machine::MachineUpdateSubscriber * > subscribers
 
std::map< int, MachineNodeInfo * > nodeinfos
 

Protected Member Functions

MachineNodeInfoget_nodeinfo (int node) const
 
MachineNodeInfoget_nodeinfo (Processor p) const
 
MachineNodeInfoget_nodeinfo (Memory m) const
 
void invalidate_query_caches ()
 

Protected Attributes

RuntimeImplruntime_impl {nullptr}
 

Constructor & Destructor Documentation

◆ MachineImpl()

Realm::MachineImpl::MachineImpl ( RuntimeImpl _runtime_impl)

◆ ~MachineImpl()

Realm::MachineImpl::~MachineImpl ( void  )

Member Function Documentation

◆ add_proc_mem_affinity()

void Realm::MachineImpl::add_proc_mem_affinity ( const Machine::ProcessorMemoryAffinity pma,
bool  lock_held = false 
)

◆ add_process_info()

void Realm::MachineImpl::add_process_info ( int  node_id,
const Machine::ProcessInfo process_info,
bool  lock_held = false 
)

◆ add_subscription()

void Realm::MachineImpl::add_subscription ( Machine::MachineUpdateSubscriber subscriber)

◆ enumerate_mem_mem_affinities()

void Realm::MachineImpl::enumerate_mem_mem_affinities ( void  )

◆ get_all_memories()

void Realm::MachineImpl::get_all_memories ( std::set< Memory > &  mset) const

◆ get_all_processors()

void Realm::MachineImpl::get_all_processors ( std::set< Processor > &  pset) const

◆ get_local_processors()

void Realm::MachineImpl::get_local_processors ( std::set< Processor > &  pset) const

◆ get_local_processors_by_kind()

void Realm::MachineImpl::get_local_processors_by_kind ( std::set< Processor > &  pset,
Processor::Kind  kind 
) const

◆ get_mem_mem_affinity()

int Realm::MachineImpl::get_mem_mem_affinity ( std::vector< Machine::MemoryMemoryAffinity > &  result,
Memory  restrict_mem1 = Memory::NO_MEMORY,
Memory  restrict_mem2 = Memory::NO_MEMORY,
bool  local_only = true 
) const

◆ get_nodeinfo() [1/3]

MachineNodeInfo * Realm::MachineImpl::get_nodeinfo ( int  node) const
protected

◆ get_nodeinfo() [2/3]

MachineNodeInfo * Realm::MachineImpl::get_nodeinfo ( Memory  m) const
protected

◆ get_nodeinfo() [3/3]

MachineNodeInfo * Realm::MachineImpl::get_nodeinfo ( Processor  p) const
protected

◆ get_proc_mem_affinity()

int Realm::MachineImpl::get_proc_mem_affinity ( std::vector< Machine::ProcessorMemoryAffinity > &  result,
Processor  restrict_proc = Processor::NO_PROC,
Memory  restrict_memory = Memory::NO_MEMORY,
bool  local_only = true 
) const

◆ get_process_info()

bool Realm::MachineImpl::get_process_info ( Processor  p,
Machine::ProcessInfo info 
) const

◆ get_runtime_impl()

RuntimeImpl * Realm::MachineImpl::get_runtime_impl ( void  ) const

◆ get_shared_processors()

void Realm::MachineImpl::get_shared_processors ( Memory  m,
std::set< Processor > &  pset,
bool  local_only 
) const

◆ get_visible_memories() [1/2]

void Realm::MachineImpl::get_visible_memories ( Memory  m,
std::set< Memory > &  mset,
bool  local_only 
) const

◆ get_visible_memories() [2/2]

void Realm::MachineImpl::get_visible_memories ( Processor  p,
std::set< Memory > &  mset,
bool  local_only 
) const

◆ has_affinity() [1/2]

bool Realm::MachineImpl::has_affinity ( Memory  m1,
Memory  m2,
Machine::AffinityDetails details = 0 
) const

◆ has_affinity() [2/2]

bool Realm::MachineImpl::has_affinity ( Processor  p,
Memory  m,
Machine::AffinityDetails details = 0 
) const

◆ invalidate_query_caches()

void Realm::MachineImpl::invalidate_query_caches ( )
protected

◆ parse_node_announce_data()

void Realm::MachineImpl::parse_node_announce_data ( int  node_id,
const void *  args,
size_t  arglen,
bool  remote 
)

◆ remove_subscription()

void Realm::MachineImpl::remove_subscription ( Machine::MachineUpdateSubscriber subscriber)

◆ update_kind_maps()

void Realm::MachineImpl::update_kind_maps ( void  )

Member Data Documentation

◆ mutex

Mutex Realm::MachineImpl::mutex
mutable

◆ nodeinfos

std::map<int, MachineNodeInfo *> Realm::MachineImpl::nodeinfos

◆ proc_mem_affinities

std::vector<Machine::ProcessorMemoryAffinity> Realm::MachineImpl::proc_mem_affinities

◆ runtime_impl

RuntimeImpl* Realm::MachineImpl::runtime_impl {nullptr}
protected

◆ subscribers

std::set<Machine::MachineUpdateSubscriber *> Realm::MachineImpl::subscribers

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