|
MADNESS 0.10.1
|
#include <macrotaskq.h>

Classes | |
| struct | is_vector |
| struct | is_vector< std::vector< Q > > |
| class | MacroTaskInternal |
Public Member Functions | |
| MacroTask (World &world, taskT &task) | |
| constructor takes the task, but no arguments to the task | |
| MacroTask (World &world, taskT &task, const MacroTaskQFactory factory) | |
| constructor takes task and a taskq factory for customization, immediate execution | |
| MacroTask (World &world, taskT &task, std::shared_ptr< MacroTaskQ > taskq_ptr) | |
| constructor takes the task, and a taskq, execution is not immediate | |
| std::shared_ptr< MacroTaskQ > | get_taskq () const |
| template<typename ... Ts> | |
| resultT | operator() (const Ts &... args) |
| this mimicks the original call to the task functor, called from the universe | |
| MacroTask & | set_debug (const bool value) |
Private Types | |
| typedef taskT::argtupleT | argtupleT |
| template<typename Q , typename ResT > | |
| using | has_accumulate_locally_t = decltype(std::declval< Q & >().accumulate_locally(std::declval< World & >(), std::declval< const ResT & >())) |
| true if: task.accumulate_locally(subworld, result_subworld) | |
| template<typename Q > | |
| using | has_finalize_stage1_t = decltype(std::declval< Q & >().finalize_stage1(std::declval< World & >(), std::declval< World * >())) |
| true if: task.finalize_stage1(subworld, nodeworld) | |
| template<typename Q , typename ResT > | |
| using | has_finalize_stage2_t = decltype(std::declval< Q & >().finalize_stage2(std::declval< World & >(), std::declval< World * >(), std::declval< ResT & >())) |
| true if: task.finalize_stage2(subworld, nodeworld, universe_result) | |
| template<typename Q > | |
| using | has_prepare_owner_assignment_t = decltype(std::declval< Q & >().prepare_owner_assignment(std::declval< const MacroTaskPartitioner::partitionT & >(), 0L)) |
| true if: task.prepare_owner_assignment(partition, nsubworld) | |
| template<typename Q , typename ArgTuple > | |
| using | has_store_batches_t = decltype(std::declval< Q & >().store_batches(std::declval< World & >(), std::declval< World & >(), std::declval< Cloud & >(), std::declval< const ArgTuple & >(), 0L)) |
| true if: task.store_batches(world, subworld, cloud, argtuple, nsubworld) | |
| template<typename Q , typename VecT > | |
| using | has_sym_pipeline_advance_t = decltype(std::declval< Q & >().sym_pipeline_advance(std::declval< World & >(), std::declval< const VecT & >(), std::declval< const Batch_1D & >(), std::declval< const Batch_1D & >(), true)) |
| true if: task.sym_pipeline_advance(subworld, ket, next_col, next_row, has_next) | |
| template<typename Q > | |
| using | has_wants_node_local_reduction_t = decltype(std::declval< const Q & >().wants_node_local_reduction()) |
| true if: task.wants_node_local_reduction() | |
| using | partitionT = MacroTaskPartitioner::partitionT |
| typedef Cloud::recordlistT | recordlistT |
| typedef taskT::resultT | resultT |
Private Member Functions | |
| recordlistT | prepare_output_records (Cloud &cloud, resultT &result) |
| store pointers to the result WorldObject in the cloud and return the recordlist | |
Private Attributes | |
| bool | debug =false |
| bool | immediate_execution =false |
| taskT | task |
| std::shared_ptr< MacroTaskQ > | taskq_ptr |
| World & | world |
Static Private Attributes | |
| template<typename Q , typename ResT > | |
| static constexpr bool | has_accumulate_locally_v |
| template<typename Q > | |
| static constexpr bool | has_finalize_stage1_v |
| template<typename Q , typename ResT > | |
| static constexpr bool | has_finalize_stage2_v |
| template<typename Q > | |
| static constexpr bool | has_prepare_owner_assignment_v |
| template<typename Q , typename ArgTuple > | |
| static constexpr bool | has_store_batches_v |
| template<typename Q , typename VecT > | |
| static constexpr bool | has_sym_pipeline_advance_v |
| template<typename Q > | |
| static constexpr bool | has_wants_node_local_reduction_v |
|
private |
|
private |
true if: task.accumulate_locally(subworld, result_subworld)
|
private |
true if: task.finalize_stage1(subworld, nodeworld)
|
private |
true if: task.finalize_stage2(subworld, nodeworld, universe_result)
|
private |
true if: task.prepare_owner_assignment(partition, nsubworld)
|
private |
true if: task.store_batches(world, subworld, cloud, argtuple, nsubworld)
|
private |
true if: task.sym_pipeline_advance(subworld, ket, next_col, next_row, has_next)
|
private |
true if: task.wants_node_local_reduction()
|
private |
|
private |
|
private |
|
inlineexplicit |
constructor takes the task, but no arguments to the task
References madness::MacroTask< taskT >::immediate_execution.
|
inlineexplicit |
constructor takes task and a taskq factory for customization, immediate execution
References madness::MacroTask< taskT >::immediate_execution.
|
inlineexplicit |
constructor takes the task, and a taskq, execution is not immediate
References madness::MacroTask< taskT >::debug, madness::MacroTask< taskT >::immediate_execution, madness::nonlinear_vector_solver(), madness::MacroTaskInfo::to_cloud_storage_policy(), and madness::MacroTask< taskT >::world.
|
inline |
References madness::MacroTask< taskT >::taskq_ptr.
|
inline |
this mimicks the original call to the task functor, called from the universe
store all input to the cloud, create output Function<T,NDIM> in the universe, create the batched task and shove it into the taskq. Possibly execute the taskq.
References madness::MacroTask< taskT >::debug, madness::MacroTask< taskT >::immediate_execution, madness::nonlinear_vector_solver(), madness::MacroTask< taskT >::prepare_output_records(), madness::print(), madness::World::rank(), madness::World::size(), madness::MacroTask< taskT >::task, madness::MacroTask< taskT >::taskq_ptr, and madness::MacroTask< taskT >::world.
|
inlineprivate |
store pointers to the result WorldObject in the cloud and return the recordlist
References madness::MacroTask< taskT >::debug, madness::get_impl(), MADNESS_EXCEPTION, madness::nonlinear_vector_solver(), madness::print(), madness::Cloud::store(), v, and madness::MacroTask< taskT >::world.
Referenced by madness::MacroTask< taskT >::operator()().
|
inline |
References madness::MacroTask< taskT >::debug.
Referenced by madness::MacroTask< taskT >::MacroTask(), madness::MacroTask< taskT >::MacroTaskInternal::copy_operands_into_subworld(), madness::MacroTask< taskT >::operator()(), madness::MacroTask< taskT >::prepare_output_records(), madness::MacroTask< taskT >::MacroTaskInternal::run(), and madness::MacroTask< taskT >::set_debug().
|
staticconstexprprivate |
|
staticconstexprprivate |
|
staticconstexprprivate |
|
staticconstexprprivate |
|
staticconstexprprivate |
|
staticconstexprprivate |
|
staticconstexprprivate |
|
private |
Referenced by madness::MacroTask< taskT >::operator()().
|
private |
Referenced by madness::MacroTask< taskT >::get_taskq(), and madness::MacroTask< taskT >::operator()().
|
private |