|
MADNESS 0.10.1
|
a task that names an owner for every batch More...


Public Types | |
| typedef std::tuple< const std::vector< real_function_3d > & > | argtupleT |
| using | resultT = std::vector< real_function_3d > |
Public Member Functions | |
| resultT | allocator (World &world, const argtupleT &argtuple) const |
| resultT | operator() (const std::vector< real_function_3d > &v) const |
| deliberately cheap: this exercises the scheduling path, not the arithmetic | |
| long | owner_hint (const Batch &batch, const long nsubworld) const override |
| which subworld should run this batch; -1 leaves the choice to the queue | |
Public Member Functions inherited from madness::MacroTaskOperationBase | |
| MacroTaskOperationBase () | |
| virtual | ~MacroTaskOperationBase () |
| virtual bool | accumulates_own_output () const |
| virtual void | cleanup () |
| release whatever the task kept across its batches, called once the queue has run | |
| virtual bool | handles_own_data_movement () const |
| true if the task moves its operand coefficients into the subworld itself | |
Additional Inherited Members | |
Public Attributes inherited from madness::MacroTaskOperationBase | |
| Batch | batch |
| Cloud * | cloud_ptr =0 |
| std::string | name ="unknown_task" |
| std::shared_ptr< MacroTaskPartitioner > | partitioner =0 |
| World * | subworld_ptr =0 |
a task that names an owner for every batch
With every task owned and one subworld per rank the queue skips its central scheduler and each rank walks the queue running only the tasks it owns. Nothing else here declares owner_hint, so without this task that path is never executed.
| typedef std::tuple<const std::vector<real_function_3d> &> OwnedTask::argtupleT |
| using OwnedTask::resultT = std::vector<real_function_3d> |
References madness::nonlinear_vector_solver().
|
inline |
deliberately cheap: this exercises the scheduling path, not the arithmetic
References v.
which subworld should run this batch; -1 leaves the choice to the queue
Reads whatever assignment prepare_owner_assignment computed, so the two go together: one decides the mapping for the whole partition, this one applies it per batch.
Reimplemented from madness::MacroTaskOperationBase.
References madness::MacroTaskOperationBase::batch, madness::Batch::input, and madness::nonlinear_vector_solver().