ttg 1.0.0
Template Task Graph (TTG): flowgraph-based programming model for high-performance distributed-memory algorithms
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Static Protected Attributes | List of all members
ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space > Class Template Reference

#include <ttg.h>

Inheritance diagram for ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >:
[legend]
Collaboration diagram for ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >:
[legend]

Public Types

using ttT = TT
 
using key_type = keyT
 
using input_terminals_type = ttg::detail::input_terminals_tuple_t< keyT, input_tuple_type >
 
using input_edges_type = ttg::detail::edges_tuple_t< keyT, ttg::meta::decayed_typelist_t< input_tuple_type > >
 
using input_values_full_tuple_type = ttg::meta::void_to_Void_tuple_t< ttg::meta::decayed_typelist_t< actual_input_tuple_type > >
 
using input_refs_full_tuple_type = ttg::meta::add_glvalue_reference_tuple_t< ttg::meta::void_to_Void_tuple_t< actual_input_tuple_type > >
 
using input_args_type = actual_input_tuple_type
 
using input_values_tuple_type = ttg::meta::drop_void_t< ttg::meta::decayed_typelist_t< input_tuple_type > >
 
using input_refs_tuple_type = ttg::meta::drop_void_t< ttg::meta::add_glvalue_reference_tuple_t< input_tuple_type > >
 
using output_terminals_type = output_terminalsT
 
using output_edges_type = typename ttg::terminals_to_edges< output_terminalsT >::type
 

Public Member Functions

ttg::World get_world () const override final
 
template<std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>>
std::enable_if_t< key_is_void, voidset_argstream_size (std::size_t size)
 
template<std::size_t i>
void set_static_argstream_size (std::size_t size)
 
template<std::size_t i, typename Key = keyT, bool key_is_void = ttg::meta::is_void_v<Key>>
std::enable_if_t<!key_is_void, voidset_argstream_size (const Key &key, std::size_t size)
 
template<std::size_t i, typename Key = keyT, bool key_is_void = ttg::meta::is_void_v<Key>>
std::enable_if_t<!key_is_void, voidfinalize_argstream (const Key &key)
 finalizes stream for input i
 
template<std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>>
std::enable_if_t< key_is_void, voidfinalize_argstream ()
 finalizes stream for input i
 
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
 TT (const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())
 
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
 TT (const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())
 
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
 TT (const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())
 
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
 TT (const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())
 
virtual ~TT ()
 
template<std::size_t i, typename Reducer >
void set_input_reducer (Reducer &&reducer)
 
template<std::size_t i, typename Reducer >
void set_input_reducer (Reducer &&reducer, std::size_t size)
 
template<typename Keymap >
void set_keymap (Keymap &&km)
 
auto get_priomap (void) const
 
template<typename Priomap >
void set_priomap (Priomap &&pm)
 
template<typename Constraint >
void add_constraint (Constraint &&c)
 
template<typename Constraint , typename Mapper >
void add_constraint (std::shared_ptr< Constraint > c, Mapper &&map)
 
template<typename Constraint , typename Mapper >
void add_constraint (Constraint c, Mapper &&map)
 
void make_executable () override
 implementation of TTBase::make_executable()
 
void fence () override
 Waits for the entire TTG associated with this TT to be completed (collective)
 
template<std::size_t i>
std::tuple_element_t< i, input_terminals_type > * in ()
 Returns pointer to input terminal i to facilitate connection — terminal cannot be copied, moved or assigned.
 
template<std::size_t i>
std::tuple_element_t< i, output_terminalsT > * out ()
 Returns pointer to output terminal for purpose of connection — terminal cannot be copied, moved or assigned.
 
template<typename Key = keyT>
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, voidinvoke (const Key &key, const input_values_tuple_type &args)
 Manual injection of a task with all input arguments specified as a tuple.
 
template<typename Key = keyT>
std::enable_if_t< ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, voidinvoke (const input_values_tuple_type &args)
 Manual injection of a key-free task with all input arguments specified as a tuple.
 
template<typename Key = keyT>
std::enable_if_t<!ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, voidinvoke (const Key &key)
 Manual injection of a task that has no arguments.
 
