Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::InstanceLayoutGeneric Class Referenceabstract

#include <inst_layout.h>

Inheritance diagram for Realm::InstanceLayoutGeneric:

Classes

struct  FieldLayout
 

Public Types

using FieldMap = std::map< FieldID, FieldLayout >
 

Public Member Functions

virtual ~InstanceLayoutGeneric (void)
 
virtual InstanceLayoutGenericclone (void) const =0
 
virtual void relocate (size_t adjust_amt)=0
 
virtual void print (std::ostream &os) const =0
 
virtual REALM_INTERNAL_API_EXTERNAL_LINKAGE void compile_lookup_program (PieceLookup::CompiledProgram &p) const =0
 

Static Public Member Functions

template<typename S >
static InstanceLayoutGenericdeserialize_new (S &deserializer)
 
template<int N, typename T >
static InstanceLayoutGenericchoose_instance_layout (IndexSpace< N, T > is, const InstanceLayoutConstraints &ilc, const int dim_order[N])
 
template<int N, typename T >
static InstanceLayoutGenericchoose_instance_layout (IndexSpace< N, T > is, const std::vector< Rect< N, T > > &covering, const InstanceLayoutConstraints &ilc, const int dim_order[N])
 

Public Attributes

size_t bytes_used
 
size_t alignment_reqd
 
FieldMap fields
 

Protected Member Functions

 InstanceLayoutGeneric (void)
 

Detailed Description

Instance layouts are templated on the type of the IndexSpace used to index them, but they all inherit from a generic version.

Member Typedef Documentation

◆ FieldMap

Constructor & Destructor Documentation

◆ InstanceLayoutGeneric()

Realm::InstanceLayoutGeneric::InstanceLayoutGeneric ( void  )
protected

◆ ~InstanceLayoutGeneric()

virtual Realm::InstanceLayoutGeneric::~InstanceLayoutGeneric ( void  )
virtual

Member Function Documentation

◆ choose_instance_layout() [1/2]

template<int N, typename T >
static InstanceLayoutGeneric * Realm::InstanceLayoutGeneric::choose_instance_layout ( IndexSpace< N, T >  is,
const InstanceLayoutConstraints ilc,
const int  dim_order[N] 
)
static

Create an affine layout using the bounds of 'is' (i.e. one piece) using the requested dimension ordering and respecting the field size/alignment constraints provided.

Parameters
isIndex space to use for layout creation.
ilcLayout constraints to use for layout creation.
dim_orderDimension ordering to use for layout creation.
Returns
InstanceLayoutGeneric* Pointer to the created layout.

◆ choose_instance_layout() [2/2]

template<int N, typename T >
static InstanceLayoutGeneric * Realm::InstanceLayoutGeneric::choose_instance_layout ( IndexSpace< N, T >  is,
const std::vector< Rect< N, T > > &  covering,
const InstanceLayoutConstraints ilc,
const int  dim_order[N] 
)
static

Create a multi-affine layout using one piece for each rectangle in 'covering' using the requested dimension ordering and respecting the field size/alignment constraints provided.

Parameters
isIndex space to use for layout creation.
coveringRectangles to use for layout creation.
ilcLayout constraints to use for layout creation.
dim_orderDimension ordering to use for layout creation.
Returns
InstanceLayoutGeneric* Pointer to the created layout.

◆ clone()

virtual InstanceLayoutGeneric * Realm::InstanceLayoutGeneric::clone ( void  ) const
pure virtual

◆ compile_lookup_program()

virtual REALM_INTERNAL_API_EXTERNAL_LINKAGE void Realm::InstanceLayoutGeneric::compile_lookup_program ( PieceLookup::CompiledProgram p) const
pure virtual

◆ deserialize_new()

template<typename S >
static InstanceLayoutGeneric * Realm::InstanceLayoutGeneric::deserialize_new ( S &  deserializer)
static

◆ print()

virtual void Realm::InstanceLayoutGeneric::print ( std::ostream &  os) const
pure virtual

◆ relocate()

virtual void Realm::InstanceLayoutGeneric::relocate ( size_t  adjust_amt)
pure virtual

Adjusts offsets of all pieces by 'adjust_amt'

Parameters
adjust_amt

Implemented in Realm::InstanceLayoutOpaque, and Realm::InstanceLayout< N, T >.

Member Data Documentation

◆ alignment_reqd

size_t Realm::InstanceLayoutGeneric::alignment_reqd

◆ bytes_used

size_t Realm::InstanceLayoutGeneric::bytes_used

◆ fields

FieldMap Realm::InstanceLayoutGeneric::fields

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