STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Public Types | Protected Member Functions | Protected Attributes
stapl::composition::nest_map_mr_factory Struct Reference

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_mdget_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_tresult_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_baseget_view_index_iterator (std::size_t n) const
 

Protected Attributes

bool m_finished
 Stores whether the derived factory has finished specifying tasks.
 

Detailed Description

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.

Member Function Documentation

◆ get_task_id_mapper()

template<typename Matrix , typename Vector >
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.

Returns
A key mapper which knows how tasks for this PARAGRAPH will be distributed among locations.
Parameters
mvA view over the input matrix.
vvA view over the input vector.

◆ operator()()

template<typename TGV , typename Matrix , typename 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.

Parameters
tgvThe paragraph_view.
mvA view over the input matrix.
vvA view over the input vector.

◆ reset_view_indices()

void stapl::task_factory_base::reset_view_indices ( )
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.

◆ get_location_md()

runtime::location_md& stapl::p_object::get_location_md ( void  )
noexceptinherited

Returns the location metadata of the location this object registered in. noexcept

noexcept

◆ advance_epoch()

void stapl::p_object::advance_epoch ( void  )
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.

◆ unlock()

void stapl::p_object::unlock ( void  )
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.

◆ lock()

void stapl::p_object::lock ( void  )
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.

◆ try_lock()

bool stapl::p_object::try_lock ( void  )
inherited

Attempt to maintain atomicity with respect to incoming RMIs.

Mutates counter in the associated runqueue.

Returns
true if the lock was able to be acquired. false if it is already locked.

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