|
|
| 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 | select_task_options (const MapperContext ctx, const Task &task, TaskOptions &output) override |
| |
| void | premap_task (const MapperContext ctx, const Task &task, const PremapTaskInput &input, PremapTaskOutput &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 | 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 | select_task_variant (const MapperContext ctx, const Task &task, const SelectVariantInput &input, SelectVariantOutput &output) override |
| |
| void | postmap_task (const MapperContext ctx, const Task &task, const PostMapInput &input, PostMapOutput &output) override |
| |
| void | select_task_sources (const MapperContext ctx, const Task &task, const SelectTaskSrcInput &input, SelectTaskSrcOutput &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 | 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 | report_profiling (const MapperContext ctx, const InlineMapping &inline_op, const InlineProfilingInfo &input) 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 | 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 | select_close_sources (const MapperContext ctx, const Close &close, const SelectCloseSrcInput &input, SelectCloseSrcOutput &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 | select_release_sources (const MapperContext ctx, const Release &release, const SelectReleaseSrcInput &input, SelectReleaseSrcOutput &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 | 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 &input, StealRequestOutput &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) |
| |
|
|
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) |
| |
|
|
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 |
| |
The default mapper class is our base implementation of the mapper interface that relies on some simple heuristics to perform most of them calls for general purpose Legion applications. You should feel free to extend this class with your own heuristics by overriding some or all of the methods. You can also ignore this implementation entirely and perform your own implementation of the mapper interface.