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

#include <machine.h>

Inheritance diagram for Realm::Machine:
Collaboration diagram for Realm::Machine:

Classes

class  MachineUpdateSubscriber
 
struct  MemoryMemoryAffinity
 
struct  ProcessInfo
 
struct  ProcessorMemoryAffinity
 

Public Types

typedef realm_affinity_details_t AffinityDetails
 
typedef MachineQueryIterator< ProcessorQuery, Processoriterator
 
typedef MachineQueryIterator< MemoryQuery, Memoryiterator
 

Public Member Functions

 Machine (const Machine &m)
 
Machineoperator= (const Machine &m)
 
 ~Machine (void)
 
bool has_affinity (Processor p, Memory m, AffinityDetails *details=0) const
 
bool has_affinity (Memory m1, Memory m2, AffinityDetails *details=0) 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=true) const
 
void get_visible_memories (Memory m, std::set< Memory > &mset, bool local_only=true) const
 
void get_shared_processors (Memory m, std::set< Processor > &pset, bool local_only=true) const
 
size_t get_address_space_count (void) const
 
bool get_process_info (Processor p, ProcessInfo *info) const
 
int get_proc_mem_affinity (std::vector< 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< MemoryMemoryAffinity > &result, Memory restrict_mem1=Memory::NO_MEMORY, Memory restrict_mem2=Memory::NO_MEMORY, bool local_only=true) const
 
void add_subscription (MachineUpdateSubscriber *subscriber)
 
void add_subscription (MachineUpdateSubscriber *subscriber, const ProcessorQuery &query)
 
void add_subscription (MachineUpdateSubscriber *subscriber, const MemoryQuery &query)
 
void remove_subscription (MachineUpdateSubscriber *subscriber)
 
 ProcessorQuery (const Machine &m)
 
 ProcessorQuery (const ProcessorQuery &q)
 
 ~ProcessorQuery (void)
 
ProcessorQueryoperator= (const ProcessorQuery &q)
 
bool operator== (const ProcessorQuery &compare_to) const
 
bool operator!= (const ProcessorQuery &compare_to) const
 
ProcessorQueryonly_kind (Processor::Kind kind)
 
ProcessorQuerylocal_address_space (void)
 
ProcessorQuerysame_address_space_as (Processor p)
 
ProcessorQuerysame_address_space_as (Memory m)
 
ProcessorQueryhas_affinity_to (Memory m, unsigned min_bandwidth=0, unsigned max_latency=0)
 
ProcessorQuerybest_affinity_to (Memory m, int bandwidth_weight=1, int latency_weight=0)
 
size_t count (void) const
 
Processor first (void) const
 
Processor next (Processor after) const
 
Processor random (void) const
 
iterator begin (void) const
 
iterator end (void) const
 
 MemoryQuery (const Machine &m)
 
 MemoryQuery (const MemoryQuery &q)
 
 ~MemoryQuery (void)
 
MemoryQueryoperator= (const MemoryQuery &q)
 
bool operator== (const MemoryQuery &compare_to) const
 
bool operator!= (const MemoryQuery &compare_to) const
 
MemoryQueryonly_kind (Memory::Kind kind)
 
MemoryQuerylocal_address_space (void)
 
MemoryQuerysame_address_space_as (Processor p)
 
MemoryQuerysame_address_space_as (Memory m)
 
MemoryQueryhas_affinity_to (Processor p, unsigned min_bandwidth=0, unsigned max_latency=0)
 
MemoryQueryhas_affinity_to (Memory m, unsigned min_bandwidth=0, unsigned max_latency=0)
 
MemoryQuerybest_affinity_to (Processor p, int bandwidth_weight=1, int latency_weight=0)
 
MemoryQuerybest_affinity_to (Memory m, int bandwidth_weight=1, int latency_weight=0)
 
MemoryQueryhas_capacity (size_t min_bytes)
 
size_t count (void) const
 
Memory first (void) const
 
Memory next (Memory after) const
 
Memory random (void) const
 
iterator begin (void) const
 
iterator end (void) const
 

Static Public Member Functions

static Machine get_machine (void)
 

Public Attributes

void * impl
 

Protected Member Functions

 Machine (void *_impl)
 

Friends

class Runtime
 

Member Typedef Documentation

◆ AffinityDetails

◆ iterator [1/2]

◆ iterator [2/2]

Constructor & Destructor Documentation

◆ Machine() [1/2]

Realm::Machine::Machine ( void *  _impl)
inlineexplicitprotected

◆ Machine() [2/2]

Realm::Machine::Machine ( const Machine m)
inline

◆ ~Machine()

Realm::Machine::~Machine ( void  )
inline

◆ ~ProcessorQuery()

Realm::Machine::~ProcessorQuery ( void  )

◆ ~MemoryQuery()

Realm::Machine::~MemoryQuery ( void  )

Member Function Documentation

◆ add_subscription() [1/3]

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

◆ add_subscription() [2/3]

void Realm::Machine::add_subscription ( MachineUpdateSubscriber subscriber,
const MemoryQuery query 
)

◆ add_subscription() [3/3]

void Realm::Machine::add_subscription ( MachineUpdateSubscriber subscriber,
const ProcessorQuery query 
)

◆ begin() [1/2]

iterator Realm::Machine::begin ( void  ) const

