Thrill  0.1
AllGatherNode< ValueType > Class Template Referencefinal

Detailed Description

template<typename ValueType>
class thrill::api::AllGatherNode< ValueType >

Definition at line 28 of file all_gather.hpp.

+ Inheritance diagram for AllGatherNode< ValueType >:
+ Collaboration diagram for AllGatherNode< ValueType >:

#include <all_gather.hpp>

Public Types

using Super = ActionResultNode< std::vector< ValueType > >
 
- Public Types inherited from DIABase
using DIABasePtr = tlx::CountingPtr< DIABase >
 

Public Member Functions

template<typename ParentDIA >
 AllGatherNode (const ParentDIA &parent, std::vector< ValueType > *out_vector, bool ownership)
 
 ~AllGatherNode ()
 
void Execute () final
 Closes the output file. More...
 
bool OnPreOpFile (const data::File &file, size_t) final
 
void PreOp (const ValueType &element)
 
const std::vector< ValueType > & result () const final
 virtual method to return result via an ActionFuture More...
 
void StartPreOp (size_t) final
 Virtual method for preparing start of PushData. More...
 
void StopPreOp (size_t) final
 Virtual method for preparing end of PushData. More...
 
- Public Member Functions inherited from ActionResultNode< std::vector< ValueType > >
 ActionResultNode (Context &ctx, const char *label, const std::initializer_list< size_t > &parent_ids, const std::initializer_list< DIABasePtr > &parents)
 
- Public Member Functions inherited from ActionNode
 ActionNode (Context &ctx, const char *label, const std::initializer_list< size_t > &parent_ids, const std::initializer_list< DIABasePtr > &parents)
 
std::vector< DIABase * > children () const final
 ActionNodes do not have children. More...
 
void DecConsumeCounter (size_t) final
 
void IncConsumeCounter (size_t) final
 
void PushData (bool) final
 ActionNodes do not push data, they only Execute. More...
 
void RemoveAllChildren () final
 ActionNodes do not have children. More...
 
void RemoveChild (DIABase *) final
 ActionNodes do not have children. More...
 
void RunPushData () final
 ActionNodes do not push data, they only Execute. More...
 
void SetConsumeCounter (size_t) final
 
- Public Member Functions inherited from DIABase
 DIABase (Context &ctx, const char *label, const std::initializer_list< size_t > &parent_ids, const std::initializer_list< DIABasePtr > &parents)
 The constructor for a DIABase. More...
 
 DIABase (Context &ctx, const char *label, std::vector< size_t > &&parent_ids, std::vector< DIABasePtr > &&parents)
 The constructor for a DIABase. More...
 
 DIABase (const DIABase &)=delete
 non-copyable: delete copy-constructor More...
 
 DIABase (DIABase &&)=default
 move-constructor: default More...
 
virtual ~DIABase ()
 Virtual destructor for a DIABase. More...
 
virtual size_t consume_counter () const
 Returns consume_counter_. More...
 
Contextcontext ()
 Returns the api::Context of this DIABase. More...
 
const size_t & dia_id () const
 return unique id of DIANode subclass as stored by StatsNode More...
 
virtual bool ForwardDataOnly () const
 
const char * label () const
 return label() of DIANode subclass as stored by StatsNode More...
 
mem::Managermem_manager ()
 Return the Context's memory manager. More...
 
DIABaseoperator= (const DIABase &)=delete
 non-copyable: delete assignment operator More...
 
DIABaseoperator= (DIABase &&)=default
 move-assignment operator: default More...
 
std::vector< size_t > parent_ids () const
 Returns the parents of this DIABase. More...
 
const std::vector< DIABasePtr > & parents () const
 Returns the parents of this DIABase. More...
 
void RemoveParent (DIABase *p)
 Remove a parent. More...
 
virtual bool RequireParentPushData (size_t) const
 
void RunScope ()
 
void set_mem_limit (const DIAMemUse &mem_limit)
 
void set_state (const DIAState &state)
 
DIAState state () const
 
virtual DIAMemUse PreOpMemUse ()
 Amount of RAM used by PreOp after StartPreOp() More...
 
virtual DIAMemUse ExecuteMemUse ()
 Amount of RAM used by Execute() More...
 
virtual DIAMemUse PushDataMemUse ()
 Amount of RAM used by PushData() More...
 
virtual void Dispose ()
 Virtual clear method. Triggers actual disposing in sub-classes. More...
 
- Public Member Functions inherited from ReferenceCounter
 ReferenceCounter () noexcept
 new objects have zero reference count More...
 
 ReferenceCounter (const ReferenceCounter &) noexcept
 coping still creates a new object with zero reference count More...
 
 ~ReferenceCounter ()
 
