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

#include <machine_impl.h>

Collaboration diagram for Realm::ProcessorQueryImpl:

Classes

struct  BestAffinityCostFn
 

Public Member Functions

 ProcessorQueryImpl (const Machine &_machine)
 
 ProcessorQueryImpl (const MachineImpl *_machine_impl)
 
void add_reference (void)
 
void remove_reference (void)
 
ProcessorQueryImplwriteable_reference (void)
 
void restrict_to_node (int new_node_id)
 
void restrict_to_kind (Processor::Kind new_kind)
 
void add_predicate (ProcQueryPredicate *pred)
 
Processor first_match (void) const
 
Processor next_match (Processor after)
 
size_t count_matches (void) const
 
Processor random_match (void) const
 
void set_cached_mem (Memory m)
 
void reset_cached_mem ()
 
Processor cache_next (Processor after)
 

Static Public Attributes

static unsigned int init
 
static unsigned int cache_invalid_count
 
static bool global_valid_cache
 
static std::map< Processor::Kind, std::vector< Processor > > _proc_cache
 
static std::map< Processor::Kind, std::map< Memory, std::vector< Processor > > > _proc_cache_affinity
 

Protected Member Functions

 ProcessorQueryImpl (const ProcessorQueryImpl &copy_from)
 
 ~ProcessorQueryImpl (void)
 
std::vector< Processor > * cached_list () const
 
bool cached_query (Processor p, Processor &pval)
 
bool cached_query (Processor &pval, QueryType q) const
 
bool cached_query (size_t &count) const
 
Processor mutated_cached_query (Processor p)
 
Processor next (Processor after)
 
Processor build_best_affinity_cache () const
 

Protected Attributes

atomic< int > references
 
const MachineImplmachine
 
bool is_restricted_node
 
int restricted_node_id
 
bool is_restricted_kind
 
Processor::Kind restricted_kind
 
std::vector< ProcQueryPredicate * > predicates
 
std::optional< BestAffinityCostFnbest_affinity_cost
 
Memory cached_mem
 
bool is_cached_mem
 
bool shared_cached_list
 
bool valid_cache
 
std::vector< Processor > * cur_cached_list
 
unsigned int invalid_count
 
unsigned int cur_index
 

Friends

Machine::ProcessorQueryMachine::ProcessorQuery::best_affinity_to (Memory m, int bandwidth_weight, int latency_weight)
 

Constructor & Destructor Documentation

◆ ProcessorQueryImpl() [1/3]

Realm::ProcessorQueryImpl::ProcessorQueryImpl ( const Machine _machine)

◆ ProcessorQueryImpl() [2/3]

Realm::ProcessorQueryImpl::ProcessorQueryImpl ( const MachineImpl _machine_impl)

◆ ProcessorQueryImpl() [3/3]

Realm::ProcessorQueryImpl::ProcessorQueryImpl ( const ProcessorQueryImpl copy_from)
protected

◆ ~ProcessorQueryImpl()

Realm::ProcessorQueryImpl::~ProcessorQueryImpl ( void  )
protected

Member Function Documentation

◆ add_predicate()

void Realm::ProcessorQueryImpl::add_predicate ( ProcQueryPredicate pred)

◆ add_reference()

void Realm::ProcessorQueryImpl::add_reference ( void  )

◆ build_best_affinity_cache()

Processor Realm::ProcessorQueryImpl::build_best_affinity_cache ( ) const
protected

◆ cache_next()

Processor Realm::ProcessorQueryImpl::cache_next ( Processor  after)

◆ cached_list()

std::vector< Processor > * Realm::ProcessorQueryImpl::cached_list ( ) const
protected

◆ cached_query() [1/3]

bool Realm::ProcessorQueryImpl::cached_query ( Processor pval,
QueryType  q 
) const
protected

◆ cached_query() [2/3]

bool Realm::ProcessorQueryImpl::cached_query ( Processor  p,
Processor pval 
)
protected

