Legion Runtime
Loading...
Searching...
No Matches
Legion::Mapping::DefaultMapper Class Reference

#include <default_mapper.h>

Inheritance diagram for Legion::Mapping::DefaultMapper:
Legion::Mapping::Mapper Legion::Mapping::ShimMapper Legion::Mapping::TestMapper

Classes

struct  CachedTaskMapping
 
struct  MapperMsgHdr
 
struct  ProfilingSampleMsg
 
struct  VariantInfo
 

Public Types

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)
}
 
- Public Types inherited from Legion::Mapping::Mapper
enum  MapperSyncModel { CONCURRENT_MAPPER_MODEL , SERIALIZED_REENTRANT_MAPPER_MODEL , SERIALIZED_NON_REENTRANT_MAPPER_MODEL }
 

Public Member Functions

 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 &copy, const MapCopyInput &input, MapCopyOutput &output) override
 
void select_copy_sources (const MapperContext ctx, const Copy &copy, const SelectCopySrcInput &input, SelectCopySrcOutput &output) override
 
void report_profiling (const MapperContext ctx, const Copy &copy, const CopyProfilingInfo &input) override
 
void select_sharding_functor (const MapperContext ctx, const Copy &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)
 
- Public Member Functions inherited from Legion::Mapping::Mapper
 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)
 

Protected Types

enum  CachedMappingPolicy { DEFAULT_CACHE_POLICY_ENABLE , DEFAULT_CACHE_POLICY_DISABLE }
 

Protected Member Functions

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 &copy, const RegionRequirement &req, unsigned index, std::vector< PhysicalInstance > &instances)
 
LogicalRegion default_find_common_ancestor (MapperContext ctx, const std::set< LogicalRegion > &regions)
 
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)
 

Static Protected Member Functions

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)
 

Protected Attributes

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
 

Additional Inherited Members

- Public Attributes inherited from Legion::Mapping::Mapper
MapperRuntime *const runtime
 

Detailed Description

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.

Member Function Documentation

◆ configure_context()

void Legion::Mapping::DefaultMapper::configure_context ( const MapperContext  ctx,
const Task &  task,
ContextConfigOutput &  output 
)
overridevirtual

◆ get_mapper_name()

const char * Legion::Mapping::DefaultMapper::get_mapper_name ( void  ) const
overridevirtual

Get Mapper Name

Specify a name that the runtime can use for referring to this mapper. This will primarily be used for providing helpful error messages so semantically meaningful names are encouraged. This mapper call must be immutable as it may be made before the synchronization model has been chosen.

Implements Legion::Mapping::Mapper.

◆ get_mapper_sync_model()

MapperSyncModel Legion::Mapping::DefaultMapper::get_mapper_sync_model ( void  ) const
overridevirtual

◆ handle_message()

void Legion::Mapping::DefaultMapper::handle_message ( const MapperContext  ctx,
const MapperMessage &  message 
)
overridevirtual

◆ handle_task_result()

void Legion::Mapping::DefaultMapper::handle_task_result ( const MapperContext  ctx,
const MapperTaskResult &  result 
)
overridevirtual

◆ map_acquire()

void Legion::Mapping::DefaultMapper::map_acquire ( const MapperContext  ctx,
const Acquire &  acquire,
const MapAcquireInput &  input,
MapAcquireOutput &  output 
)
overridevirtual

◆ map_copy()

void Legion::Mapping::DefaultMapper::map_copy ( const MapperContext  ctx,
const Copy &  copy,
const MapCopyInput &  input,
MapCopyOutput &  output 
)
overridevirtual

◆ map_dataflow_graph()

void Legion::Mapping::DefaultMapper::map_dataflow_graph ( const MapperContext  ctx,
const MapDataflowGraphInput &  input,
MapDataflowGraphOutput &  output 
)
overridevirtual

◆ map_inline()

void Legion::Mapping::DefaultMapper::map_inline ( const MapperContext  ctx,
const InlineMapping &  inline_op,
const MapInlineInput &  input,
MapInlineOutput &  output 
)
overridevirtual

◆ map_must_epoch()

void Legion::Mapping::DefaultMapper::map_must_epoch ( const MapperContext  ctx,
const MapMustEpochInput &  input,
MapMustEpochOutput &  output 
)
overridevirtual

◆ map_partition()

void Legion::Mapping::DefaultMapper::map_partition ( const MapperContext  ctx,
const Partition &  partition,
const MapPartitionInput &  input,
MapPartitionOutput &  output 
)
overridevirtual

◆ map_release()

void Legion::Mapping::DefaultMapper::map_release ( const MapperContext  ctx,
const Release &  release,
const MapReleaseInput &  input,
MapReleaseOutput &  output 
)
overridevirtual

◆ map_task()

void Legion::Mapping::DefaultMapper::map_task ( const MapperContext  ctx,
const Task &  task,
const MapTaskInput &  input,
MapTaskOutput &  output 
)
overridevirtual

◆ memoize_operation()

