Legion Runtime
Public Member Functions | Public Attributes | List of all members
Legion::RegionRequirement Struct Reference

#include <legion.h>

Inheritance diagram for Legion::RegionRequirement:
Legion::OutputRequirement

Public Member Functions

 RegionRequirement (LogicalRegion _handle, const std::set< FieldID > &privilege_fields, const std::vector< FieldID > &instance_fields, PrivilegeMode _priv, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false)
 
 RegionRequirement (LogicalPartition pid, ProjectionID _proj, const std::set< FieldID > &privilege_fields, const std::vector< FieldID > &instance_fields, PrivilegeMode _priv, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false)
 
 RegionRequirement (LogicalRegion _handle, ProjectionID _proj, const std::set< FieldID > &privilege_fields, const std::vector< FieldID > &instance_fields, PrivilegeMode _priv, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false)
 
 RegionRequirement (LogicalRegion _handle, const std::set< FieldID > &privilege_fields, const std::vector< FieldID > &instance_fields, ReductionOpID op, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false)
 
 RegionRequirement (LogicalPartition pid, ProjectionID _proj, const std::set< FieldID > &privilege_fields, const std::vector< FieldID > &instance_fields, ReductionOpID op, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false)
 
 RegionRequirement (LogicalRegion _handle, ProjectionID _proj, const std::set< FieldID > &privilege_fields, const std::vector< FieldID > &instance_fields, ReductionOpID op, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false)
 
 RegionRequirement (LogicalRegion _handle, PrivilegeMode _priv, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false)
 
 RegionRequirement (LogicalPartition pid, ProjectionID _proj, PrivilegeMode _priv, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false)
 
 RegionRequirement (LogicalRegion _handle, ProjectionID _proj, PrivilegeMode _priv, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false)
 
 RegionRequirement (LogicalRegion _handle, ReductionOpID op, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false)
 
 RegionRequirement (LogicalPartition pid, ProjectionID _proj, ReductionOpID op, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false)
 
 RegionRequirement (LogicalRegion _handle, ProjectionID _proj, ReductionOpID op, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false)
 
 RegionRequirement (const RegionRequirement &rhs)
 
RegionRequirementoperator= (const RegionRequirement &req)
 
bool operator== (const RegionRequirement &req) const
 
bool operator< (const RegionRequirement &req) const
 
RegionRequirementadd_field (FieldID fid, bool instance=true)
 
RegionRequirementadd_fields (const std::vector< FieldID > &fids, bool instance=true)
 
RegionRequirementadd_flags (RegionFlags new_flags)
 
bool is_verified (void) const
 
bool is_no_access (void) const
 
bool is_restricted (void) const
 
bool must_premap (void) const
 
const void * get_projection_args (size_t *size) const
 
void set_projection_args (const void *args, size_t size, bool own=false)
 
bool has_field_privilege (FieldID fid) const
 

Public Attributes

LogicalRegion region
 
LogicalPartition partition
 
std::set< FieldID > privilege_fields
 
std::vector< FieldID > instance_fields
 
PrivilegeMode privilege
 
CoherenceProperty prop
 
LogicalRegion parent
 
ReductionOpID redop
 
MappingTagID tag
 
RegionFlags flags
 
ProjectionType handle_type
 
ProjectionID projection
 
void * projection_args
 
size_t projection_args_size
 

Detailed Description

Region requirements are the objects used to name the logical regions that are used by tasks, copies, and inline mapping operations. Region requirements can name either logical regions or logical partitions in for index space launches. In addition to placing logical upper bounds on the privileges required for an operation, region requirements also specify the privileges and coherence modes associated with the needed logical region/partition. Region requirements have a series of constructors for different scenarios. All fields in region requirements are publicly visible so applications can mutate them freely including configuring region requirements in ways not supported with the default set of constructors.

Constructor & Destructor Documentation

◆ RegionRequirement() [1/6]

Legion::RegionRequirement::RegionRequirement ( LogicalRegion  _handle,
const std::set< FieldID > &  privilege_fields,
const std::vector< FieldID > &  instance_fields,
PrivilegeMode  _priv,
CoherenceProperty  _prop,
LogicalRegion  _parent,
MappingTagID  _tag = 0,
bool  _verified = false 
)