◆ cached_query() [3/3]

bool Realm::ProcessorQueryImpl::cached_query ( size_t &  count) const
protected

◆ count_matches()

size_t Realm::ProcessorQueryImpl::count_matches ( void  ) const

◆ first_match()

Processor Realm::ProcessorQueryImpl::first_match ( void  ) const

◆ mutated_cached_query()

Processor Realm::ProcessorQueryImpl::mutated_cached_query ( Processor  p)
protected

◆ next()

Processor Realm::ProcessorQueryImpl::next ( Processor  after)
protected

◆ next_match()

Processor Realm::ProcessorQueryImpl::next_match ( Processor  after)

◆ random_match()

Processor Realm::ProcessorQueryImpl::random_match ( void  ) const

◆ remove_reference()

void Realm::ProcessorQueryImpl::remove_reference ( void  )

◆ reset_cached_mem()

void Realm::ProcessorQueryImpl::reset_cached_mem ( )
inline

◆ restrict_to_kind()

void Realm::ProcessorQueryImpl::restrict_to_kind ( Processor::Kind  new_kind)

◆ restrict_to_node()

void Realm::ProcessorQueryImpl::restrict_to_node ( int  new_node_id)

◆ set_cached_mem()

void Realm::ProcessorQueryImpl::set_cached_mem ( Memory  m)
inline

◆ writeable_reference()

ProcessorQueryImpl * Realm::ProcessorQueryImpl::writeable_reference ( void  )

Friends And Related Symbol Documentation

◆ Machine::ProcessorQuery::best_affinity_to

Machine::ProcessorQuery & Machine::ProcessorQuery::best_affinity_to ( Memory  m,
int  bandwidth_weight,
int  latency_weight 
)
friend

Member Data Documentation

◆ _proc_cache

std::map<Processor::Kind, std::vector<Processor> > Realm::ProcessorQueryImpl::_proc_cache
static

◆ _proc_cache_affinity

std::map<Processor::Kind, std::map<Memory, std::vector<Processor> > > Realm::ProcessorQueryImpl::_proc_cache_affinity
static

◆ best_affinity_cost

std::optional<BestAffinityCostFn> Realm::ProcessorQueryImpl::best_affinity_cost
protected

◆ cache_invalid_count

unsigned int Realm::ProcessorQueryImpl::cache_invalid_count
static

◆ cached_mem

Memory Realm::ProcessorQueryImpl::cached_mem
protected

◆ cur_cached_list

std::vector<Processor>* Realm::ProcessorQueryImpl::cur_cached_list
mutableprotected

◆ cur_index

unsigned int Realm::ProcessorQueryImpl::cur_index
protected

◆ global_valid_cache

bool Realm::ProcessorQueryImpl::global_valid_cache
static

◆ init

unsigned int Realm::ProcessorQueryImpl::init
static

◆ invalid_count

unsigned int Realm::ProcessorQueryImpl::invalid_count
mutableprotected

◆ is_cached_mem

bool Realm::ProcessorQueryImpl::is_cached_mem
protected

◆ is_restricted_kind

bool Realm::ProcessorQueryImpl::is_restricted_kind
protected

◆ is_restricted_node

bool Realm::ProcessorQueryImpl::is_restricted_node
protected

◆ machine

const MachineImpl* Realm::ProcessorQueryImpl::machine
protected

◆ predicates

std::vector<ProcQueryPredicate *> Realm::ProcessorQueryImpl::predicates
protected

◆ references

atomic<int> Realm::ProcessorQueryImpl::references
protected

◆ restricted_kind

Processor::Kind Realm::ProcessorQueryImpl::restricted_kind
protected

◆ restricted_node_id

int Realm::ProcessorQueryImpl::restricted_node_id
protected

◆ shared_cached_list

bool Realm::ProcessorQueryImpl::shared_cached_list
mutableprotected

◆ valid_cache

bool Realm::ProcessorQueryImpl::valid_cache
protected

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