Customized implementation of a map_func(map_reduce()...) skeleton that is used for matrix vector multiplication. More...
Public Member Functions | |
default_coarsener | get_coarsener () const |
template<typename Matrix , typename Vector > | |
task_id_mapper_type | get_task_id_mapper (Matrix &mv, Vector &vv) const |
Return a copy of the custom task to location mapper used to specialize the key distribution of the PARAGRAPH's Directory. More... | |
template<typename TGV , typename Matrix , typename Vector > | |
void | operator() (TGV const &tgv, Matrix &mv, Vector &vv) |
Function operator a factory called to populate the PARAGRAPH with tasks. More... | |
bool | finished () const |
virtual void | reset () |
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 | |
typedef cm_res_view< my_container< double > > | sv_t |
using | coarsener_type = default_coarsener |
typedef map_view< sv_t > | result_type |
typedef nest_map_mr_task_mapper | task_id_mapper_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. | |
Customized implementation of a map_func(map_reduce()...) skeleton that is used for matrix vector multiplication.
The key implementation features are the use of logical two dimension processor layout to reduce communication and the replication of computation across subportions of processors to further reduce communication caused by vector updates.
task_id_mapper_type stapl::composition::nest_map_mr_factory::get_task_id_mapper | ( | Matrix & | mv, |
Vector & | vv | ||
) | const |
Return a copy of the custom task to location mapper used to specialize the key distribution of the PARAGRAPH's Directory.
mv | A view over the input matrix. |
vv | A view over the input vector. |
void stapl::composition::nest_map_mr_factory::operator() | ( | TGV const & | tgv, |
Matrix & | mv, | ||
Vector & | vv | ||
) |
Function operator a factory called to populate the PARAGRAPH with tasks.
tgv | The paragraph_view. |
mv | A view over the input matrix. |
vv | A view over the input vector. |
|
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.