Standard region requirement constructor for logical region

◆ RegionRequirement() [2/6]

Legion::RegionRequirement::RegionRequirement ( LogicalPartition  pid,
ProjectionID  _proj,
const std::set< FieldID > &  privilege_fields,
const std::vector< FieldID > &  instance_fields,
PrivilegeMode  _priv,
CoherenceProperty  _prop,
LogicalRegion  _parent,
MappingTagID  _tag = 0,
bool  _verified = false 
)

Partition region requirement with projection function

◆ RegionRequirement() [3/6]

Legion::RegionRequirement::RegionRequirement ( LogicalRegion  _handle,
ProjectionID  _proj,
const std::set< FieldID > &  privilege_fields,
const std::vector< FieldID > &  instance_fields,
PrivilegeMode  _priv,
CoherenceProperty  _prop,
LogicalRegion  _parent,
MappingTagID  _tag = 0,
bool  _verified = false 
)

Region requirement with projection function

◆ RegionRequirement() [4/6]

Legion::RegionRequirement::RegionRequirement ( LogicalRegion  _handle,
const std::set< FieldID > &  privilege_fields,
const std::vector< FieldID > &  instance_fields,
ReductionOpID  op,
CoherenceProperty  _prop,
LogicalRegion  _parent,
MappingTagID  _tag = 0,
bool  _verified = false 
)

Standard reduction region requirement. Note no privilege is passed, but instead a reduction operation ID is specified.

◆ RegionRequirement() [5/6]

Legion::RegionRequirement::RegionRequirement ( LogicalPartition  pid,
ProjectionID  _proj,
const std::set< FieldID > &  privilege_fields,
const std::vector< FieldID > &  instance_fields,
ReductionOpID  op,
CoherenceProperty  _prop,
LogicalRegion  _parent,
MappingTagID  _tag = 0,
bool  _verified = false 
)

Partition region requirement for reduction.

◆ RegionRequirement() [6/6]

Legion::RegionRequirement::RegionRequirement ( LogicalRegion  _handle,
ProjectionID  _proj,
const std::set< FieldID > &  privilege_fields,
const std::vector< FieldID > &  instance_fields,
ReductionOpID  op,
CoherenceProperty  _prop,
LogicalRegion  _parent,
MappingTagID  _tag = 0,
bool  _verified = false 
)

Projection logical region requirement for reduction

Member Function Documentation

◆ add_field()

RegionRequirement& Legion::RegionRequirement::add_field ( FieldID  fid,
bool  instance = true 
)
inline

Method for adding a field to region requirements

Parameters
fidfield ID to add
instanceindicate whether to add to instance fields

Member Data Documentation

◆ flags

RegionFlags Legion::RegionRequirement::flags

optional flags set for region requirements

◆ handle_type

ProjectionType Legion::RegionRequirement::handle_type

region or partition requirement

◆ instance_fields

std::vector<FieldID> Legion::RegionRequirement::instance_fields

physical instance fields

◆ parent

LogicalRegion Legion::RegionRequirement::parent

parent region to derive privileges from

◆ partition

LogicalPartition Legion::RegionRequirement::partition

mutually exclusive with region

◆ privilege

PrivilegeMode Legion::RegionRequirement::privilege

region privilege mode

◆ privilege_fields

std::set<FieldID> Legion::RegionRequirement::privilege_fields

unique set of privilege fields

◆ projection

ProjectionID Legion::RegionRequirement::projection

projection function for index space tasks

◆ projection_args

void* Legion::RegionRequirement::projection_args

projection arguments buffer

◆ projection_args_size

size_t Legion::RegionRequirement::projection_args_size

projection arguments buffer size

◆ prop

CoherenceProperty Legion::RegionRequirement::prop

region coherence mode

◆ redop

ReductionOpID Legion::RegionRequirement::redop

reduction operation (default 0)

◆ region

LogicalRegion Legion::RegionRequirement::region

mutually exclusive with partition

◆ tag

MappingTagID Legion::RegionRequirement::tag

mapping tag for this region requirement


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