Legion Runtime
Loading...
Searching...
No Matches
Legion::Mapping::Utilities::MachineQueryInterface Class Reference

#include <mapping_utilities.h>

Public Member Functions

 MachineQueryInterface (Machine m)
 
Memory find_global_memory (void)
 
void find_memory_stack (Processor proc, std::vector< Memory > &stack, bool latency)
 
void find_memory_stack (Memory mem, std::vector< Memory > &stack, bool latency)
 
Memory find_memory_kind (Processor proc, Memory::Kind kind)
 
Memory find_memory_kind (Memory mem, Memory::Kind kind)
 
Processor find_processor_kind (Memory mem, Processor::Kind kind)
 
const std::set< Processor > & filter_processors (Processor::Kind kind)
 
const std::set< Memory > & filter_memories (Memory::Kind kind)
 

Static Public Member Functions

static Memory find_global_memory (Machine machine)
 
static void find_memory_stack (Machine machine, Processor proc, std::vector< Memory > &stack, bool latency)
 
static void find_memory_stack (Machine machine, Memory mem, std::vector< Memory > &stack, bool latency)
 
static Memory find_memory_kind (Machine machine, Processor proc, Memory::Kind kind)
 
static Memory find_memory_kind (Machine machine, Memory mem, Memory::Kind kind)
 
static Processor find_processor_kind (Machine machine, Memory mem, Processor::Kind kind)
 
static void filter_processors (Machine machine, Processor::Kind kind, std::set< Processor > &procs)
 
static void filter_memories (Machine machine, Memory::Kind kind, std::set< Memory > &mems)
 

Static Protected Member Functions

static void sort_memories (Machine machine, Processor proc, std::vector< Memory > &memories, bool latency)
 
static void sort_memories (Machine machine, Memory mem, std::vector< Memory > &memories, bool latency)
 

Protected Attributes

const Machine machine
 
Memory global_memory
 
std::map< Processor, std::vector< Memory > > proc_mem_stacks
 
std::map< Memory, std::vector< Memory > > mem_mem_stacks
 
std::map< std::pair< Processor, Memory::Kind >, Memory > proc_mem_table
 
std::map< std::pair< Memory, Memory::Kind >, Memory > mem_mem_table
 
std::map< std::pair< Memory, Processor::Kind >, Processor > mem_proc_table
 
std::map< Processor::Kind, std::set< Processor > > proc_kinds
 
std::map< Memory::Kind, std::set< Memory > > mem_kinds
 

Detailed Description

A class containing methods for pulling out information from the Machine structure. Queries are memoized so that future calls are less expensive. Static versions of each of the methods are also available, but do not memoize the results of their invocations.

Member Function Documentation

◆ filter_memories()

const std::set< Memory > & Legion::Mapping::Utilities::MachineQueryInterface::filter_memories ( Memory::Kind  kind)

Return a set of memories filtered on the given type. If an empty set is passed in then the set will be populated with all processors of the given kind.

◆ filter_processors()

const std::set< Processor > & Legion::Mapping::Utilities::MachineQueryInterface::filter_processors ( Processor::Kind  kind)

Return a set of processors filtered on the given type. If an empty set is passed in then the set will be populated with all processors of the given kind.

◆ find_global_memory()

Memory Legion::Mapping::Utilities::MachineQueryInterface::find_global_memory ( void  )

Find a memory visible to all the processors

◆ find_memory_kind() [1/2]

Memory Legion::Mapping::Utilities::MachineQueryInterface::find_memory_kind ( Memory  mem,
Memory::Kind  kind 
)

Find the memory of a given kind that is visible from the specified memory.

◆ find_memory_kind() [2/2]

Memory Legion::Mapping::Utilities::MachineQueryInterface::find_memory_kind ( Processor  proc,
Memory::Kind  kind 
)

Find the memory of a given kind that is visible from the specified processor.

◆ find_memory_stack() [1/2]

void Legion::Mapping::Utilities::MachineQueryInterface::find_memory_stack ( Memory  mem,
std::vector< Memory > &  stack,
bool  latency 
)

Get the memory stack for a given memory sorted by either throughput or latency.

◆ find_memory_stack() [2/2]

void Legion::Mapping::Utilities::MachineQueryInterface::find_memory_stack ( Processor  proc,
std::vector< Memory > &  stack,
bool  latency 
)

Get the memory stack for a given processor sorted by either throughput or latency.

◆ find_processor_kind()

Processor Legion::Mapping::Utilities::MachineQueryInterface::find_processor_kind ( Memory  mem,
Processor::Kind  kind 
)

Find the processor of a given kind that is is visible from the specified memory.


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