|
|
| TestMapper (MapperRuntime *rt, Machine machine, Processor local, const char *mapper_name=NULL) |
| |
|
| TestMapper (const TestMapper &rhs) |
| |
|
TestMapper & | operator= (const TestMapper &rhs) |
| |
| void | select_task_options (const MapperContext ctx, const Task &task, TaskOptions &output) override |
| |
| void | slice_task (const MapperContext ctx, const Task &task, const SliceTaskInput &input, SliceTaskOutput &output) override |
| |
| void | map_task (const MapperContext ctx, const Task &task, const MapTaskInput &input, MapTaskOutput &output) override |
| |
| void | select_task_variant (const MapperContext ctx, const Task &task, const SelectVariantInput &input, SelectVariantOutput &output) override |
| |
| void | select_task_sources (const MapperContext ctx, const Task &task, const SelectTaskSrcInput &input, SelectTaskSrcOutput &output) override |
| |
| void | map_inline (const MapperContext ctx, const InlineMapping &inline_op, const MapInlineInput &input, MapInlineOutput &output) override |
| |
| void | select_inline_sources (const MapperContext ctx, const InlineMapping &inline_op, const SelectInlineSrcInput &input, SelectInlineSrcOutput &output) override |
| |
| void | map_copy (const MapperContext ctx, const Copy ©, const MapCopyInput &input, MapCopyOutput &output) override |
| |
| void | select_copy_sources (const MapperContext ctx, const Copy ©, const SelectCopySrcInput &input, SelectCopySrcOutput &output) override |
| |
| void | select_close_sources (const MapperContext ctx, const Close &close, const SelectCloseSrcInput &input, SelectCloseSrcOutput &output) override |
| |
| void | select_release_sources (const MapperContext ctx, const Release &release, const SelectReleaseSrcInput &input, SelectReleaseSrcOutput &output) override |
| |
| void | select_tasks_to_map (const MapperContext ctx, const SelectMappingInput &input, SelectMappingOutput &output) override |
| |
| void | select_steal_targets (const MapperContext ctx, const SelectStealingInput &input, SelectStealingOutput &output) override |
| |
| void | permit_steal_request (const MapperContext ctx, const StealRequestInput &intput, StealRequestOutput &output) override |
| |
|
| DefaultMapper (MapperRuntime *rt, Machine machine, Processor local, const char *mapper_name=NULL, bool own_name=false) |
| |
|
| DefaultMapper (const DefaultMapper &rhs) |
| |
|
DefaultMapper & | operator= (const DefaultMapper &rhs) |
| |
| const char * | get_mapper_name (void) const override |
| |
| MapperSyncModel | get_mapper_sync_model (void) const override |
| |
| void | premap_task (const MapperContext ctx, const Task &task, const PremapTaskInput &input, PremapTaskOutput &output) override |
| |
| void | replicate_task (MapperContext ctx, const Task &task, const ReplicateTaskInput &input, ReplicateTaskOutput &output) override |
| |
|
virtual void | map_replicate_task (const MapperContext ctx, const Task &task, const MapTaskInput &input, const MapTaskOutput &default_output, MapReplicateTaskOutput &output) |
| |
| void | postmap_task (const MapperContext ctx, const Task &task, const PostMapInput &input, PostMapOutput &output) override |
| |
| void | report_profiling (const MapperContext ctx, const Task &task, const TaskProfilingInfo &input) override |
| |
| void | select_sharding_functor (const MapperContext ctx, const Task &task, const SelectShardingFunctorInput &input, SelectShardingFunctorOutput &output) override |
| |
| void | report_profiling (const MapperContext ctx, const InlineMapping &inline_op, const InlineProfilingInfo &input) override |
| |
| void | report_profiling (const MapperContext ctx, const Copy ©, const CopyProfilingInfo &input) override |
| |
| void | select_sharding_functor (const MapperContext ctx, const Copy ©, const SelectShardingFunctorInput &input, SelectShardingFunctorOutput &output) override |
| |
| void | report_profiling (const MapperContext ctx, const Close &close, const CloseProfilingInfo &input) override |
| |
| void | select_sharding_functor (const MapperContext ctx, const Close &close, const SelectShardingFunctorInput &input, SelectShardingFunctorOutput &output) override |
| |
| void | map_acquire (const MapperContext ctx, const Acquire &acquire, const MapAcquireInput &input, MapAcquireOutput &output) override |
| |
| void | report_profiling (const MapperContext ctx, const Acquire &acquire, const AcquireProfilingInfo &input) override |
| |
| void | select_sharding_functor (const MapperContext ctx, const Acquire &acquire, const SelectShardingFunctorInput &input, SelectShardingFunctorOutput &output) override |
| |
| void | map_release (const MapperContext ctx, const Release &release, const MapReleaseInput &input, MapReleaseOutput &output) override |
| |
| void | report_profiling (const MapperContext ctx, const Release &release, const ReleaseProfilingInfo &input) override |
| |
| void | select_sharding_functor (const MapperContext ctx, const Release &release, const SelectShardingFunctorInput &input, SelectShardingFunctorOutput &output) override |
| |
| void | select_partition_projection (const MapperContext ctx, const Partition &partition, const SelectPartitionProjectionInput &input, SelectPartitionProjectionOutput &output) override |
| |
| void | map_partition (const MapperContext ctx, const Partition &partition, const MapPartitionInput &input, MapPartitionOutput &output) override |
| |
| void | select_partition_sources (const MapperContext ctx, const Partition &partition, const SelectPartitionSrcInput &input, SelectPartitionSrcOutput &output) override |
| |
| void | report_profiling (const MapperContext ctx, const Partition &partition, const PartitionProfilingInfo &input) override |
| |
| void | select_sharding_functor (const MapperContext ctx, const Partition &partition, const SelectShardingFunctorInput &input, SelectShardingFunctorOutput &output) override |
| |
| void | select_sharding_functor (const MapperContext ctx, const Fill &fill, const SelectShardingFunctorInput &input, SelectShardingFunctorOutput &output) override |
| |
| void | configure_context (const MapperContext ctx, const Task &task, ContextConfigOutput &output) override |
| |
| void | select_tunable_value (const MapperContext ctx, const Task &task, const SelectTunableInput &input, SelectTunableOutput &output) override |
| |
| void | select_sharding_functor (const MapperContext ctx, const MustEpoch &epoch, const SelectShardingFunctorInput &input, MustEpochShardingFunctorOutput &output) override |
| |
| void | map_must_epoch (const MapperContext ctx, const MapMustEpochInput &input, MapMustEpochOutput &output) override |
| |
| void | map_dataflow_graph (const MapperContext ctx, const MapDataflowGraphInput &input, MapDataflowGraphOutput &output) override |
| |
| void | memoize_operation (const MapperContext ctx, const Mappable &mappable, const MemoizeInput &input, MemoizeOutput &output) override |
| |
| void | handle_message (const MapperContext ctx, const MapperMessage &message) override |
| |
| void | handle_task_result (const MapperContext ctx, const MapperTaskResult &result) override |
| |
|
virtual Processor | default_policy_select_initial_processor (MapperContext ctx, const Task &task) |
| |
|
virtual void | default_policy_select_target_processors (MapperContext ctx, const Task &task, std::vector< Processor > &target_procs) |
| |
|
virtual TaskPriority | default_policy_select_task_priority (MapperContext ctx, const Task &task) |
| |
|
virtual CachedMappingPolicy | default_policy_select_task_cache_policy (MapperContext ctx, const Task &task) |
| |
|
virtual bool | default_policy_select_must_epoch_processors (MapperContext ctx, const std::vector< std::set< const Task * > > &tasks, Processor::Kind proc_kind, std::map< const Task *, Processor > &target_procs) |
| |
|
virtual void | default_policy_rank_processor_kinds (MapperContext ctx, const Task &task, std::vector< Processor::Kind > &ranking) |
| |
|
virtual VariantID | default_policy_select_best_variant (MapperContext ctx, const Task &task, Processor::Kind kind, VariantID vid1, VariantID vid2, const ExecutionConstraintSet &execution1, const ExecutionConstraintSet &execution2, const TaskLayoutConstraintSet &layout1, const TaskLayoutConstraintSet &layout2) |
| |
|
virtual Memory | default_policy_select_target_memory (MapperContext ctx, Processor target_proc, const RegionRequirement &req, MemoryConstraint mc=MemoryConstraint()) |
| |
|
virtual Memory | default_policy_select_output_target (MapperContext ctx, Processor target_proc) |
| |
|
virtual LayoutConstraintID | default_policy_select_layout_constraints (MapperContext ctx, Memory target_memory, const RegionRequirement &req, MappingKind mapping_kind, bool needs_field_constraint_check, bool &force_new_instances) |
| |
|
virtual void | default_policy_select_constraints (MapperContext ctx, LayoutConstraintSet &constraints, Memory target_memory, const RegionRequirement &req) |
| |
|
virtual void | default_policy_select_output_constraints (const Task &task, LayoutConstraintSet &constraints, const RegionRequirement &req) |
| |
|
virtual Memory | default_policy_select_constrained_instance_constraints (MapperContext ctx, const std::vector< const Task * > &tasks, const std::vector< unsigned > &req_indexes, const std::vector< Processor > &target_procs, const std::set< LogicalRegion > &needed_regions, const std::set< FieldID > &needed_fields, LayoutConstraintSet &constraints) |
| |
|
virtual void | default_policy_select_constraint_fields (MapperContext ctx, const RegionRequirement &req, std::vector< FieldID > &fields) |
| |
|
virtual LogicalRegion | default_policy_select_instance_region (MapperContext ctx, Memory target_memory, const RegionRequirement &req, const LayoutConstraintSet &constraints, bool force_new_instances, bool meets_constraints) |
| |
|
virtual void | default_policy_select_instance_fields (MapperContext ctx, const RegionRequirement &req, const std::set< FieldID > &needed_fields, std::vector< FieldID > &fields) |
| |
|
virtual int | default_policy_select_garbage_collection_priority (MapperContext ctx, MappingKind kind, Memory memory, const PhysicalInstance &instance, bool meets_fill_constraints, bool reduction) |
| |
|
virtual void | default_policy_select_sources (MapperContext, const PhysicalInstance &target, const std::vector< PhysicalInstance > &source, std::deque< PhysicalInstance > &ranking) |
| |
|
virtual bool | default_policy_select_close_virtual (const MapperContext ctx, const Close &close) |
| |
|
virtual bool | default_policy_select_reduction_instance_reuse (const MapperContext ctx) |
| |
|
| Mapper (MapperRuntime *rt) |
| |
| virtual bool | request_valid_instances (void) const |
| |
|
virtual void | map_future_map_reduction (MapperContext ctx, const FutureMapReductionInput &input, FutureMapReductionOutput &output) |
| |
| virtual void | handle_instance_collection (const MapperContext ctx, const PhysicalInstance &inst) |
| |
|
|
Processor | select_random_processor (Processor::Kind kind) |
| |
|
Processor::Kind | select_random_processor_kind (MapperContext ctx, TaskID task_id) |
| |
|
void | find_task_processor_kinds (MapperContext ctx, TaskID task_id, std::set< Processor::Kind > &kinds) |
| |
|
const std::map< VariantID, Processor::Kind > & | find_task_variants (MapperContext ctx, TaskID task_id) |
| |
|
void | select_random_source_order (const std::vector< PhysicalInstance > &sources, std::deque< PhysicalInstance > &ranking) |
| |
|
void | map_constrained_requirement (MapperContext ctx, const RegionRequirement &req, MappingKind mapping_kind, const std::vector< LayoutConstraintID > &constraints, std::vector< PhysicalInstance > &chosen_instances, Processor target_proc=Processor::NO_PROC) |
| |
|
void | map_random_requirement (MapperContext ctx, const RegionRequirement &req, std::vector< PhysicalInstance > &chosen_instances, Processor target_proc=Processor::NO_PROC) |
| |
|
long | generate_random_integer (void) const |
| |
|
double | generate_random_real (void) const |
| |
|
long | default_generate_random_integer (void) const |
| |
|
double | default_generate_random_real (void) const |
| |
|
Processor | default_select_random_processor (const std::vector< Processor > &procs) const |
| |
|
Processor | default_get_next_local_cpu (void) |
| |
|
Processor | default_get_next_global_cpu (void) |
| |
|
Processor | default_get_next_local_gpu (void) |
| |
|
Processor | default_get_next_global_gpu (void) |
| |
|
Processor | default_get_next_local_io (void) |
| |
|
Processor | default_get_next_global_io (void) |
| |
|
Processor | default_get_next_local_py (void) |
| |
|
Processor | default_get_next_global_py (void) |
| |
|
Processor | default_get_next_local_procset (void) |
| |
|
Processor | default_get_next_global_procset (void) |
| |
|
Processor | default_get_next_local_omp (void) |
| |
|
Processor | default_get_next_global_omp (void) |
| |
|
VariantInfo | default_find_preferred_variant (const Task &task, MapperContext ctx, bool needs_tight_bound, bool cache=true, Processor::Kind kind=Processor::NO_KIND) |
| |
|
void | default_slice_task (const Task &task, const std::vector< Processor > &local_procs, const std::vector< Processor > &remote_procs, const SliceTaskInput &input, SliceTaskOutput &output, std::map< Domain, std::vector< TaskSlice > > &cached_slices) const |
| |
|
bool | default_create_custom_instances (MapperContext ctx, Processor target, Memory target_memory, const RegionRequirement &req, unsigned index, std::set< FieldID > &needed_fields, const TaskLayoutConstraintSet &layout_constraints, bool needs_field_constraint_check, std::vector< PhysicalInstance > &instances, size_t *footprint=NULL) |
| |
|
bool | default_make_instance (MapperContext ctx, Memory target_memory, const LayoutConstraintSet &constraints, PhysicalInstance &result, MappingKind kind, bool force_new, bool meets, const RegionRequirement &req, size_t *footprint=NULL) |
| |
|
void | default_report_failed_instance_creation (const Task &task, unsigned index, Processor target_proc, Memory target_memory, size_t footprint=0) const |
| |
|
void | default_remove_cached_task (MapperContext ctx, VariantID variant, unsigned long long task_hash, const std::pair< TaskID, Processor > &cache_key, const std::vector< std::vector< PhysicalInstance > > &post_filter) |
| |
|
template<bool IS_SRC> |
| void | default_create_copy_instance (MapperContext ctx, const Copy ©, const RegionRequirement &req, unsigned index, std::vector< PhysicalInstance > &instances) |
| |
|
LogicalRegion | default_find_common_ancestor (MapperContext ctx, const std::set< LogicalRegion > ®ions) |
| |
|
bool | have_proc_kind_variant (const MapperContext ctx, TaskID id, Processor::Kind kind) |
| |
|
const std::vector< Processor > & | local_procs_by_kind (Processor::Kind kind) |
| |
|
const std::vector< Processor > & | remote_procs_by_kind (Processor::Kind kind) |
| |
|
MemoryConstraint | find_memory_constraint (const MapperContext ctx, const Task &task, VariantID vid, unsigned index) |
| |
|
|
std::map< TaskID, std::map< VariantID, Processor::Kind > > | variant_processor_kinds |
| |
|
const Processor | local_proc |
| |
|
const Processor::Kind | local_kind |
| |
|
const AddressSpace | node_id |
| |
|
const Machine | machine |
| |
|
const char *const | mapper_name |
| |
|
unsigned short | random_number_generator [3] |
| |
|
unsigned | total_nodes |
| |
|
std::vector< Processor > | local_gpus |
| |
|
std::vector< Processor > | local_cpus |
| |
|
std::vector< Processor > | local_ios |
| |
|
std::vector< Processor > | local_procsets |
| |
|
std::vector< Processor > | local_omps |
| |
|
std::vector< Processor > | local_pys |
| |
|
std::vector< Processor > | remote_gpus |
| |
|
std::vector< Processor > | remote_cpus |
| |
|
std::vector< Processor > | remote_ios |
| |
|
std::vector< Processor > | remote_procsets |
| |
|
std::vector< Processor > | remote_omps |
| |
|
std::vector< Processor > | remote_pys |
| |
|
bool | multipleNumaDomainsPresent = false |
| |
|
unsigned | next_local_gpu |
| |
|
unsigned | next_local_cpu |
| |
|
unsigned | next_local_io |
| |
|
unsigned | next_local_procset |
| |
|
unsigned | next_local_omp |
| |
|
unsigned | next_local_py |
| |
|
Processor | next_global_gpu |
| |
|
Processor | next_global_cpu |
| |
|
Processor | next_global_io |
| |
|
Processor | next_global_procset |
| |
|
Processor | next_global_omp |
| |
|
Processor | next_global_py |
| |
|
Machine::ProcessorQuery * | global_gpu_query |
| |
|
Machine::ProcessorQuery * | global_cpu_query |
| |
|
Machine::ProcessorQuery * | global_io_query |
| |
|
Machine::ProcessorQuery * | global_procset_query |
| |
|
Machine::ProcessorQuery * | global_omp_query |
| |
|
Machine::ProcessorQuery * | global_py_query |
| |
|
std::map< Domain, std::vector< TaskSlice > > | gpu_slices_cache |
| |
|
std::map< Domain, std::vector< TaskSlice > > | cpu_slices_cache |
| |
|
std::map< Domain, std::vector< TaskSlice > > | io_slices_cache |
| |
|
std::map< Domain, std::vector< TaskSlice > > | procset_slices_cache |
| |
|
std::map< Domain, std::vector< TaskSlice > > | omp_slices_cache |
| |
|
std::map< Domain, std::vector< TaskSlice > > | py_slices_cache |
| |
|
std::map< std::pair< TaskID, Processor::Kind >, VariantInfo > | preferred_variants |
| |
|
std::map< std::pair< TaskID, Processor >, std::list< CachedTaskMapping > > | cached_task_mappings |
| |
|
std::map< std::pair< Memory::Kind, FieldSpace >, LayoutConstraintID > | layout_constraint_cache |
| |
|
std::map< std::pair< Memory::Kind, ReductionOpID >, LayoutConstraintID > | reduction_constraint_cache |
| |
|
std::map< Processor, Memory > | cached_target_memory |
| |
|
std::map< Processor, Memory > | cached_rdma_target_memory |
| |
|
unsigned | max_steals_per_theft |
| |
|
unsigned | max_steal_count |
| |
|
bool | breadth_first_traversal |
| |
|
bool | stealing_enabled |
| |
|
unsigned | max_schedule_count |
| |
|
bool | memoize |
| |
|
bool | map_locally |
| |
|
bool | exact_region |
| |
|
bool | replication_enabled |
| |
|
bool | same_address_space |
| |
|
| enum | DefaultTunables {
DEFAULT_TUNABLE_NODE_COUNT = 0
, DEFAULT_TUNABLE_LOCAL_CPUS = 1
, DEFAULT_TUNABLE_LOCAL_GPUS = 2
, DEFAULT_TUNABLE_LOCAL_IOS = 3
,
DEFAULT_TUNABLE_LOCAL_OMPS = 4
, DEFAULT_TUNABLE_LOCAL_PYS = 5
, DEFAULT_TUNABLE_GLOBAL_CPUS = 6
, DEFAULT_TUNABLE_GLOBAL_GPUS = 7
,
DEFAULT_TUNABLE_GLOBAL_IOS = 8
, DEFAULT_TUNABLE_GLOBAL_OMPS = 9
, DEFAULT_TUNABLE_GLOBAL_PYS = 10
, DEFAULT_TUNABLE_LAST = 11
} |
| |
| enum | MappingKind {
TASK_MAPPING
, INLINE_MAPPING
, COPY_MAPPING
, CLOSE_MAPPING
,
ACQUIRE_MAPPING
, RELEASE_MAPPING
, PARTITION_MAPPING
} |
| |
| enum | MapperMessageType { INVALID_MESSAGE = 0
, PROFILING_SAMPLE = 1
, ADVERTISEMENT = 2
} |
| |
| enum | MappingTags {
VIRTUAL_MAP = (1 << 0)
, EXACT_REGION = (1 << 1)
, SAME_ADDRESS_SPACE = (1 << 2)
, PREFER_RDMA_MEMORY = (1 << 3)
,
PREFER_CPU_VARIANT = (1 << 4)
} |
| |
| enum | MapperSyncModel { CONCURRENT_MAPPER_MODEL
, SERIALIZED_REENTRANT_MAPPER_MODEL
, SERIALIZED_NON_REENTRANT_MAPPER_MODEL
} |
| |
|
MapperRuntime *const | runtime |
| |
| enum | CachedMappingPolicy { DEFAULT_CACHE_POLICY_ENABLE
, DEFAULT_CACHE_POLICY_DISABLE
} |
| |
|
static const char * | create_default_name (Processor p) |
| |
|
template<int DIM> |
| static void | default_decompose_points (const Domain &domain, const std::vector< Processor > &targets, const Point< DIM, coord_t > &blocking, bool recurse, bool stealable, std::vector< TaskSlice > &slices) |
| |
|
template<int DIM> |
| static Point< DIM, coord_t > | default_select_num_blocks (long long int factor, const Rect< DIM, coord_t > &rect_to_factor) |
| |
|
static unsigned long long | compute_task_hash (const Task &task) |
| |
|
static bool | physical_sort_func (const std::pair< PhysicalInstance, unsigned > &left, const std::pair< PhysicalInstance, unsigned > &right) |
| |
|
static bool | point_sort_func (const Task *t1, const Task *t2) |
| |
The test mapper provides support for stress testing the Legion and Realm runtime systems. The test mapper will make random mapping decisions designed to exercise corner cases in the runtime that might not normally be explored by normal mapping decisions.