template<typename Key = keyT>
std::enable_if_t< ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, voidinvoke ()
 Manual injection of a task that has no key or arguments.
 
void invoke () override
 
void set_defer_writer (bool _)
 
bool get_defer_writer (bool _)
 
const decltype(keymap) & get_keymap () const
 
template<typename Key >
std::enable_if_t<!ttg::meta::is_void_v< Key >, intowner (const Key &key) const
 
template<typename Key >
std::enable_if_t< ttg::meta::is_void_v< Key >, intowner () const
 
- Public Member Functions inherited from ttg::TTBase
virtual ~TTBase ()=default
 
bool set_trace_instance (bool value)
 
bool tracing () const
 
template<typename T , typename... Ts>
void trace (const T &t, const Ts &...ts)
 Like ttg::trace(), but only produces tracing output if this->tracing()==true
 
bool set_lazy_pull_instance (bool value)
 
bool is_lazy_pull ()
 
std::optional< std::reference_wrapper< const TTBase > > ttg () const
 
const TTBasettg_ptr () const
 
bool is_ttg () const
 
void set_name (const std::string &name)
 Sets the name of this operation.
 
const std::string & get_name () const
 Gets the name of this operation.
 
std::string get_class_name () const
 Gets the demangled class name (uses RTTI)
 
const std::vector< TerminalBase * > & get_inputs () const
 Returns the vector of input terminals.
 
const std::vector< TerminalBase * > & get_outputs () const
 Returns the vector of output terminals.
 
ttg::TerminalBasein (size_t i)
 Returns a pointer to the i'th input terminal.
 
ttg::TerminalBaseout (size_t i)
 Returns a pointer to the i'th output terminal.
 
template<std::size_t i>
ttg::TerminalBasein ()
 Returns a pointer to the i'th input terminal ... to make API consistent with TT.
 
template<std::size_t i>
ttg::TerminalBaseout ()
 Returns a pointer to the i'th output terminal ... to make API consistent with TT.
 
auto get_instance_id () const
 
virtual void release ()
 
bool is_executable () const
 

Static Public Member Functions

static constexpr bool derived_has_cuda_op ()
 
static constexpr bool derived_has_hip_op ()
 
static constexpr bool derived_has_level_zero_op ()
 
static constexpr bool derived_has_device_op ()
 
- Static Public Member Functions inherited from ttg::TTBase
static bool set_trace_all (bool value)
 
static bool set_lazy_pull (bool value)
 
static const std::vector< TerminalBase * > * get_outputs_tls_ptr ()
 Returns this thread's pointer to the vector of output terminals.
 

Protected Types

using worldobjT = ::madness::WorldObject< ttT >
 

Protected Member Functions

const autoget_output_terminals () const
 
template<typename terminalT , std::size_t i, typename Key >
void invoke_pull_terminal (terminalT &in, const Key &key, TTArgs *args)
 
template<std::size_t i, typename Key >
void get_terminal_data (const int owner, const Key &key)
 
template<std::size_t... IS, typename Key = keyT>
void invoke_pull_terminals (std::index_sequence< IS... >, const Key &key, TTArgs *args)
 
template<std::size_t i, typename Key , typename Value >
void set_arg (const Key &key, Value &&value)
 
template<std::size_t i, typename Key , typename Value >
std::enable_if_t<!ttg::meta::is_void_v< Key > &&std::is_void_v< Value >, voidset_arg (const Key &key)
 
template<std::size_t i, typename Key = keyT, typename Value >
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, voidset_arg (Value &&value)
 
template<std::size_t i, typename Key = keyT, typename Value >
std::enable_if_t< ttg::meta::is_void_v< Key > &&std::is_void_v< Value >, voidset_arg ()
 
template<typename Key , typename... Ts, size_t... Is, size_t... Js>
std::enable_if_t<!ttg::meta::is_void_v< Key >, voidset_args (std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)
 
template<typename Key , typename... Ts, size_t... Is>
std::enable_if_t<!ttg::meta::is_void_v< Key >, voidset_args (std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args)
 