void Legion::Mapping::DefaultMapper::memoize_operation ( const MapperContext  ctx,
const Mappable &  mappable,
const MemoizeInput &  input,
MemoizeOutput &  output 
)
overridevirtual

◆ permit_steal_request()

void Legion::Mapping::DefaultMapper::permit_steal_request ( const MapperContext  ctx,
const StealRequestInput &  input,
StealRequestOutput &  output 
)
overridevirtual

◆ postmap_task()

void Legion::Mapping::DefaultMapper::postmap_task ( const MapperContext  ctx,
const Task &  task,
const PostMapInput &  input,
PostMapOutput &  output 
)
overridevirtual

◆ premap_task()

void Legion::Mapping::DefaultMapper::premap_task ( const MapperContext  ctx,
const Task &  task,
const PremapTaskInput &  input,
PremapTaskOutput &  output 
)
overridevirtual

◆ replicate_task()

void Legion::Mapping::DefaultMapper::replicate_task ( MapperContext  ctx,
const Task &  task,
const ReplicateTaskInput &  input,
ReplicateTaskOutput &  output 
)
overridevirtual

◆ report_profiling() [1/7]

void Legion::Mapping::DefaultMapper::report_profiling ( const MapperContext  ctx,
const Acquire &  acquire,
const AcquireProfilingInfo &  input 
)
overridevirtual

◆ report_profiling() [2/7]

void Legion::Mapping::DefaultMapper::report_profiling ( const MapperContext  ctx,
const Close &  close,
const CloseProfilingInfo &  input 
)
overridevirtual

◆ report_profiling() [3/7]

void Legion::Mapping::DefaultMapper::report_profiling ( const MapperContext  ctx,
const Copy &  copy,
const CopyProfilingInfo &  input 
)
overridevirtual

◆ report_profiling() [4/7]

void Legion::Mapping::DefaultMapper::report_profiling ( const MapperContext  ctx,
const InlineMapping &  inline_op,
const InlineProfilingInfo &  input 
)
overridevirtual

◆ report_profiling() [5/7]

void Legion::Mapping::DefaultMapper::report_profiling ( const MapperContext  ctx,
const Partition &  partition,
const PartitionProfilingInfo &  input 
)
overridevirtual

◆ report_profiling() [6/7]

void Legion::Mapping::DefaultMapper::report_profiling ( const MapperContext  ctx,
const Release &  release,
const ReleaseProfilingInfo &  input 
)
overridevirtual

◆ report_profiling() [7/7]

void Legion::Mapping::DefaultMapper::report_profiling ( const MapperContext  ctx,
const Task &  task,
const TaskProfilingInfo &  input 
)
overridevirtual

◆ select_close_sources()

void Legion::Mapping::DefaultMapper::select_close_sources ( const MapperContext  ctx,
const Close &  close,
const SelectCloseSrcInput &  input,
SelectCloseSrcOutput &  output 
)
overridevirtual

◆ select_copy_sources()

void Legion::Mapping::DefaultMapper::select_copy_sources ( const MapperContext  ctx,
const Copy &  copy,
const SelectCopySrcInput &  input,
SelectCopySrcOutput &  output 
)
overridevirtual

◆ select_inline_sources()

void Legion::Mapping::DefaultMapper::select_inline_sources ( const MapperContext  ctx,
const InlineMapping &  inline_op,
const SelectInlineSrcInput &  input,
SelectInlineSrcOutput &  output 
)
overridevirtual

◆ select_partition_projection()

void Legion::Mapping::DefaultMapper::select_partition_projection ( const MapperContext  ctx,
const Partition &  partition,
const SelectPartitionProjectionInput &  input,
SelectPartitionProjectionOutput &  output 
)
overridevirtual

◆ select_partition_sources()

void Legion::Mapping::DefaultMapper::select_partition_sources ( const MapperContext  ctx,
const Partition &  partition,
const SelectPartitionSrcInput &  input,
SelectPartitionSrcOutput &  output 
)
overridevirtual

◆ select_release_sources()

void Legion::Mapping::DefaultMapper::select_release_sources ( const MapperContext  ctx,
const Release &  release,
const SelectReleaseSrcInput &  input,
SelectReleaseSrcOutput &  output 
)
overridevirtual

◆ select_sharding_functor() [1/8]

void Legion::Mapping::DefaultMapper::select_sharding_functor ( const MapperContext  ctx,
const Acquire &  acquire,
const SelectShardingFunctorInput &  input,
SelectShardingFunctorOutput &  output 
)
overridevirtual

Select Sharding Functor

This mapper call is invoked whenever the enclosing parent task for the acquire being launched has been control replicated and it's up to the mapper for this task to pick a sharding functor to determine which shard will own the point(s) of the acquire . The mapper must return the same sharding functor for all instances of the acquire. The runtime will verify this in debug mode but not in release mode.

Implements Legion::Mapping::Mapper.

◆ select_sharding_functor() [2/8]

void Legion::Mapping::DefaultMapper::select_sharding_functor ( const MapperContext  ctx,
const Close &  close,
const SelectShardingFunctorInput &  input,
SelectShardingFunctorOutput &  output 
)
overridevirtual

