|
Thrill
0.1
|
Definition at line 36 of file write_binary.hpp.
Inheritance diagram for WriteBinaryNode< ValueType >:
Collaboration diagram for WriteBinaryNode< ValueType >:#include <write_binary.hpp>
Classes | |
| class | SysFileSink |
| Implements BlockSink class writing to files with size limit. More... | |
Public Types | |
| using | Super = ActionNode |
Public Types inherited from DIABase | |
| using | DIABasePtr = tlx::CountingPtr< DIABase > |
Public Member Functions | |
| template<typename ParentDIA > | |
| WriteBinaryNode (const ParentDIA &parent, const std::string &path_out, size_t max_file_size) | |
| void | Execute () final |
| Virtual execution method. Triggers actual computation in sub-classes. More... | |
| void | PreOp (const ValueType &input) |
| writer preop: put item into file, create files as needed. More... | |
| DIAMemUse | PreOpMemUse () final |
| Amount of RAM used by PreOp after StartPreOp() More... | |
| void | StopPreOp (size_t) final |
| Closes the output file. More... | |
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... | |
| Context & | context () |
| 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::Manager & | mem_manager () |
| Return the Context's memory manager. More... | |
| DIABase & | operator= (const DIABase &)=delete |
| non-copyable: delete assignment operator More... | |
| DIABase & | operator= (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 void | StartPreOp (size_t) |
| Virtual method for preparing start of PushData. More... | |
| virtual bool | OnPreOpFile (const data::File &, size_t) |
| 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... | |
| ReferenceCounter & | operator= (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 Types | |
| using | Writer = data::BlockWriter< SysFileSink > |
Private Member Functions | |
| void | OpenNextFile () |
| Function to create sink_ and writer_ for next file. More... | |
Private Attributes | |
| size_t | block_size_ = data::default_block_size |
| Block size used by BlockWriter. More... | |
| size_t | max_file_size_ |
| Maximum file size. More... | |
| std::string | out_pathbase_ |
| Base path of the output file. More... | |
| size_t | out_serial_ = 0 |
| File serial number for this worker. More... | |
| size_t | stats_total_elements_ = 0 |
| size_t | stats_total_writes_ = 0 |
| std::unique_ptr< Writer > | writer_ |
| BlockWriter to sink. More... | |
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 | |
| Context & | context_ |
| 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< DIABasePtr > | parents_ |
| Parents of this DIABase. More... | |
| DIAMemUse | mem_limit_ = 0 |
| size_t | consume_counter_ = 1 |
| using Super = ActionNode |
Definition at line 41 of file write_binary.hpp.
|
private |
Definition at line 151 of file write_binary.hpp.
|
inline |
Definition at line 45 of file write_binary.hpp.
References WriteBinaryNode< ValueType >::block_size_, thrill::data::default_block_size, WriteBinaryNode< ValueType >::max_file_size_, min(), WriteBinaryNode< ValueType >::out_pathbase_, WriteBinaryNode< ValueType >::PreOp(), tlx::round_up_to_power_of_two(), and sLOG.
|
inlinefinalvirtual |
Virtual execution method. Triggers actual computation in sub-classes.
Implements DIABase.
Definition at line 106 of file write_binary.hpp.
|
inlineprivate |
Function to create sink_ and writer_ for next file.
Definition at line 172 of file write_binary.hpp.
References DIABase::context_, thrill::vfs::FillFilePattern(), Context::local_worker_id(), WriteBinaryNode< ValueType >::max_file_size_, Context::my_rank(), sLOG, WriteBinaryNode< ValueType >::SysFileSink::stats_total_elements_, WriteBinaryNode< ValueType >::SysFileSink::stats_total_writes_, and WriteBinaryNode< ValueType >::SysFileSink::SysFileSink().
Referenced by WriteBinaryNode< ValueType >::PreOp().
|
inline |
writer preop: put item into file, create files as needed.
Definition at line 72 of file write_binary.hpp.
References WriteBinaryNode< ValueType >::OpenNextFile(), WriteBinaryNode< ValueType >::stats_total_elements_, and WriteBinaryNode< ValueType >::writer_.
Referenced by WriteBinaryNode< ValueType >::WriteBinaryNode().
|
inlinefinalvirtual |
Amount of RAM used by PreOp after StartPreOp()
Reimplemented from DIABase.
Definition at line 67 of file write_binary.hpp.
References thrill::data::default_block_size.
|
inlinefinalvirtual |
Closes the output file.
Reimplemented from DIABase.
Definition at line 96 of file write_binary.hpp.
References DIABase::logger_, WriteBinaryNode< ValueType >::out_pathbase_, sLOG, WriteBinaryNode< ValueType >::stats_total_elements_, WriteBinaryNode< ValueType >::stats_total_writes_, and WriteBinaryNode< ValueType >::writer_.
|
private |
Block size used by BlockWriter.
Definition at line 163 of file write_binary.hpp.
Referenced by WriteBinaryNode< ValueType >::WriteBinaryNode().
|
staticprivate |
Definition at line 38 of file write_binary.hpp.
|
private |
Maximum file size.
Definition at line 160 of file write_binary.hpp.
Referenced by WriteBinaryNode< ValueType >::OpenNextFile(), and WriteBinaryNode< ValueType >::WriteBinaryNode().
|
private |
Base path of the output file.
Definition at line 154 of file write_binary.hpp.
Referenced by WriteBinaryNode< ValueType >::StopPreOp(), and WriteBinaryNode< ValueType >::WriteBinaryNode().
|
private |
File serial number for this worker.
Definition at line 157 of file write_binary.hpp.
|
private |
Definition at line 168 of file write_binary.hpp.
Referenced by WriteBinaryNode< ValueType >::PreOp(), and WriteBinaryNode< ValueType >::StopPreOp().
|
private |
Definition at line 169 of file write_binary.hpp.
Referenced by WriteBinaryNode< ValueType >::StopPreOp().
|
private |
BlockWriter to sink.
Definition at line 166 of file write_binary.hpp.
Referenced by WriteBinaryNode< ValueType >::PreOp(), and WriteBinaryNode< ValueType >::StopPreOp().