Initial implementation of view colocation strategy that copies readonly data to the task's execution location to avoid excessive, fine grain communication. Assume a dense read pattern of these views.This implementation exists to fix performance problem with stapl::copy, currently the only user of the interface. (Hence only two view version of function operator). More...
Public Member Functions | |
colocation (WF const &wf) | |
default_coarsener | get_coarsener () const |
void | reset () |
Implementation of task_factory_base interface. More... | |
template<typename PGV , typename SrcView , typename DestView > | |
void | operator() (PGV const &pg_view, SrcView &src_view, DestView &dest_view) const |
Function operator invoked by PARAGRAPH to populate it with tasks. More... | |
bool | finished () const |
runtime::location_md const & | get_location_md (void) const noexcept |
Returns the location metadata of the location this object registered in. | |
runtime::location_md & | get_location_md (void) noexcept |
Returns the location metadata of the location this object registered in. noexcept More... | |
Distributed Object Management | |
rmi_handle::const_reference const & | get_rmi_handle (void) const noexcept |
Returns the associated rmi_handle. | |
rmi_handle::reference const & | get_rmi_handle (void) noexcept |
Returns the associated rmi_handle. | |
size_type | get_location_id (void) const noexcept |
Returns the location id of the local sub-object. | |
size_type | get_num_locations (void) const noexcept |
Returns the number of locations of the gang of this p_object. | |
void | advance_epoch (void) |
Advances the epoch of the object. More... | |
void | unlock (void) |
Used by lock_guard functionality in method of derived classes to request atomicity with respect to incoming RMIs. More... | |
void | lock (void) |
Used by lock_guard functionality in method of derived classes to request atomicity with respect to incoming RMIs. More... | |
bool | try_lock (void) |
Attempt to maintain atomicity with respect to incoming RMIs. More... | |
Public Types | |
using | coarsener_type = default_coarsener |
using | result_type = result_type |
using | size_type = rmi_handle::size_type |
Protected Member Functions | |
bool | initialized (void) const |
void | reset_view_indices () |
Reset the iterators over the view indices on this location. More... | |
void | set_view_index_iterator (std::size_t idx, view_index_iterator_base *ptr) |
std::size_t | view_indices_size () const |
view_index_iterator_base * | get_view_index_iterator (std::size_t n) const |
Protected Attributes | |
bool | m_finished |
Stores whether the derived factory has finished specifying tasks. | |
Initial implementation of view colocation strategy that copies readonly data to the task's execution location to avoid excessive, fine grain communication. Assume a dense read pattern of these views.
This implementation exists to fix performance problem with stapl::copy, currently the only user of the interface. (Hence only two view version of function operator).
|
virtual |
Implementation of task_factory_base interface.
Definition exists solely as sanity check to make sure it isn't called.
Reimplemented from stapl::task_factory_base.
void stapl::colocation< WF >::operator() | ( | PGV const & | pg_view, |
SrcView & | src_view, | ||
DestView & | dest_view | ||
) | const |
Function operator invoked by PARAGRAPH to populate it with tasks.
pg_view | View of PARAGRAPH where tasks will be added. |
src_view | Source view, read only data access. |
dest_view | Destination view, write only. |
Source/destination coarsened subview pairs are analyzed and the following algorithm is used:
|
protectedinherited |
Reset the iterators over the view indices on this location.
This is used in factories where multiple tasks will be generated for each view element to be processed.
|
noexceptinherited |
Returns the location metadata of the location this object registered in. noexcept
noexcept
|
inherited |
Advances the epoch of the object.
Advancing the epoch will flush any pending RMIs. It will also increase the epoch of the current gang if the object is not a named object.
|
inherited |
Used by lock_guard
functionality in method of derived classes to request atomicity with respect to incoming RMIs.
Mutates counter in the associated runqueue.
|
inherited |
Used by lock_guard
functionality in method of derived classes to request atomicity with respect to incoming RMIs.
Mutates counter in the associated runqueue.
|
inherited |
Attempt to maintain atomicity with respect to incoming RMIs.
Mutates counter in the associated runqueue.
true
if the lock was able to be acquired. false
if it is already locked.