bool dec_reference () const noexcept
 Call whenever resetting (i.e. More...
 
void inc_reference () const noexcept
 Call whenever setting a pointer to the object. More...
 
ReferenceCounteroperator= (const ReferenceCounter &) noexcept
 assignment operator, leaves pointers unchanged More...
 
size_t reference_count () const noexcept
 Return the number of references to this object (for debugging) More...
 
bool unique () const noexcept
 Test if the ReferenceCounter is referenced by only one CountingPtr. More...
 

Private Attributes

data::CatStream::Writers emitters_
 
std::vector< ValueType > * out_vector_
 Vector pointer to write elements to. More...
 
bool ownership_
 take ownership of vector More...
 
const bool parent_stack_empty_
 Whether the parent stack is empty. More...
 
data::CatStreamPtr stream_ { context_.GetNewCatStream(this) }
 

Static Private Attributes

static constexpr bool debug = false
 

Additional Inherited Members

- Public Attributes inherited from DIABase
common::JsonLogger logger_
 
- Static Public Attributes inherited from DIABase
static constexpr size_t kNeverConsume = static_cast<size_t>(-1)
 Never full consume. More...
 
- Protected Attributes inherited from DIABase
Contextcontext_
 associated Context More...
 
const size_t dia_id_
 DIA serial id. More...
 
const char *const label_
 DOp node static label. More...
 
DIAState state_ = DIAState::NEW
 State of the DIANode. State is NEW on creation. More...
 
std::vector< DIABasePtrparents_
 Parents of this DIABase. More...
 
DIAMemUse mem_limit_ = 0
 
size_t consume_counter_ = 1
 

Member Typedef Documentation

◆ Super

using Super = ActionResultNode<std::vector<ValueType> >

Definition at line 33 of file all_gather.hpp.

Constructor & Destructor Documentation

◆ AllGatherNode()

AllGatherNode ( const ParentDIA &  parent,
std::vector< ValueType > *  out_vector,
bool  ownership 
)
inline

◆ ~AllGatherNode()

Member Function Documentation

◆ Execute()

void Execute ( )
inlinefinalvirtual

◆ OnPreOpFile()

bool OnPreOpFile ( const data::File ,
size_t   
)
inlinefinalvirtual

Virtual method for receiving a whole data::File of ValueType from parent. Returns true if the file was accepted (requires that the child's function stack is empty and that it can accept whole data::Files).

Reimplemented from DIABase.

Definition at line 68 of file all_gather.hpp.

References AllGatherNode< ValueType >::emitters_, thrill::common::g_debug_push_file, LOGC, and AllGatherNode< ValueType >::parent_stack_empty_.

◆ PreOp()

void PreOp ( const ValueType &  element)
inline

◆ result()

const std::vector<ValueType>& result ( ) const
inlinefinalvirtual

virtual method to return result via an ActionFuture

Implements ActionResultNode< std::vector< ValueType > >.

Definition at line 95 of file all_gather.hpp.

References AllGatherNode< ValueType >::out_vector_.

◆ StartPreOp()

void StartPreOp ( size_t  )
inlinefinalvirtual

Virtual method for preparing start of PushData.

Reimplemented from DIABase.

Definition at line 58 of file all_gather.hpp.

References AllGatherNode< ValueType >::emitters_, and AllGatherNode< ValueType >::stream_.

◆ StopPreOp()

void StopPreOp ( size_t  )
inlinefinalvirtual

Virtual method for preparing end of PushData.

Reimplemented from DIABase.

Definition at line 81 of file all_gather.hpp.

References StreamData::Writers::Close(), and AllGatherNode< ValueType >::emitters_.

Member Data Documentation

◆ debug

constexpr bool debug = false
staticprivate

Definition at line 30 of file all_gather.hpp.

◆ emitters_

◆ out_vector_

std::vector<ValueType>* out_vector_
private

◆ ownership_

bool ownership_
private

take ownership of vector

Definition at line 107 of file all_gather.hpp.

Referenced by AllGatherNode< ValueType >::AllGatherNode(), and AllGatherNode< ValueType >::~AllGatherNode().

◆ parent_stack_empty_

const bool parent_stack_empty_
private

Whether the parent stack is empty.

Definition at line 101 of file all_gather.hpp.

Referenced by AllGatherNode< ValueType >::AllGatherNode(), and AllGatherNode< ValueType >::OnPreOpFile().

◆ stream_

data::CatStreamPtr stream_ { context_.GetNewCatStream(this) }
private

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