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 | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | List of all members
ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space > Class Template Reference

#include <ttg.h>

Inheritance diagram for ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >:
[legend]
Collaboration diagram for ttg_parsec::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_args_type = actual_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_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>
void set_static_argstream_size (std::size_t size)
 
template<std::size_t i, typename Key >
std::enable_if_t<!ttg::meta::is_void_v< Key >, voidset_argstream_size (const Key &key, std::size_t size)
 
template<std::size_t i, typename Key = keyT>
std::enable_if_t< ttg::meta::is_void_v< Key >, voidset_argstream_size (std::size_t size)
 
template<std::size_t i, typename Key >
std::enable_if_t<!ttg::meta::is_void_v< Key >, 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 Value >
void copy_mark_pushout (const Value &value)
 
template<std::size_t i, typename Value , typename RemoteCheckFn >
std::enable_if_t<!std::is_void_v< std::decay_t< Value > >, voiddo_prepare_send (const Value &value, RemoteCheckFn &&remote_check)
 
template<std::size_t i, typename Key , typename Value >
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, voidprepare_send (const ttg::span< const Key > &keylist, const 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< std::decay_t< Value > >, voidprepare_send (const Value &value)
 
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 ()
 
void print_incomplete_tasks ()
 
virtual void release () override
 
void do_release ()
 
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<std::size_t i>
std::tuple_element_t< i, input_terminals_type > * in ()
 
template<std::size_t i>
std::tuple_element_t< i, output_terminalsT > * out ()
 
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)
 
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)
 
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)
 
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 ()
 
void invoke () override
 
template<typename Key = keyT, typename Arg , typename... Args>
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, voidinvoke (const Key &key, Arg &&arg, Args &&... args)
 
void set_defer_writer (bool value)
 
bool get_defer_writer (bool value)
 
void make_executable () override
 Marks this executable.
 
const decltype(keymap) & get_keymap () const
 
template<typename Keymap >
void set_keymap (Keymap &&km)
 keymap setter
 
const decltype(priomap) & get_priomap () const
 
template<typename Priomap >
void set_priomap (Priomap &&pm)
 
template<typename Devicemap >
void set_devicemap (Devicemap &&dm)
 
auto get_devicemap ()
 
template<typename Constraint >
void add_constraint (std::shared_ptr< Constraint > c)
 
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 register_static_op_function (void)
 
- 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
 
bool is_executable () const
 

Static Public Member Functions

template<typename DerivedT = derivedT>
static constexpr bool derived_has_cuda_op ()
 
template<typename DerivedT = derivedT>
static constexpr bool derived_has_hip_op ()
 
template<typename DerivedT = derivedT>
static constexpr bool derived_has_level_zero_op ()
 
template<typename DerivedT = derivedT>
static constexpr bool derived_has_device_op ()
 
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 void ht_iter_cb (void *item, void *cb_data)
 
- 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.
 

Static Public Attributes

static constexpr int numinvals
 
static constexpr const ttg::Runtime runtime = ttg::Runtime::PaRSEC
 

Protected Member Functions

const autoget_output_terminals () const
 
template<typename T >
uint64_t unpack (T &obj, void *_bytes, uint64_t pos)
 
template<typename T >
uint64_t pack (T &obj, void *bytes, uint64_t pos, detail::ttg_data_copy_t *copy=nullptr)
 
parsec_thread_mempool_tget_task_mempool (void)
 
template<size_t i, typename valueT >
void set_arg_from_msg_keylist (ttg::span< keyT > &&keylist, detail::ttg_data_copy_t *copy)
 
template<std::size_t i>
void set_arg_from_msg (void *data, std::size_t size)
 
template<std::size_t i>
void finalize_argstream_from_msg (void *data, std::size_t size)
 
template<std::size_t i>
void argstream_set_size_from_msg (void *data, std::size_t size)
 
template<std::size_t i>
void get_from_pull_msg (void *data, std::size_t size)
 