Select Sharding Functor

This mapper call is invoked whenever the enclosing parent task for the close being launched has been control replicated and it's up to the mapper for this task to pick a sharding functor to determine which shard will own the point(s) of the close. The mapper must return the same sharding functor for all instances of the close. The runtime will verify this in debug mode but not in release mode.

Implements Legion::Mapping::Mapper.

◆ select_sharding_functor() [3/8]

void Legion::Mapping::DefaultMapper::select_sharding_functor ( const MapperContext  ctx,
const Copy &  copy,
const SelectShardingFunctorInput &  input,
SelectShardingFunctorOutput &  output 
)
overridevirtual

Select Sharding Functor

This mapper call is invoked whenever the enclosing parent task for the copy being launched has been control replicated and it's up to the mapper for this copy to pick a sharding functor to determine which shard will own the point(s) of the copy. The mapper must return the same sharding functor for all instances of the copy. The runtime will verify this in debug mode but not in release mode.

Implements Legion::Mapping::Mapper.

◆ select_sharding_functor() [4/8]

void Legion::Mapping::DefaultMapper::select_sharding_functor ( const MapperContext  ctx,
const Fill &  fill,
const SelectShardingFunctorInput &  input,
SelectShardingFunctorOutput &  output 
)
overridevirtual

Select Sharding Functor

This mapper call is invoked whenever the enclosing parent task for the fill being launched has been control replicated and it's up to the mapper for this task to pick a sharding functor to determine which shard will own the points of the fill. The mapper must return the same sharding functor for all instances of the fill. The runtime will verify this in debug mode but not in release mode.

Implements Legion::Mapping::Mapper.

◆ select_sharding_functor() [5/8]

void Legion::Mapping::DefaultMapper::select_sharding_functor ( const MapperContext  ctx,
const MustEpoch &  epoch,
const SelectShardingFunctorInput &  input,
MustEpochShardingFunctorOutput &  output 
)
overridevirtual

◆ select_sharding_functor() [6/8]

void Legion::Mapping::DefaultMapper::select_sharding_functor ( const MapperContext  ctx,
const Partition &  partition,
const SelectShardingFunctorInput &  input,
SelectShardingFunctorOutput &  output 
)
overridevirtual

Select Sharding Functor

This mapper call is invoked whenever the enclosing parent task for the partition being launched has been control replicated and it's up to the mapper for this task to pick a sharding functor to determine which shard will own the point(s) of the partition. The mapper must return the same sharding functor for all instances of the partition. The runtime will verify this in debug mode but not in release mode.

Implements Legion::Mapping::Mapper.

◆ select_sharding_functor() [7/8]

void Legion::Mapping::DefaultMapper::select_sharding_functor ( const MapperContext  ctx,
const Release &  release,
const SelectShardingFunctorInput &  input,
SelectShardingFunctorOutput &  output 
)
overridevirtual

Select Sharding Functor

This mapper call is invoked whenever the enclosing parent task for the release being launched has been control replicated and it's up to the mapper for this task to pick a sharding functor to determine which shard will own the point(s) of the release. The mapper must return the same sharding functor for all instances of the release. The runtime will verify this in debug mode but not in release mode.

Implements Legion::Mapping::Mapper.

◆ select_sharding_functor() [8/8]

void Legion::Mapping::DefaultMapper::select_sharding_functor ( const MapperContext  ctx,
const Task &  task,
const SelectShardingFunctorInput &  input,
SelectShardingFunctorOutput &  output 
)
overridevirtual

◆ select_steal_targets()

void Legion::Mapping::DefaultMapper::select_steal_targets ( const MapperContext  ctx,
const SelectStealingInput &  input,
SelectStealingOutput &  output 
)
overridevirtual

◆ select_task_options()

void Legion::Mapping::DefaultMapper::select_task_options ( const MapperContext  ctx,
const Task &  task,
TaskOptions &  output 
)
overridevirtual

◆ select_task_sources()

void Legion::Mapping::DefaultMapper::select_task_sources ( const MapperContext  ctx,
const Task &  task,
const SelectTaskSrcInput &  input,
SelectTaskSrcOutput &  output 
)
overridevirtual

◆ select_task_variant()

void Legion::Mapping::DefaultMapper::select_task_variant ( const MapperContext  ctx,
const Task &  task,
const SelectVariantInput &  input,
SelectVariantOutput &  output 
)
overridevirtual

◆ select_tasks_to_map()

void Legion::Mapping::DefaultMapper::select_tasks_to_map ( const MapperContext  ctx,
const SelectMappingInput &  input,
SelectMappingOutput &  output 
)
overridevirtual

◆ select_tunable_value()

void Legion::Mapping::DefaultMapper::select_tunable_value ( const MapperContext  ctx,
const Task &  task,
const SelectTunableInput &  input,
SelectTunableOutput &  output 
)
overridevirtual

◆ slice_task()

void Legion::Mapping::DefaultMapper::slice_task ( const MapperContext  ctx,
const Task &  task,
const SliceTaskInput &  input,
SliceTaskOutput &  output 
)
overridevirtual

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