template<typename Key = keyT, typename... Ts, size_t... Is, size_t... Js>
std::enable_if_t< ttg::meta::is_void_v< Key >, voidset_args (std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)
 
template<typename Key = keyT, typename... Ts, size_t... Is>
std::enable_if_t< ttg::meta::is_void_v< Key >, voidset_args (std::index_sequence< Is... > is, const std::tuple< Ts... > &args)
 
- Protected Member Functions inherited from ttg::TTBase
void set_input (size_t i, TerminalBase *t)
 
void set_output (size_t i, TerminalBase *t)
 
template<bool out, typename terminalT , std::size_t i, typename setfuncT >
void register_terminal (terminalT &term, const std::string &name, const setfuncT setfunc)
 
template<bool out, std::size_t... IS, typename terminalsT , typename namesT , typename setfuncT >
void register_terminals (std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)
 
template<typename terminalsT , typename namesT >
void register_input_terminals (terminalsT &terms, const namesT &names)
 
template<typename terminalsT , typename namesT >
void register_output_terminals (terminalsT &terms, const namesT &names)
 
template<std::size_t... IS, typename terminalsT , typename setfuncT >
void set_terminals (std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)
 
template<typename terminalsT , typename setfuncT >
void set_terminals (const terminalsT &terms, const setfuncT setfunc)
 
 TTBase (TTBase &&other)
 
TTBaseoperator= (TTBase &&other)
 
 TTBase (const std::string &name, size_t numins, size_t numouts)
 
void set_outputs_tls_ptr ()
 
void set_outputs_tls_ptr (const std::vector< TerminalBase * > *ptr)
 

Static Protected Member Functions

template<std::size_t i, typename resultT , typename InTuple >
static resultT get (InTuple &&intuple)
 
template<std::size_t i, typename InTuple >
static auto & get (InTuple &&intuple)
 
- Static Protected Member Functions inherited from ttg::TTBase
static const std::vector< TerminalBase * > *& outputs_tls_ptr_accessor ()
 

Static Protected Attributes

static constexpr int numinedges = std::tuple_size_v<input_tuple_type>
 
static constexpr int numins = std::tuple_size_v<actual_input_tuple_type>
 
static constexpr int numouts = std::tuple_size_v<output_terminalsT>
 
struct { 
 
   uint64_t   key_hash = 0 
 
