|
MADNESS 0.10.1
|
Receiving end of the exchange finalize, living in the world the transfer rides on. More...
#include <exchangeoperator.h>


Public Types | |
| typedef FunctionImpl< T, NDIM > | implT |
| typedef FinalizeNodeRec< T, NDIM > | recT |
| Public Types inherited from madness::WorldObject< FinalizeReducer< T, NDIM > > | |
| typedef WorldObject< FinalizeReducer< T, NDIM > > | objT |
Public Member Functions | |
| FinalizeReducer (World &world) | |
| void | accumulate_chunk (const std::vector< recT > &recs) |
| void | set_targets (std::vector< implT * > dests, T beta) |
| point at the destinations for the next drain; local, called by every rank | |
| Public Member Functions inherited from madness::WorldObject< FinalizeReducer< T, NDIM > > | |
| WorldObject (const WorldObject &other) | |
| virtual | ~WorldObject () |
| WorldObject & | operator= (const WorldObject &)=delete |
| detail::task_result_type< memfnT >::futureT | send (ProcessID dest, memfnT memfn) const |
| detail::task_result_type< memfnT >::futureT | task (ProcessID dest, memfnT memfn, const TaskAttributes &attr=TaskAttributes()) const |
| Sends task to derived class method returnT (this->*memfn)(). | |
| Public Member Functions inherited from madness::WorldObjectBase | |
| virtual | ~WorldObjectBase () |
| World & | get_world () const |
| World & | get_world_noexcept () const noexcept |
| Get the world to which this object belongs, without risking a throw. | |
| const uniqueidT & | id () const |
| Returns the globally unique object ID. | |
| bool | world_is_alive () const noexcept |
| Reports whether the world to which this object belongs still exists. | |
Private Attributes | |
| T | beta_ = T(1.0) |
| std::vector< implT * > | dests_ |
Additional Inherited Members | |
| Protected Member Functions inherited from madness::WorldObject< FinalizeReducer< T, NDIM > > | |
| void | process_pending () |
| To be called from derived constructor to process pending messages. | |
| Protected Member Functions inherited from madness::WorldObjectBase | |
| WorldObjectBase (const WorldObjectBase &other) | |
| Copy constructor; produces an unregistered object. | |
| WorldObjectBase (World &w) | |
| Construct a new WorldObjectBase. | |
| World & | get_world_unchecked () const noexcept |
| Unchecked access to the memoized world reference. | |
| template<typename DerivedT> | |
| void | register_self (DerivedT *this_ptr) |
| Registers this object with its world, making it globally addressable. | |
Receiving end of the exchange finalize, living in the world the transfer rides on.
Sources push bulk chunks here with task(), so deserializing and accumulating happens on a worker and never on the communication thread. The arithmetic is the same as FunctionNode::gaxpy_inplace; the accessor write lock is what serializes two senders that reach the same key at once.
| typedef FunctionImpl<T, NDIM> madness::FinalizeReducer< T, NDIM >::implT |
| typedef FinalizeNodeRec<T, NDIM> madness::FinalizeReducer< T, NDIM >::recT |
|
inlineexplicit |
|
inline |
References beta_, dests_, and MADNESS_CHECK_THROW.
Referenced by madness::coalesced_gaxpy().
|
inline |
point at the destinations for the next drain; local, called by every rank
References beta, beta_, and dests_.
Referenced by madness::coalesced_gaxpy().
|
private |
Referenced by accumulate_chunk(), and set_targets().
|
private |
Referenced by accumulate_chunk(), and set_targets().