ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs > Class Template Reference
Inheritance diagram for ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >:
ttg::TTBase ttg_parsec::detail::ParsecTTBase

Documentation

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

Definition at line 1184 of file ttg.h.

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 >, void > set_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 >, void > set_argstream_size (std::size_t size)
 
template<std::size_t i, typename Key >
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > finalize_argstream (const Key &key)
 finalizes stream for input i More...
 
template<std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>>
std::enable_if_t< key_is_void, void > finalize_argstream ()
 finalizes stream for input i More...
 
void copy_mark_pushout (detail::ttg_data_copy_t *copy)
 
template<std::size_t i, typename Value , typename RemoteCheckFn >
std::enable_if_t<!std::is_void_v< std::decay_t< Value > >, void > do_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 > >, void > prepare_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 > >, void > prepare_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 >, void > invoke (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 >, void > invoke (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 >, void > invoke (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 >, void > invoke ()
 
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 >, void > invoke (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. More...
 
decltype(keymap) const & get_keymap () const
 
template<typename Keymap >
void set_keymap (Keymap &&km)
 keymap setter More...
 
decltype(priomap) const & 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 More...
 
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. More...
 
const std::string & get_name () const
 Gets the name of this operation. More...
 
std::string get_class_name () const
 Gets the demangled class name (uses RTTI) More...
 
const std::vector< TerminalBase * > & get_inputs () const
 Returns the vector of input terminals. More...
 
const std::vector< TerminalBase * > & get_outputs () const
 Returns the vector of output terminals. More...
 
ttg::TerminalBasein (size_t i)
 Returns a pointer to the i'th input terminal. More...
 
ttg::TerminalBaseout (size_t i)
 Returns a pointer to the i'th output terminal. More...
 
template<std::size_t i>
ttg::TerminalBasein ()
 Returns a pointer to the i'th input terminal ... to make API consistent with TT. More...
 
template<std::size_t i>
ttg::TerminalBaseout ()
 Returns a pointer to the i'th output terminal ... to make API consistent with TT. More...
 
auto get_instance_id () const
 
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 ()
 
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. More...
 

Static Public Attributes

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

Protected Member Functions

const auto & get_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_t * get_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 > >, void > set_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 > >, void > set_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 > >, void > set_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 > >, void > set_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 > >, void > set_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 >, void > release_constraint (std::size_t cid)
 
template<typename Key = keyT>
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > release_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 > >, 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< std::decay_t< Value > >, void > set_arg (Value &&value)
 
template<std::size_t i, typename Key = keyT>
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_arg ()
 
template<std::size_t i, typename Key >
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > set_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 > >, void > broadcast_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 >, void > set_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 >, void > set_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 >, void > set_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 >, void > set_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 ()
 

Member Typedef Documentation

◆ input_args_type

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_args_type = actual_input_tuple_type

Definition at line 1253 of file ttg.h.

◆ input_edges_type

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_edges_type = ttg::detail::edges_tuple_t<keyT, ttg::meta::decayed_typelist_t<input_tuple_type> >

Definition at line 1254 of file ttg.h.

◆ input_refs_full_tuple_type

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_refs_full_tuple_type = ttg::meta::add_glvalue_reference_tuple_t<ttg::meta::void_to_Void_tuple_t<actual_input_tuple_type> >

Definition at line 1258 of file ttg.h.

◆ input_refs_tuple_type

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_refs_tuple_type = ttg::meta::drop_void_t<ttg::meta::add_glvalue_reference_tuple_t<input_tuple_type> >

Definition at line 1261 of file ttg.h.

◆ input_terminals_type

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_terminals_type = ttg::detail::input_terminals_tuple_t<keyT, input_tuple_type>

Definition at line 1252 of file ttg.h.

◆ input_values_full_tuple_type

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_values_full_tuple_type = ttg::meta::void_to_Void_tuple_t<ttg::meta::decayed_typelist_t<actual_input_tuple_type> >

Definition at line 1256 of file ttg.h.

◆ input_values_tuple_type

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_values_tuple_type = ttg::meta::drop_void_t<ttg::meta::decayed_typelist_t<input_tuple_type> >

Definition at line 1260 of file ttg.h.

◆ key_type

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::key_type = keyT

Definition at line 1251 of file ttg.h.

◆ output_edges_type

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::output_edges_type = typename ttg::terminals_to_edges<output_terminalsT>::type

Definition at line 1268 of file ttg.h.

◆ output_terminals_type

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::output_terminals_type = output_terminalsT

Definition at line 1267 of file ttg.h.

◆ ttT

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::ttT = TT

Definition at line 1250 of file ttg.h.

Constructor & Destructor Documentation

◆ TT() [1/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::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 3868 of file ttg.h.

◆ TT() [2/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::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 4023 of file ttg.h.

◆ TT() [3/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::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 4030 of file ttg.h.

◆ TT() [4/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::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 4043 of file ttg.h.

◆ ~TT()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
virtual ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::~TT ( )
inlinevirtual

Definition at line 4050 of file ttg.h.

Member Function Documentation

◆ add_constraint() [1/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename Constraint >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::add_constraint ( Constraint &&  c)
inline

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

Definition at line 4407 of file ttg.h.

◆ add_constraint() [2/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename Constraint , typename Mapper >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::add_constraint ( Constraint  c,
Mapper &&  map 
)
inline

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

◆ add_constraint() [3/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename Constraint >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::add_constraint ( std::shared_ptr< Constraint >  c)
inline

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

Definition at line 4391 of file ttg.h.

◆ add_constraint() [4/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename Constraint , typename Mapper >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::add_constraint ( std::shared_ptr< Constraint >  c,
Mapper &&  map 
)
inline

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

◆ argstream_set_size_from_msg()

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

Definition at line 2252 of file ttg.h.

◆ broadcast_arg()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::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 2962 of file ttg.h.

◆ broadcast_arg_local()

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

Definition at line 2932 of file ttg.h.

◆ can_inline_data()

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

Definition at line 2729 of file ttg.h.

◆ check_constraints()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
bool ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::check_constraints ( task_t task)
inlineprotected

Definition at line 2576 of file ttg.h.

◆ copy_mark_pushout()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::copy_mark_pushout ( detail::ttg_data_copy_t copy)
inline

Definition at line 3418 of file ttg.h.

◆ create_new_reducer_task()

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

Definition at line 2346 of file ttg.h.

◆ create_new_task()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename Key >
task_t* ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::create_new_task ( const Key &  key)
inlineprotected

Definition at line 2319 of file ttg.h.

◆ derived_has_cuda_op()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
static constexpr bool ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::derived_has_cuda_op ( )
inlinestaticconstexpr
Returns
true if derivedT::have_cuda_op exists and is defined to true

Definition at line 1219 of file ttg.h.

◆ derived_has_device_op()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
static constexpr bool ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::derived_has_device_op ( )
inlinestaticconstexpr
Returns
true if the TT supports device execution

Definition at line 1246 of file ttg.h.

◆ derived_has_hip_op()

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

Definition at line 1228 of file ttg.h.

◆ derived_has_level_zero_op()

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

Definition at line 1237 of file ttg.h.

◆ do_prepare_send()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::do_prepare_send ( const Value &  value,
RemoteCheckFn &&  remote_check 
)
inline

Definition at line 3455 of file ttg.h.

◆ do_release()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::do_release ( )
inline

Definition at line 4081 of file ttg.h.

◆ finalize_argstream() [1/2]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::finalize_argstream ( )
inline

finalizes stream for input i

Definition at line 3371 of file ttg.h.

◆ finalize_argstream() [2/2]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::finalize_argstream ( const Key &  key)
inline

finalizes stream for input i

Definition at line 3319 of file ttg.h.

◆ finalize_argstream_from_msg()

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

Definition at line 2233 of file ttg.h.

◆ get() [1/2]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<std::size_t i, typename resultT , typename InTuple >
static resultT ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get ( InTuple &&  intuple)
inlinestatic

Definition at line 1271 of file ttg.h.

◆ get() [2/2]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<std::size_t i, typename InTuple >
static auto& ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get ( InTuple &&  intuple)
inlinestatic

Definition at line 1275 of file ttg.h.

◆ get_defer_writer()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
bool ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_defer_writer ( bool  value)
inline

Definition at line 4325 of file ttg.h.

◆ get_devicemap()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
auto ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_devicemap ( )
inline

device map accessor

Returns
the device map

Definition at line 4386 of file ttg.h.

◆ get_from_pull_msg()

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

Definition at line 2275 of file ttg.h.

◆ get_keymap()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
decltype(keymap) const& ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_keymap ( ) const
inline

keymap accessor

Returns
the keymap

Definition at line 4338 of file ttg.h.

◆ get_output_terminals()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
const auto& ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_output_terminals ( ) const
inlineprotected

Definition at line 1292 of file ttg.h.

◆ get_priomap()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
decltype(priomap) const& ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_priomap ( ) const
inline

priority map accessor

Returns
the priority map

Definition at line 4348 of file ttg.h.

◆ get_task_mempool()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
parsec_thread_mempool_t* ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_task_mempool ( void  )
inlineprotected

Returns the task memory pool owned by the calling thread

Definition at line 1987 of file ttg.h.

◆ get_world()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
ttg::World ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_world ( ) const
inlinefinaloverridevirtual
Returns
World in which this lives

Implements ttg::TTBase.

Definition at line 1351 of file ttg.h.

◆ ht_iter_cb()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
static void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::ht_iter_cb ( void *  item,
void *  cb_data 
)
inlinestatic

Definition at line 4065 of file ttg.h.

◆ in()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<std::size_t i>
std::tuple_element_t<i, input_terminals_type>* ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::in ( )
inline

Definition at line 4205 of file ttg.h.

◆ invoke() [1/6]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename Key = keyT>
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 >::invoke ( )
inlinevirtual

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

◆ invoke() [2/6]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::invoke ( )
inlineoverridevirtual

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

◆ invoke() [3/6]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename Key = keyT>
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 >::invoke ( const input_values_tuple_type args)
inline

Definition at line 4235 of file ttg.h.

◆ invoke() [4/6]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename Key = keyT>
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 >::invoke ( const Key &  key)
inline

Definition at line 4247 of file ttg.h.

◆ invoke() [5/6]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::invoke ( const Key &  key,
Arg &&  arg,
Args &&...  args 
)
inline

Definition at line 4307 of file ttg.h.

◆ invoke() [6/6]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename Key = keyT>
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 >::invoke ( const Key &  key,
const input_values_tuple_type args 
)
inline

Definition at line 4218 of file ttg.h.

◆ make_executable()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::make_executable ( )
inlineoverridevirtual

Marks this executable.

Implements ttg::TTBase.

Definition at line 4330 of file ttg.h.

◆ out()

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

Definition at line 4212 of file ttg.h.

◆ pack()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename T >
uint64_t ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::pack ( T &  obj,
void *  bytes,
uint64_t  pos,
detail::ttg_data_copy_t copy = nullptr 
)
inlineprotected

Definition at line 1927 of file ttg.h.

◆ prepare_send() [1/2]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::prepare_send ( const ttg::span< const Key > &  keylist,
const Value &  value 
)
inline

Definition at line 3552 of file ttg.h.

◆ prepare_send() [2/2]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::prepare_send ( const Value &  value)
inline

Definition at line 3566 of file ttg.h.

◆ print_incomplete_tasks()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::print_incomplete_tasks ( )
inline

Definition at line 4075 of file ttg.h.

◆ register_static_op_function()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::register_static_op_function ( void  )
inline

Definition at line 4440 of file ttg.h.

◆ release()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
virtual void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::release ( )
inlineoverridevirtual

Reimplemented from ttg::TTBase.

Definition at line 4079 of file ttg.h.

◆ release_constraint() [1/2]

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

Definition at line 2593 of file ttg.h.

◆ release_constraint() [2/2]

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

Definition at line 2617 of file ttg.h.

◆ release_task()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::release_task ( task_t task,
parsec_task_t **  task_ring = nullptr 
)
inlineprotected

Definition at line 2653 of file ttg.h.

◆ set_arg() [1/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::set_arg ( )
inlineprotected

Definition at line 2718 of file ttg.h.

◆ set_arg() [2/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::set_arg ( const Key &  key)
inlineprotected

Definition at line 2724 of file ttg.h.

◆ set_arg() [3/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::set_arg ( const Key &  key,
Value &&  value 
)
inlineprotected

Definition at line 2706 of file ttg.h.

◆ set_arg() [4/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::set_arg ( Value &&  value)
inlineprotected

Definition at line 2713 of file ttg.h.

◆ set_arg_from_msg()

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

Definition at line 2056 of file ttg.h.

◆ set_arg_from_msg_keylist()

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

Definition at line 1995 of file ttg.h.

◆ set_arg_impl()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<std::size_t i, typename Key , typename Value >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::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 2759 of file ttg.h.

◆ set_arg_local() [1/5]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::set_arg_local ( const Key &  key,
const Value &  value 
)
inlineprotected

Definition at line 2301 of file ttg.h.

◆ set_arg_local() [2/5]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::set_arg_local ( const Key &  key,
Value &&  value 
)
inlineprotected

Definition at line 2289 of file ttg.h.

◆ set_arg_local() [3/5]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::set_arg_local ( const Value &  value)
inlineprotected

Definition at line 2307 of file ttg.h.

◆ set_arg_local() [4/5]

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

Definition at line 2313 of file ttg.h.

◆ set_arg_local() [5/5]

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

Definition at line 2295 of file ttg.h.

◆ set_arg_local_impl()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<std::size_t i, typename Key , typename Value >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::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 2373 of file ttg.h.

◆ set_args() [1/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::set_args ( std::index_sequence< Is... >  is,
const Key &  key,
const std::tuple< Ts... > &  args 
)
inlineprotected

Definition at line 3152 of file ttg.h.

◆ set_args() [2/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::set_args ( std::index_sequence< Is... >  is,
const std::tuple< Ts... > &  args 
)
inlineprotected

Definition at line 3172 of file ttg.h.

◆ set_args() [3/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::set_args ( std::index_sequence< Is... >  ,
std::index_sequence< Js... >  ,
const Key &  key,
const std::tuple< Ts... > &  args 
)
inlineprotected

Definition at line 3140 of file ttg.h.

◆ set_args() [4/4]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::set_args ( std::index_sequence< Is... >  ,
std::index_sequence< Js... >  ,
const std::tuple< Ts... > &  args 
)
inlineprotected

Definition at line 3161 of file ttg.h.

◆ set_argstream_size() [1/2]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::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 3200 of file ttg.h.

◆ set_argstream_size() [2/2]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
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 >::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 3261 of file ttg.h.

◆ set_defer_writer()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_defer_writer ( bool  value)
inline

Definition at line 4321 of file ttg.h.

◆ set_devicemap()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename Devicemap >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_devicemap ( Devicemap &&  dm)
inline

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

◆ set_input_reducer() [1/2]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<std::size_t i, typename Reducer >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_input_reducer ( Reducer &&  reducer)
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

Definition at line 4116 of file ttg.h.

◆ set_input_reducer() [2/2]

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<std::size_t i, typename Reducer >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::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 4197 of file ttg.h.

◆ set_keymap()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename Keymap >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_keymap ( Keymap &&  km)
inline

keymap setter

Definition at line 4342 of file ttg.h.

◆ set_priomap()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<typename Priomap >
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_priomap ( Priomap &&  pm)
inline

priomap setter

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

Definition at line 4353 of file ttg.h.

◆ set_static_argstream_size()

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
template<std::size_t i>
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::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 3181 of file ttg.h.

◆ static_set_arg()

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

Definition at line 1942 of file ttg.h.

◆ unpack()

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

Definition at line 1914 of file ttg.h.

Member Data Documentation

◆ numinvals

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
constexpr int ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::numinvals
staticconstexpr
Initial value:
=
std::tuple_size_v<input_refs_tuple_type>

Definition at line 1263 of file ttg.h.

◆ runtime

template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
constexpr const ttg::Runtime ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::runtime = ttg::Runtime::PaRSEC
staticconstexpr

Definition at line 4108 of file ttg.h.


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