◆ begin() [2/2]

iterator Realm::Machine::begin ( void  ) const

◆ best_affinity_to() [1/3]

ProcessorQuery & Realm::Machine::best_affinity_to ( Memory  m,
int  bandwidth_weight = 1,
int  latency_weight = 0 
)

◆ best_affinity_to() [2/3]

MemoryQuery & Realm::Machine::best_affinity_to ( Memory  m,
int  bandwidth_weight = 1,
int  latency_weight = 0 
)

◆ best_affinity_to() [3/3]

MemoryQuery & Realm::Machine::best_affinity_to ( Processor  p,
int  bandwidth_weight = 1,
int  latency_weight = 0 
)

◆ count() [1/2]

size_t Realm::Machine::count ( void  ) const

◆ count() [2/2]

size_t Realm::Machine::count ( void  ) const

◆ end() [1/2]

iterator Realm::Machine::end ( void  ) const

◆ end() [2/2]

iterator Realm::Machine::end ( void  ) const

◆ first() [1/2]

Processor Realm::Machine::first ( void  ) const

◆ first() [2/2]

Memory Realm::Machine::first ( void  ) const

◆ get_address_space_count()

size_t Realm::Machine::get_address_space_count ( void  ) const

◆ get_all_memories()

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

◆ get_all_processors()

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

◆ get_local_processors()

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

◆ get_local_processors_by_kind()

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

◆ get_machine()

static Machine Realm::Machine::get_machine ( void  )
static

◆ get_mem_mem_affinity()

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

◆ get_proc_mem_affinity()

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

◆ get_process_info()

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

◆ get_shared_processors()

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

◆ get_visible_memories() [1/2]

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

◆ get_visible_memories() [2/2]

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

◆ has_affinity() [1/2]

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

◆ has_affinity() [2/2]

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

◆ has_affinity_to() [1/3]

ProcessorQuery & Realm::Machine::has_affinity_to ( Memory  m,
unsigned  min_bandwidth = 0,
unsigned  max_latency = 0 
)

◆ has_affinity_to() [2/3]

MemoryQuery & Realm::Machine::has_affinity_to ( Memory  m,
unsigned  min_bandwidth = 0,
unsigned  max_latency = 0 
)

◆ has_affinity_to() [3/3]

MemoryQuery & Realm::Machine::has_affinity_to ( Processor  p,
unsigned  min_bandwidth = 0,
unsigned  max_latency = 0 
)

◆ has_capacity()

MemoryQuery & Realm::Machine::has_capacity ( size_t  min_bytes)

◆ local_address_space() [1/2]

ProcessorQuery & Realm::Machine::local_address_space ( void  )

◆ local_address_space() [2/2]

MemoryQuery & Realm::Machine::local_address_space ( void  )

◆ MemoryQuery() [1/2]

Realm::Machine::MemoryQuery ( const Machine m)
explicit

◆ MemoryQuery() [2/2]

Realm::Machine::MemoryQuery ( const MemoryQuery &  q)

◆ next() [1/2]

Memory Realm::Machine::next ( Memory  after) const

◆ next() [2/2]

Processor Realm::Machine::next ( Processor  after) const

◆ only_kind() [1/2]

MemoryQuery & Realm::Machine::only_kind ( Memory::Kind  kind)

◆ only_kind() [2/2]

ProcessorQuery & Realm::Machine::only_kind ( Processor::Kind  kind)

◆ operator!=() [1/2]

bool Realm::Machine::operator!= ( const MemoryQuery compare_to) const

◆ operator!=() [2/2]

bool Realm::Machine::operator!= ( const ProcessorQuery compare_to) const

◆ operator=() [1/3]

Machine & Realm::Machine::operator= ( const Machine m)
inline

◆ operator=() [2/3]

MemoryQuery & Realm::Machine::operator= ( const MemoryQuery q)

◆ operator=() [3/3]

ProcessorQuery & Realm::Machine::operator= ( const ProcessorQuery q)

◆ operator==() [1/2]

bool Realm::Machine::operator== ( const MemoryQuery compare_to) const

◆ operator==() [2/2]

bool Realm::Machine::operator== ( const ProcessorQuery compare_to) const

◆ ProcessorQuery() [1/2]

Realm::Machine::ProcessorQuery ( const Machine m)
explicit

◆ ProcessorQuery() [2/2]

Realm::Machine::ProcessorQuery ( const ProcessorQuery &  q)

◆ random() [1/2]

Processor Realm::Machine::random ( void  ) const

◆ random() [2/2]

Memory Realm::Machine::random ( void  ) const

◆ remove_subscription()

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

◆ same_address_space_as() [1/4]

ProcessorQuery & Realm::Machine::same_address_space_as ( Memory  m)

◆ same_address_space_as() [2/4]

MemoryQuery & Realm::Machine::same_address_space_as ( Memory  m)

◆ same_address_space_as() [3/4]

ProcessorQuery & Realm::Machine::same_address_space_as ( Processor  p)

◆ same_address_space_as() [4/4]

MemoryQuery & Realm::Machine::same_address_space_as ( Processor  p)

Friends And Related Symbol Documentation

◆ Runtime

friend class Runtime
friend

Member Data Documentation

◆ impl

void * Realm::Machine::impl

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