   size_t   call_depth = 0 
 
threaddata 
 

Detailed Description

template<typename keyT, typename output_terminalsT, typename derivedT, typename input_valueTs, ttg::ExecutionSpace Space>
class ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >

CRTP base for MADNESS-based TT classes

Template Parameters
keyTa Key type
output_terminalsT
derivedT
input_valueTsttg::typelist of value types (no references; pointers are OK) encoding the types of input values flowing into this TT; a const type indicates nonmutating (read-only) use, nonconst type indicates mutating use (e.g. the corresponding input can be used as scratch, moved-from, etc.)

Definition at line 195 of file ttg.h.

Member Typedef Documentation

◆ input_args_type

Definition at line 269 of file ttg.h.

◆ input_edges_type

Definition at line 259 of file ttg.h.

◆ input_refs_full_tuple_type

Definition at line 266 of file ttg.h.

◆ input_refs_tuple_type

Definition at line 272 of file ttg.h.

◆ input_terminals_type

Definition at line 258 of file ttg.h.

◆ input_values_full_tuple_type

Definition at line 264 of file ttg.h.

◆ input_values_tuple_type

Definition at line 271 of file ttg.h.

◆ key_type

Definition at line 206 of file ttg.h.

◆ output_edges_type

Definition at line 276 of file ttg.h.

◆ output_terminals_type

Definition at line 275 of file ttg.h.

◆ ttT

Definition at line 205 of file ttg.h.

◆ worldobjT

Definition at line 245 of file ttg.h.

Constructor & Destructor Documentation

◆ TT() [1/4]

template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::TT ( const std::string &  name,
const std::vector< std::string > &  innames,
const std::vector< std::string > &  outnames,
ttg::World  world,
keymapT &&  keymap_ = keymapT(),
priomapT &&  priomap_ = priomapT() 
)
inline

Definition at line 1083 of file ttg.h.

Here is the call graph for this function:

◆ TT() [2/4]

template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::TT ( const std::string &  name,
const std::vector< std::string > &  innames,
const std::vector< std::string > &  outnames,
keymapT &&  keymap = keymapT(ttg::default_execution_context()),
priomapT &&  priomap = priomapT() 
)
inline

Definition at line 1110 of file ttg.h.

◆ TT() [3/4]

template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::TT ( const input_edges_type inedges,
const output_edges_type outedges,
const std::string &  name,
const std::vector< std::string > &  innames,
const std::vector< std::string > &  outnames,
ttg::World  world,
keymapT &&  keymap_ = keymapT(),
priomapT &&  priomap_ = priomapT() 
)
inline

Definition at line 1117 of file ttg.h.

Here is the call graph for this function:

◆ TT() [4/4]

template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::TT ( const input_edges_type inedges,
const output_edges_type outedges,
const std::string &  name,
const std::vector< std::string > &  innames,
const std::vector< std::string > &  outnames,
keymapT &&  keymap = keymapT(ttg::default_execution_context()),
priomapT &&  priomap = priomapT() 
)
inline

Definition at line 1148 of file ttg.h.

◆ ~TT()

Definition at line 1155 of file ttg.h.

Here is the call graph for this function:

Member Function Documentation

◆ add_constraint() [1/3]

add a constraint the constraint must provide a valid override of check_key(key)

Definition at line 1220 of file ttg.h.

◆ add_constraint() [2/3]

Definition at line 1230 of file ttg.h.

◆ add_constraint() [3/3]

Definition at line 1225 of file ttg.h.

◆ derived_has_cuda_op()

Returns
true if derivedT::have_cuda_op exists and is defined to true

Definition at line 225 of file ttg.h.

◆ derived_has_device_op()

Returns
true if the TT supports device execution

Definition at line 240 of file ttg.h.

◆ derived_has_hip_op()

Returns
true if derivedT::have_hip_op exists and is defined to true

Definition at line 230 of file ttg.h.

◆ derived_has_level_zero_op()

Returns
true if derivedT::have_hip_op exists and is defined to true

Definition at line 235 of file ttg.h.

◆ fence()

Waits for the entire TTG associated with this TT to be completed (collective)

This is a collective operation and must be invoked by the main thread on all processes. In the MADNESS implementation it fences the entire world associated with the TTG. If you wish to fence TTGs independently, then give each its own world.

Implements ttg::TTBase.

Definition at line 1246 of file ttg.h.

Here is the call graph for this function:

◆ finalize_argstream() [1/2]

template<std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>>
std::enable_if_t< key_is_void, void > ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::finalize_argstream ( )
inline

finalizes stream for input i

Definition at line 930 of file ttg.h.

Here is the call graph for this function:

◆ finalize_argstream() [2/2]

template<std::size_t i, typename Key = keyT, bool key_is_void = ttg::meta::is_void_v<Key>>
std::enable_if_t<!key_is_void, void > ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::finalize_argstream ( const Key key)
inline

finalizes stream for input i

Definition at line 881 of file ttg.h.

Here is the call graph for this function:

◆ get() [1/2]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs , ttg::ExecutionSpace Space>
template<std::size_t i, typename resultT , typename InTuple >
static resultT ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::get ( InTuple &&  intuple)
inlinestaticprotected

Definition at line 280 of file ttg.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get() [2/2]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs , ttg::ExecutionSpace Space>
template<std::size_t i, typename InTuple >
static auto & ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::get ( InTuple &&  intuple)
inlinestaticprotected

Definition at line 284 of file ttg.h.

Here is the call graph for this function:

◆ get_defer_writer()

Definition at line 1322 of file ttg.h.

◆ get_keymap()

keymap accessor

Returns
the keymap

Definition at line 1326 of file ttg.h.

◆ get_output_terminals()

Definition at line 293 of file ttg.h.

◆ get_priomap()

Definition at line 1207 of file ttg.h.

◆ get_terminal_data()

template<std::size_t i, typename Key >
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::get_terminal_data ( const int  owner,
const Key key 
)
inlineprotected

Definition at line 485 of file ttg.h.

Here is the call graph for this function:

◆ get_world()

Returns
World in which this lives

Implements ttg::TTBase.

Definition at line 222 of file ttg.h.

◆ in()

Returns pointer to input terminal i to facilitate connection — terminal cannot be copied, moved or assigned.

Definition at line 1250 of file ttg.h.

Here is the caller graph for this function:

◆ invoke() [1/5]

Manual injection of a task that has no key or arguments.

Reimplemented from ttg::TTBase.

Definition at line 1306 of file ttg.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ invoke() [2/5]

Use this to create a task that takes no data "manually"

Warning
calls ttg::abort() if the derived class TT did not override this; only makes sense to override this if the derived TT uses void for key or data

Reimplemented from ttg::TTBase.

Definition at line 1313 of file ttg.h.

Here is the call graph for this function:

◆ invoke() [3/5]

Manual injection of a key-free task with all input arguments specified as a tuple.

Definition at line 1279 of file ttg.h.

Here is the call graph for this function:

◆ invoke() [4/5]

Manual injection of a task that has no arguments.

Definition at line 1291 of file ttg.h.

Here is the call graph for this function:

◆ invoke() [5/5]

Manual injection of a task with all input arguments specified as a tuple.

Definition at line 1262 of file ttg.h.

Here is the call graph for this function:

◆ invoke_pull_terminal()

template<typename terminalT , std::size_t i, typename Key >
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::invoke_pull_terminal ( terminalT in,
const Key key,
TTArgs *  args 
)
inlineprotected

Definition at line 441 of file ttg.h.

Here is the call graph for this function:

◆ invoke_pull_terminals()

template<std::size_t... IS, typename Key = keyT>
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::invoke_pull_terminals ( std::index_sequence< IS... >  ,
const Key key,
TTArgs *  args 
)
inlineprotected

Definition at line 503 of file ttg.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_executable()

implementation of TTBase::make_executable()

Implements ttg::TTBase.

Definition at line 1235 of file ttg.h.

Here is the call graph for this function:

◆ out()

template<std::size_t i>
std::tuple_element_t< i, output_terminalsT > * ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::out ( )
inline

Returns pointer to output terminal for purpose of connection — terminal cannot be copied, moved or assigned.

Definition at line 1256 of file ttg.h.

◆ owner() [1/2]

computes the owner of void key

Returns
the owner of void key

Definition at line 1339 of file ttg.h.

Here is the caller graph for this function:

◆ owner() [2/2]

computes the owner of key key

Parameters
[in]keythe key
Returns
the owner of key

Definition at line 1332 of file ttg.h.

◆ set_arg() [1/4]

template<std::size_t i, typename Key = keyT, typename Value >
std::enable_if_t< ttg::meta::is_void_v< Key > &&std::is_void_v< Value >, void > ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_arg ( )
inlineprotected

Definition at line 695 of file ttg.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_arg() [2/4]

template<std::size_t i, typename Key , typename Value >
std::enable_if_t<!ttg::meta::is_void_v< Key > &&std::is_void_v< Value >, void > ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_arg ( const Key key)
inlineprotected

Definition at line 683 of file ttg.h.

Here is the call graph for this function:

◆ set_arg() [3/4]

template<std::size_t i, typename Key , typename Value >
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_arg ( const Key key,
Value &&  value 
)
inlineprotected

Definition at line 521 of file ttg.h.

Here is the call graph for this function:

◆ set_arg() [4/4]

template<std::size_t i, typename Key = keyT, typename Value >
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_arg ( Value &&  value)
inlineprotected

Definition at line 689 of file ttg.h.

Here is the call graph for this function:

◆ set_args() [1/4]

template<typename Key , typename... Ts, size_t... Is>
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_args ( std::index_sequence< Is... >  is,
const Key key,
const std::tuple< Ts... > &  args 
)
inlineprotected

Definition at line 714 of file ttg.h.

Here is the call graph for this function:

◆ set_args() [2/4]

template<typename Key = keyT, typename... Ts, size_t... Is>
std::enable_if_t< ttg::meta::is_void_v< Key >, void > ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_args ( std::index_sequence< Is... >  is,
const std::tuple< Ts... > &  args 
)
inlineprotected

Definition at line 734 of file ttg.h.

Here is the call graph for this function:

◆ set_args() [3/4]

template<typename Key , typename... Ts, size_t... Is, size_t... Js>
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_args ( std::index_sequence< Is... >  ,
std::index_sequence< Js... >  ,
const Key key,
const std::tuple< Ts... > &  args 
)
inlineprotected

Definition at line 703 of file ttg.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_args() [4/4]

template<typename Key = keyT, typename... Ts, size_t... Is, size_t... Js>
std::enable_if_t< ttg::meta::is_void_v< Key >, void > ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_args ( std::index_sequence< Is... >  ,
std::index_sequence< Js... >  ,
const std::tuple< Ts... > &  args 
)
inlineprotected

Definition at line 723 of file ttg.h.

Here is the call graph for this function:

◆ set_argstream_size() [1/2]

template<std::size_t i, typename Key = keyT, bool key_is_void = ttg::meta::is_void_v<Key>>
std::enable_if_t<!key_is_void, void > ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_argstream_size ( const Key key,
std::size_t  size 
)
inline

sets stream size for input i and key key

Template Parameters
<i>index of the input terminal to set
Parameters
keythe task identifier
sizepositive integer that specifies the stream size

Definition at line 825 of file ttg.h.

Here is the call graph for this function:

◆ set_argstream_size() [2/2]

template<std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>>
std::enable_if_t< key_is_void, void > ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_argstream_size ( std::size_t  size)
inline

sets stream size for input i

Parameters
sizepositive integer that specifies the stream size

Definition at line 743 of file ttg.h.

Here is the call graph for this function:

◆ set_defer_writer()

Definition at line 1320 of file ttg.h.

◆ set_input_reducer() [1/2]

define the reducer function to be called when additional inputs are received on a streaming terminal

Template Parameters
<i>the index of the input terminal that is used as a streaming terminal
Parameters
[in]reducera function of prototype void(input_type<i> &a, const input_type<i> &b) that function should aggregate b into a

Definition at line 1184 of file ttg.h.

Here is the call graph for this function:

◆ set_input_reducer() [2/2]

template<std::size_t i, typename Reducer >
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_input_reducer ( Reducer &&  reducer,
std::size_t  size 
)
inline

define the reducer function to be called when additional inputs are received on a streaming terminal

Template Parameters
<i>the index of the input terminal that is used as a streaming terminal
Parameters
[in]reducera function of prototype void(input_type<i> &a, const input_type<i> &b) that function should aggregate b into a
[in]sizethe default number of inputs that are received in this streaming terminal, for each task

Definition at line 1197 of file ttg.h.

Here is the call graph for this function:

◆ set_keymap()

Definition at line 1203 of file ttg.h.

Here is the call graph for this function:

◆ set_priomap()

Set the priority map, mapping a Key to an integral value. Higher values indicate higher priority. The default priority is 0, higher values are treated as high priority tasks in the MADNESS backend.

Definition at line 1213 of file ttg.h.

Here is the call graph for this function:

◆ set_static_argstream_size()

template<std::size_t i>
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_static_argstream_size ( std::size_t  size)
inline

Definition at line 804 of file ttg.h.

Here is the call graph for this function:

Member Data Documentation

◆ call_depth

Definition at line 254 of file ttg.h.

◆ key_hash

Definition at line 253 of file ttg.h.

◆ numinedges

constexpr int ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::numinedges = std::tuple_size_v<input_tuple_type>
staticconstexprprotected

Definition at line 247 of file ttg.h.

◆ numins

constexpr int ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::numins = std::tuple_size_v<actual_input_tuple_type>
staticconstexprprotected

Definition at line 248 of file ttg.h.

◆ numouts

Definition at line 249 of file ttg.h.

◆ [struct]

__thread struct { ... } ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::threaddata

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