Legion Runtime
 All Classes Namespaces Files Functions Variables Typedefs Macros Pages
Public Member Functions | Public Attributes | Protected Attributes | List of all members
Legion::RegionRequirement Struct Reference

#include <legion.h>

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
 

Protected Attributes

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

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

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

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

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.

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.

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

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

RegionFlags Legion::RegionRequirement::flags

optional flags set for region requirements

ProjectionType Legion::RegionRequirement::handle_type

region or partition requirement

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

physical instance fields

LogicalRegion Legion::RegionRequirement::parent

parent region to derive privileges from

LogicalPartition Legion::RegionRequirement::partition

mutually exclusive with region

PrivilegeMode Legion::RegionRequirement::privilege

region privilege mode

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

unique set of privilege fields

ProjectionID Legion::RegionRequirement::projection

projection function for index space tasks

void* Legion::RegionRequirement::projection_args
protected

projection arguments buffer

size_t Legion::RegionRequirement::projection_args_size
protected

projection arguments buffer size

CoherenceProperty Legion::RegionRequirement::prop

region coherence mode

ReductionOpID Legion::RegionRequirement::redop

reduction operation (default 0)

LogicalRegion Legion::RegionRequirement::region

mutually exclusive with partition

MappingTagID Legion::RegionRequirement::tag

mapping tag for this region requirement


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