template<std::size_t i, typename Key , typename Value >
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, voidset_arg_local (const Key &key, 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< std::decay_t< Value > >, voidset_arg_local (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< std::decay_t< Value > >, voidset_arg_local (const Key &key, const 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< std::decay_t< Value > >, voidset_arg_local (const 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< std::decay_t< Value > >, voidset_arg_local (std::shared_ptr< const Value > &valueptr)
 
template<typename Key >
task_tcreate_new_task (const Key &key)
 
template<std::size_t i>
detail::reducer_task_tcreate_new_reducer_task (task_t *task, bool is_first)
 
template<std::size_t i, typename Key , typename Value >
void set_arg_local_impl (const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr, parsec_task_t **task_ring=nullptr)
 
bool check_constraints (task_t *task)
 
template<typename Key = keyT>
std::enable_if_t< ttg::meta::is_void_v< Key >, voidrelease_constraint (std::size_t cid)
 
template<typename Key = keyT>
std::enable_if_t<!ttg::meta::is_void_v< Key >, voidrelease_constraint (std::size_t cid, const std::span< Key > &keys)
 
void release_task (task_t *task, parsec_task_t **task_ring=nullptr)
 
template<std::size_t i, typename Key , typename Value >
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, voidset_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< std::decay_t< Value > >, voidset_arg (Value &&value)
 
template<std::size_t i, typename Key = keyT>
std::enable_if_t< ttg::meta::is_void_v< Key >, voidset_arg ()
 
template<std::size_t i, typename Key >
std::enable_if_t<!ttg::meta::is_void_v< Key >, voidset_arg (const Key &key)
 
template<typename Value , typename Key >
bool can_inline_data (Value *value_ptr, detail::ttg_data_copy_t *copy, const Key &key, std::size_t num_keys)
 
template<std::size_t i, typename Key , typename Value >
void set_arg_impl (const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr)
 
template<int i, typename Iterator , typename Value >
void broadcast_arg_local (Iterator &&begin, Iterator &&end, const 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< std::decay_t< Value > >, voidbroadcast_arg (const ttg::span< const Key > &keylist, const Value &value)
 
template<typename Key , typename... Ts, size_t... Is, size_t... Js>
std::enable_if_t< ttg::meta::is_none_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_none_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

static void static_set_arg (void *data, std::size_t size, ttg::TTBase *bop)
 
- Static Protected Member Functions inherited from ttg::TTBase
static const std::vector< TerminalBase * > *& outputs_tls_ptr_accessor ()
 

Detailed Description

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

Definition at line 1208 of file ttg.h.

Member Typedef Documentation

◆ input_args_type

Definition at line 1275 of file ttg.h.

◆ input_edges_type

Definition at line 1276 of file ttg.h.

◆ input_refs_full_tuple_type

Definition at line 1280 of file ttg.h.

◆ input_refs_tuple_type

Definition at line 1283 of file ttg.h.

◆ input_terminals_type

Definition at line 1274 of file ttg.h.

◆ input_values_full_tuple_type

Definition at line 1278 of file ttg.h.

◆ input_values_tuple_type

Definition at line 1282 of file ttg.h.

◆ key_type

Definition at line 1273 of file ttg.h.

◆ output_edges_type

Definition at line 1290 of file ttg.h.

◆ output_terminals_type

Definition at line 1289 of file ttg.h.

◆ ttT

Definition at line 1272 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_parsec::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 3955 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_parsec::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 4110 of file ttg.h.

◆ TT() [3/4]

template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
ttg_parsec::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 4117 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_parsec::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 4130 of file ttg.h.

◆ ~TT()

Definition at line 4137 of file ttg.h.

Here is the call graph for this function:

Member Function Documentation

◆ add_constraint() [1/4]

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

Definition at line 4495 of file ttg.h.

Here is the call graph for this function:

◆ add_constraint() [2/4]

add a shared constraint the constraint must provide a valid override of check_key(key, map(key)) ths overload can be used to provide different key mapping functions for each TT

Definition at line 4522 of file ttg.h.

Here is the call graph for this function:

◆ add_constraint() [3/4]

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

Definition at line 4479 of file ttg.h.

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

◆ add_constraint() [4/4]

add a shared constraint the constraint must provide a valid override of check_key(key, map(key)) ths overload can be used to provide different key mapping functions for each TT

Definition at line 4504 of file ttg.h.

Here is the call graph for this function:

◆ argstream_set_size_from_msg()

template<std::size_t i>
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::argstream_set_size_from_msg ( void data,
std::size_t  size 
)
inlineprotected

Definition at line 2324 of file ttg.h.

Here is the call graph for this function:

◆ broadcast_arg()

template<std::size_t i, typename Key , typename Value >
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::broadcast_arg ( const ttg::span< const Key > &  keylist,
const Value value 
)
inlineprotected

pack the registration handles memory layout: [<lreg_size, lreg, lreg_fn>, ...] NOTE: we need to pack these for every receiver to ensure correct ref-counting of the registration

Definition at line 3052 of file ttg.h.

Here is the call graph for this function:

◆ broadcast_arg_local()

template<int i, typename Iterator , typename Value >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::broadcast_arg_local ( Iterator &&  begin,
Iterator &&  end,
const Value value 
)
inlineprotected

Definition at line 3022 of file ttg.h.

Here is the call graph for this function:

◆ can_inline_data()

template<typename Value , typename Key >
bool ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::can_inline_data ( Value value_ptr,
detail::ttg_data_copy_t copy,
const Key key,
std::size_t  num_keys 
)
inlineprotected

Definition at line 2801 of file ttg.h.

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

◆ check_constraints()

Definition at line 2648 of file ttg.h.

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

◆ copy_mark_pushout()

Definition at line 3527 of file ttg.h.

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

◆ create_new_reducer_task()

template<std::size_t i>
detail::reducer_task_t * ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::create_new_reducer_task ( task_t task,
bool  is_first 
)
inlineprotected

Definition at line 2418 of file ttg.h.

Here is the call graph for this function:

◆ create_new_task()

Definition at line 2391 of file ttg.h.

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

◆ derived_has_cuda_op()

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

Definition at line 1244 of file ttg.h.

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

◆ derived_has_device_op()

Returns
true if the TT supports device execution

Definition at line 1262 of file ttg.h.

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

◆ derived_has_hip_op()

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

Definition at line 1250 of file ttg.h.

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

◆ derived_has_level_zero_op()

template<typename DerivedT = derivedT>
static constexpr bool ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::derived_has_level_zero_op ( )
inlinestaticconstexpr
Returns
true if derivedT::have_hip_op exists and is defined to true

Definition at line 1256 of file ttg.h.

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

◆ do_prepare_send()

template<std::size_t i, typename Value , typename RemoteCheckFn >
std::enable_if_t<!std::is_void_v< std::decay_t< Value > >, void > ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::do_prepare_send ( const Value value,
RemoteCheckFn &&  remote_check 
)
inline

Definition at line 3569 of file ttg.h.

Here is the call graph for this function:

◆ do_release()

Definition at line 4168 of file ttg.h.

Here is the call graph for this function:
Here is the caller 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_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::finalize_argstream ( )
inline

finalizes stream for input i

Definition at line 3479 of file ttg.h.

Here is the call graph for this function:

◆ finalize_argstream() [2/2]

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

finalizes stream for input i

Definition at line 3427 of file ttg.h.

Here is the call graph for this function:

◆ finalize_argstream_from_msg()

template<std::size_t i>
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::finalize_argstream_from_msg ( void data,
std::size_t  size 
)
inlineprotected

Definition at line 2305 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_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::get ( InTuple &&  intuple)
inlinestatic

Definition at line 1293 of file ttg.h.

Here is the call 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_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::get ( InTuple &&  intuple)
inlinestatic

Definition at line 1297 of file ttg.h.

Here is the call graph for this function:

◆ get_defer_writer()

Definition at line 4412 of file ttg.h.

◆ get_devicemap()

device map accessor

Returns
the device map

Definition at line 4474 of file ttg.h.

◆ get_from_pull_msg()

template<std::size_t i>
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::get_from_pull_msg ( void data,
std::size_t  size 
)
inlineprotected

Definition at line 2347 of file ttg.h.

Here is the call graph for this function:

◆ get_keymap()

keymap accessor

Returns
the keymap

Definition at line 4425 of file ttg.h.

◆ get_output_terminals()

Definition at line 1314 of file ttg.h.

◆ get_priomap()

priority map accessor

Returns
the priority map

Definition at line 4435 of file ttg.h.

◆ get_task_mempool()

Returns the task memory pool owned by the calling thread

Definition at line 2031 of file ttg.h.

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

◆ get_world()

Returns
World in which this lives

Implements ttg::TTBase.

Definition at line 1373 of file ttg.h.

Here is the caller graph for this function:

◆ ht_iter_cb()

Definition at line 4152 of file ttg.h.

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

◆ in()

Definition at line 4292 of file ttg.h.

Here is the caller graph for this function:

◆ invoke() [1/6]

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 4350 of file ttg.h.

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

◆ invoke() [2/6]

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 4358 of file ttg.h.

Here is the call graph for this function:

◆ invoke() [3/6]

Definition at line 4322 of file ttg.h.

Here is the call graph for this function:

◆ invoke() [4/6]

Definition at line 4334 of file ttg.h.

Here is the call graph for this function:

◆ invoke() [5/6]

template<typename Key = keyT, typename Arg , typename... Args>
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::invoke ( const Key key,
Arg &&  arg,
Args &&...  args 
)
inline

Definition at line 4394 of file ttg.h.

Here is the call graph for this function:

◆ invoke() [6/6]

Definition at line 4305 of file ttg.h.

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

◆ make_executable()

Marks this executable.

Implements ttg::TTBase.

Definition at line 4417 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_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::out ( )
inline

Definition at line 4299 of file ttg.h.

◆ pack()

Definition at line 1976 of file ttg.h.

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

◆ prepare_send() [1/2]

template<std::size_t i, typename Key , typename Value >
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::prepare_send ( const ttg::span< const Key > &  keylist,
const Value value 
)
inline

Definition at line 3658 of file ttg.h.

Here is the call graph for this function:

◆ prepare_send() [2/2]

template<std::size_t i, typename Key , typename Value >
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::prepare_send ( const Value value)
inline

Definition at line 3672 of file ttg.h.

Here is the call graph for this function:

◆ print_incomplete_tasks()

Definition at line 4162 of file ttg.h.

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

◆ register_static_op_function()

Definition at line 4528 of file ttg.h.

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

◆ release()

Reimplemented from ttg::TTBase.

Definition at line 4166 of file ttg.h.

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

◆ release_constraint() [1/2]

template<typename Key = keyT>
std::enable_if_t< ttg::meta::is_void_v< Key >, void > ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::release_constraint ( std::size_t  cid)
inlineprotected

Definition at line 2665 of file ttg.h.

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

◆ release_constraint() [2/2]

template<typename Key = keyT>
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::release_constraint ( std::size_t  cid,
const std::span< Key > &  keys 
)
inlineprotected

Definition at line 2689 of file ttg.h.

Here is the call graph for this function:

◆ release_task()

Definition at line 2725 of file ttg.h.

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

◆ set_arg() [1/4]

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

Definition at line 2790 of file ttg.h.

Here is the call graph for this function:

◆ set_arg() [2/4]

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

Definition at line 2796 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 >
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_arg ( const Key key,
Value &&  value 
)
inlineprotected

Definition at line 2778 of file ttg.h.

Here is the call graph for this function:

◆ set_arg() [4/4]

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

Definition at line 2785 of file ttg.h.

Here is the call graph for this function:

◆ set_arg_from_msg()

template<std::size_t i>
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_arg_from_msg ( void data,
std::size_t  size 
)
inlineprotected

Definition at line 2100 of file ttg.h.

Here is the call graph for this function:

◆ set_arg_from_msg_keylist()

template<size_t i, typename valueT >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_arg_from_msg_keylist ( ttg::span< keyT > &&  keylist,
detail::ttg_data_copy_t copy 
)
inlineprotected

Definition at line 2039 of file ttg.h.

Here is the call graph for this function:

◆ set_arg_impl()

template<std::size_t i, typename Key , typename Value >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_arg_impl ( const Key key,
Value &&  value,
detail::ttg_data_copy_t copy_in = nullptr 
)
inlineprotected

register the generic iovecs and pack the registration handles memory layout: [<lreg_size, lreg, release_cb_ptr>, ...]

Definition at line 2835 of file ttg.h.

Here is the call graph for this function:

◆ set_arg_local() [1/5]

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

Definition at line 2373 of file ttg.h.

Here is the call graph for this function:

◆ set_arg_local() [2/5]

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

Definition at line 2361 of file ttg.h.

Here is the call graph for this function:

◆ set_arg_local() [3/5]

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_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_arg_local ( const Value value)
inlineprotected

Definition at line 2379 of file ttg.h.

Here is the call graph for this function:

◆ set_arg_local() [4/5]

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_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_arg_local ( std::shared_ptr< const Value > &  valueptr)
inlineprotected

Definition at line 2385 of file ttg.h.

Here is the call graph for this function:

◆ set_arg_local() [5/5]

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_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_arg_local ( Value &&  value)
inlineprotected

Definition at line 2367 of file ttg.h.

Here is the call graph for this function:

◆ set_arg_local_impl()

template<std::size_t i, typename Key , typename Value >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_arg_local_impl ( const Key key,
Value &&  value,
detail::ttg_data_copy_t copy_in = nullptr,
parsec_task_t **  task_ring = nullptr 
)
inlineprotected

Definition at line 2445 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_none_void_v< Key >, void > ttg_parsec::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 3260 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_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::set_args ( std::index_sequence< Is... >  is,
const std::tuple< Ts... > &  args 
)
inlineprotected

Definition at line 3280 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_none_void_v< Key >, void > ttg_parsec::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 3248 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_parsec::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 3269 of file ttg.h.

Here is the call graph for this function:

◆ set_argstream_size() [1/2]

template<std::size_t i, typename Key >
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > ttg_parsec::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

Parameters
sizepositive integer that specifies the stream size
keythe task identifier that expects this number of inputs in the streaming terminal

Definition at line 3308 of file ttg.h.

Here is the call graph for this function:

◆ set_argstream_size() [2/2]

template<std::size_t i, typename Key = keyT>
std::enable_if_t< ttg::meta::is_void_v< Key >, void > ttg_parsec::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 3369 of file ttg.h.

Here is the call graph for this function:

◆ set_defer_writer()

Definition at line 4408 of file ttg.h.

◆ set_devicemap()

device map setter The device map provides a hint on which device a task should execute. TTG may not be able to honor the request and the corresponding task may execute on a different device.

  • pm a function that provides a hint on which device the task should execute.

Definition at line 4450 of file ttg.h.

Here is the call graph for this function:

◆ 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 4203 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_parsec::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 4284 of file ttg.h.

Here is the call graph for this function:

◆ set_keymap()

keymap setter

Definition at line 4429 of file ttg.h.

Here is the call graph for this function:

◆ set_priomap()

priomap setter

  • pm a function that maps a key to an integral priority value.

Definition at line 4440 of file ttg.h.

Here is the call graph for this function:

◆ set_static_argstream_size()

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

sets the default stream size for input i

Parameters
sizepositive integer that specifies the default stream size

Definition at line 3289 of file ttg.h.

Here is the call graph for this function:

◆ static_set_arg()

static void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::static_set_arg ( void data,
std::size_t  size,
ttg::TTBase bop 
)
inlinestaticprotected

Definition at line 1986 of file ttg.h.

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

◆ unpack()

template<typename T >
uint64_t ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs, Space >::unpack ( T &  obj,
void _bytes,
uint64_t  pos 
)
inlineprotected

Definition at line 1963 of file ttg.h.

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

Member Data Documentation

◆ numinvals

Initial value:
=
std::tuple_size_v<input_refs_tuple_type>

Definition at line 1285 of file ttg.h.

◆ runtime

Definition at line 4195 of file ttg.h.


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