FreePOOMA
2.4.1
|
DynamicLayout is a Layout class that breaks an N-dimensional Interval into sub-domains arranged in an N-dimensional grid, where the sub-domain sizes are specified by a Grid domain object. More...
#include <DynamicLayout.h>
Public Types | |
enum | { dimensions = 1 } |
enum | { repartitionEvent = 1 } |
enum | { dynamic = true } |
enum | { supportsGuards = false } |
typedef DynamicLayout | This_t |
typedef Observable< This_t > | Observable_t |
typedef DynamicLayoutData | LayoutData_t |
typedef LayoutData_t::Domain_t | Domain_t |
typedef LayoutData_t::BaseDomain_t | BaseDomain_t |
typedef LayoutData_t::Context_t | Context_t |
typedef LayoutData_t::ID_t | ID_t |
typedef LayoutData_t::Value_t | Value_t |
typedef LayoutData_t::List_t | List_t |
typedef DynamicEvents::PatchID_t | PatchID_t |
typedef DynamicEvents::CreateSize_t | CreateSize_t |
typedef DerefIterator< Value_t > | iterator |
typedef ConstDerefIterator < Value_t > | const_iterator |
Public Member Functions | |
DynamicLayout () | |
DynamicLayout (const Domain_t &) | |
DynamicLayout (const Domain_t &, int) | |
DynamicLayout (const Grid< 1 > &) | |
template<class Partitioner > | |
DynamicLayout (const Domain_t &gdom, const Partitioner &gpar) | |
template<class Partitioner > | |
DynamicLayout (const Domain_t &gdom, const Partitioner &gpar, const ContextMapper< 1 > &cmap) | |
DynamicLayout (const This_t &) | |
This_t & | operator= (const This_t &) |
~DynamicLayout () | |
void | initialize (const Domain_t &) |
void | initialize (const Domain_t &, int) |
void | initialize (const Domain_t &, const Grid< 1 > &) |
void | initialize (const Grid< 1 > &) |
template<class Partitioner > | |
void | initialize (const Domain_t &gdom, const Partitioner &gpar) |
template<class Partitioner > | |
void | initialize (const Domain_t &gdom, const Partitioner &gpar, const ContextMapper< 1 > &cmap) |
void | initialize (const Domain_t &gdom, const List_t &nodes) |
ID_t | ID () const |
ID_t | baseID () const |
bool | initialized () const |
int | first (int) const |
const Domain_t & | domain () const |
const Domain_t & | ownedDomain () const |
const Domain_t & | domain (int i) const |
const Domain_t & | ownedDomain (int i) const |
const Domain_t & | allocatedDomain (int i) const |
const Domain_t & | baseDomain () const |
const Domain_t & | patchDomain (int i) const |
const List_t & | nodeListGlobal () const |
const List_t & | nodeListLocal () const |
const List_t & | nodeListRemote () const |
template<class Layout > | |
bool | operator== (const Layout &layout) const |
template<class Layout > | |
bool | operator!= (const Layout &layout) const |
int | blocks () const |
int | globalID (const Loc< 1 > &loc) const |
int | globalID (int a1) const |
iterator | beginGlobal () |
iterator | endGlobal () |
const_iterator | beginGlobal () const |
const_iterator | endGlobal () const |
int | sizeGlobal () const |
iterator | beginLocal () |
iterator | endLocal () |
const_iterator | beginLocal () const |
const_iterator | endLocal () const |
int | sizeLocal () const |
iterator | beginRemote () |
iterator | endRemote () |
const_iterator | beginRemote () const |
const_iterator | endRemote () const |
int | sizeRemote () const |
template<class Partitioner > | |
bool | repartition (const Partitioner &gp) |
void | create (CreateSize_t num, PatchID_t patch=(-1)) |
template<class Dom , class DeleteMethod > | |
void | destroy (const Dom &killlist, const DeleteMethod &method) |
template<class Dom , class DeleteMethod > | |
void | destroy (const Dom &killlist, PatchID_t patch, const DeleteMethod &method) |
template<class Dom > | |
void | copy (const Dom ©list, PatchID_t toPatch=(-1)) |
template<class Dom > | |
void | copy (const Dom ©list, PatchID_t fromPatch, PatchID_t toPatch) |
void | copy (const IndirectionList< IndirectionList< int > > &domlists, const IndirectionList< int > &fromlist, PatchID_t toPatch, bool docreate) |
void | sync () |
template<class OtherDomain , class OutIter , class ConstructTag > | |
int | touches (const OtherDomain &d, OutIter o, const ConstructTag &ctag) const |
template<class OtherDomain , class OutIter , class ConstructTag > | |
int | touchesAlloc (const OtherDomain &d, OutIter o, const ConstructTag &ctag) const |
template<class OtherDomain , class OutIter , class ConstructTag > | |
int | touchesLocal (const OtherDomain &d, OutIter o, const ConstructTag &ctag) const |
template<class OtherDomain , class OutIter , class ConstructTag > | |
int | touchesAllocLocal (const OtherDomain &d, OutIter o, const ConstructTag &ctag) const |
template<class OtherDomain , class OutIter , class ConstructTag > | |
int | touchesRemote (const OtherDomain &, OutIter, const ConstructTag &) const |
template<class OtherDomain , class OutIter , class ConstructTag > | |
int | touchesAllocRemote (const OtherDomain &, OutIter, const ConstructTag &) const |
template<class OtherDomain , class OutIter > | |
int | touches (const OtherDomain &d, OutIter o) const |
template<class OtherDomain , class OutIter > | |
int | touchesAlloc (const OtherDomain &d, OutIter o) const |
template<class OtherDomain , class OutIter > | |
int | touchesLocal (const OtherDomain &d, OutIter o) const |
template<class OtherDomain , class OutIter > | |
int | touchesAllocLocal (const OtherDomain &d, OutIter o) const |
template<class OtherDomain , class OutIter > | |
int | touchesRemote (const OtherDomain &d, OutIter o) const |
template<class OtherDomain , class OutIter > | |
int | touchesAllocRemote (const OtherDomain &d, OutIter o) const |
virtual void | notify (LayoutData_t &d, const ObserverEvent &event) |
The one virtual public interface method for Observer. | |
template<class Ostream > | |
void | print (Ostream &ostr) const |
DynamicLayout is a Layout class that breaks an N-dimensional Interval into sub-domains arranged in an N-dimensional grid, where the sub-domain sizes are specified by a Grid domain object.
This is an alternative to the more general tile Layout class that should perform faster since subdomains can be found using a set of 1-dimensional domainMap's, rather than by a more general search.
To construct a DynamicLayout, you can do any of the following:
typedef DynamicLayout DynamicLayout::This_t |
typedef Observable<This_t> DynamicLayout::Observable_t |
typedef DerefIterator<Value_t> DynamicLayout::iterator |
DynamicLayout::DynamicLayout | ( | const Domain_t & | ) |
DynamicLayout::DynamicLayout | ( | const Domain_t & | , |
int | |||
) |
DynamicLayout::DynamicLayout | ( | const Grid< 1 > & | ) |
DynamicLayout::DynamicLayout | ( | const Domain_t & | gdom, |
const Partitioner & | gpar | ||
) | [inline] |
References Observable< T >::attach().
DynamicLayout::DynamicLayout | ( | const Domain_t & | gdom, |
const Partitioner & | gpar, | ||
const ContextMapper< 1 > & | cmap | ||
) | [inline] |
References Observable< T >::attach().
DynamicLayout::DynamicLayout | ( | const This_t & | ) |
DynamicLayout::~DynamicLayout | ( | ) | [inline] |
References Observable< T >::detach().
void DynamicLayout::initialize | ( | const Domain_t & | ) |
void DynamicLayout::initialize | ( | const Domain_t & | , |
int | |||
) |
void DynamicLayout::initialize | ( | const Domain_t & | , |
const Grid< 1 > & | |||
) |
void DynamicLayout::initialize | ( | const Grid< 1 > & | ) |
void DynamicLayout::initialize | ( | const Domain_t & | gdom, |
const Partitioner & | gpar | ||
) | [inline] |
References DynamicLayoutData::initialize().
void DynamicLayout::initialize | ( | const Domain_t & | gdom, |
const Partitioner & | gpar, | ||
const ContextMapper< 1 > & | cmap | ||
) | [inline] |
References DynamicLayoutData::initialize().
void DynamicLayout::initialize | ( | const Domain_t & | gdom, |
const List_t & | nodes | ||
) | [inline] |
References DynamicLayoutData::initialize().
ID_t DynamicLayout::ID | ( | ) | const [inline] |
References DynamicLayoutData::ID().
Referenced by print().
ID_t DynamicLayout::baseID | ( | ) | const [inline] |
References DynamicLayoutData::ID().
Referenced by DynamicLayoutView::baseID(), and operator==().
bool DynamicLayout::initialized | ( | ) | const [inline] |
References sizeGlobal().
Referenced by DynamicLayoutViewData::DynamicLayoutViewData().
int DynamicLayout::first | ( | int | ) | const [inline] |
References DynamicLayoutData::domain().
const Domain_t& DynamicLayout::domain | ( | ) | const [inline] |
References DynamicLayoutData::domain().
Referenced by DynamicLayoutViewData::DynamicLayoutViewData(), print(), and repartition().
const Domain_t& DynamicLayout::ownedDomain | ( | ) | const [inline] |
References DynamicLayoutData::ownedDomain().
const Domain_t& DynamicLayout::domain | ( | int | i | ) | const [inline] |
References DynamicLayoutData::domain().
const Domain_t& DynamicLayout::ownedDomain | ( | int | i | ) | const [inline] |
References DynamicLayoutData::ownedDomain().
const Domain_t& DynamicLayout::allocatedDomain | ( | int | i | ) | const [inline] |
References DynamicLayoutData::allocatedDomain().
const Domain_t& DynamicLayout::baseDomain | ( | ) | const [inline] |
References DynamicLayoutData::domain().
Referenced by operator==().
const Domain_t& DynamicLayout::patchDomain | ( | int | i | ) | const [inline] |
References DynamicLayoutData::patchDomain().
const List_t& DynamicLayout::nodeListGlobal | ( | ) | const [inline] |
References DynamicLayoutData::nodeListGlobal().
const List_t& DynamicLayout::nodeListLocal | ( | ) | const [inline] |
References DynamicLayoutData::nodeListLocal().
const List_t& DynamicLayout::nodeListRemote | ( | ) | const [inline] |
References DynamicLayoutData::nodeListRemote().
bool DynamicLayout::operator== | ( | const Layout & | layout | ) | const [inline] |
References baseDomain(), and baseID().
bool DynamicLayout::operator!= | ( | const Layout & | layout | ) | const [inline] |
int DynamicLayout::blocks | ( | ) | const [inline] |
References DynamicLayoutData::blocks().
Referenced by print().
int DynamicLayout::globalID | ( | const Loc< 1 > & | loc | ) | const [inline] |
References DynamicLayoutData::globalID().
Referenced by DynamicLayoutViewData::globalID().
int DynamicLayout::globalID | ( | int | a1 | ) | const [inline] |
References DynamicLayoutData::globalID().
iterator DynamicLayout::beginGlobal | ( | ) | [inline] |
References DynamicLayoutData::nodeListGlobal().
Referenced by print().
iterator DynamicLayout::endGlobal | ( | ) | [inline] |
References DynamicLayoutData::nodeListGlobal().
Referenced by print().
const_iterator DynamicLayout::beginGlobal | ( | ) | const [inline] |
References DynamicLayoutData::nodeListGlobal().
const_iterator DynamicLayout::endGlobal | ( | ) | const [inline] |
References DynamicLayoutData::nodeListGlobal().
int DynamicLayout::sizeGlobal | ( | ) | const [inline] |
References DynamicLayoutData::nodeListGlobal().
Referenced by initialized(), and print().
iterator DynamicLayout::beginLocal | ( | ) | [inline] |
References DynamicLayoutData::nodeListLocal().
Referenced by print().
iterator DynamicLayout::endLocal | ( | ) | [inline] |
References DynamicLayoutData::nodeListLocal().
Referenced by print().
const_iterator DynamicLayout::beginLocal | ( | ) | const [inline] |
References DynamicLayoutData::nodeListLocal().
const_iterator DynamicLayout::endLocal | ( | ) | const [inline] |
References DynamicLayoutData::nodeListLocal().
int DynamicLayout::sizeLocal | ( | ) | const [inline] |
References DynamicLayoutData::nodeListLocal().
Referenced by print().
iterator DynamicLayout::beginRemote | ( | ) | [inline] |
References DynamicLayoutData::nodeListRemote().
Referenced by print().
iterator DynamicLayout::endRemote | ( | ) | [inline] |
References DynamicLayoutData::nodeListRemote().
Referenced by print().
const_iterator DynamicLayout::beginRemote | ( | ) | const [inline] |
References DynamicLayoutData::nodeListRemote().
const_iterator DynamicLayout::endRemote | ( | ) | const [inline] |
References DynamicLayoutData::nodeListRemote().
int DynamicLayout::sizeRemote | ( | ) | const [inline] |
References DynamicLayoutData::nodeListRemote().
Referenced by print().
bool DynamicLayout::repartition | ( | const Partitioner & | gp | ) | [inline] |
References domain(), DynamicLayoutData::initialize(), Observable< T >::notify(), and repartitionEvent.
void DynamicLayout::create | ( | CreateSize_t | num, |
PatchID_t | patch = (-1) |
||
) | [inline] |
References DynamicLayoutData::create().
void DynamicLayout::destroy | ( | const Dom & | killlist, |
const DeleteMethod & | method | ||
) | [inline] |
References DynamicLayoutData::destroy().
void DynamicLayout::destroy | ( | const Dom & | killlist, |
PatchID_t | patch, | ||
const DeleteMethod & | method | ||
) | [inline] |
References DynamicLayoutData::destroy().
void DynamicLayout::copy | ( | const Dom & | copylist, |
PatchID_t | toPatch = (-1) |
||
) | [inline] |
References DynamicLayoutData::copy().
void DynamicLayout::copy | ( | const Dom & | copylist, |
PatchID_t | fromPatch, | ||
PatchID_t | toPatch | ||
) | [inline] |
References DynamicLayoutData::copy().
void DynamicLayout::copy | ( | const IndirectionList< IndirectionList< int > > & | domlists, |
const IndirectionList< int > & | fromlist, | ||
PatchID_t | toPatch, | ||
bool | docreate | ||
) | [inline] |
References DynamicLayoutData::copy().
void DynamicLayout::sync | ( | ) | [inline] |
References DynamicLayoutData::sync().
int DynamicLayout::touches | ( | const OtherDomain & | d, |
OutIter | o, | ||
const ConstructTag & | ctag | ||
) | const [inline] |
References DynamicLayoutData::touches().
Referenced by DynamicLayoutViewData::computeSubdomains(), touches(), and DynamicLayoutViewData::touches().
int DynamicLayout::touchesAlloc | ( | const OtherDomain & | d, |
OutIter | o, | ||
const ConstructTag & | ctag | ||
) | const [inline] |
References DynamicLayoutData::touches().
Referenced by touchesAlloc().
int DynamicLayout::touchesLocal | ( | const OtherDomain & | d, |
OutIter | o, | ||
const ConstructTag & | ctag | ||
) | const [inline] |
References DynamicLayoutData::touches().
Referenced by touchesLocal().
int DynamicLayout::touchesAllocLocal | ( | const OtherDomain & | d, |
OutIter | o, | ||
const ConstructTag & | ctag | ||
) | const [inline] |
References DynamicLayoutData::touches().
Referenced by touchesAllocLocal().
int DynamicLayout::touchesRemote | ( | const OtherDomain & | , |
OutIter | , | ||
const ConstructTag & | |||
) | const [inline] |
Referenced by touchesAllocRemote(), and touchesRemote().
int DynamicLayout::touchesAllocRemote | ( | const OtherDomain & | , |
OutIter | , | ||
const ConstructTag & | |||
) | const [inline] |
int DynamicLayout::touches | ( | const OtherDomain & | d, |
OutIter | o | ||
) | const [inline] |
References touches().
int DynamicLayout::touchesAlloc | ( | const OtherDomain & | d, |
OutIter | o | ||
) | const [inline] |
References touchesAlloc().
int DynamicLayout::touchesLocal | ( | const OtherDomain & | d, |
OutIter | o | ||
) | const [inline] |
References touchesLocal().
int DynamicLayout::touchesAllocLocal | ( | const OtherDomain & | d, |
OutIter | o | ||
) | const [inline] |
References touchesAllocLocal().
int DynamicLayout::touchesRemote | ( | const OtherDomain & | d, |
OutIter | o | ||
) | const [inline] |
References touchesRemote().
int DynamicLayout::touchesAllocRemote | ( | const OtherDomain & | d, |
OutIter | o | ||
) | const [inline] |
References touchesRemote().
virtual void DynamicLayout::notify | ( | LayoutData_t & | observed, |
const ObserverEvent & | event | ||
) | [inline, virtual] |
The one virtual public interface method for Observer.
notify is called by an Observable when it needs to tell attached Observers that some event has occurred. It is up to the derived class, for the type T, to be able to interpret the meaning of the integer event code in the provided ObserverEvent object (or to ignore it, if it needs to). notify is called with a reference to the object being observed and the event which occurred. Note that event code '0' is special; it means that the given Observable is being destroyed, so this Observer should just note that it is no longer attached to that Observable.
Implements Observer< DynamicLayoutData >.
References Observable< T >::notify(), PAssert, and RefCountedPtr< T >::rawPointer().
void DynamicLayout::print | ( | Ostream & | ostr | ) | const [inline] |
References beginGlobal(), beginLocal(), beginRemote(), blocks(), domain(), endGlobal(), endLocal(), endRemote(), ID(), DynamicLayoutData::print(), sizeGlobal(), sizeLocal(), and sizeRemote().