top-level TTG namespace contains runtime-neutral functionality More...
Namespaces | |
base | |
detail | |
device | |
iostream | |
meta | |
overload | |
place for overloading/instantiating hash and other functionality | |
Classes | |
class | TerminalBase |
class | TTBase |
A base class for all template tasks. More... | |
class | BinaryTreeBroadcast |
generic binary broadcast of a value to a set of {key,value} pairs More... | |
struct | ConstraintBase |
struct | SequencedKeysConstraint |
struct | resumable_task_events |
struct | event |
represents a generic one-time event More... | |
struct | resumable_task |
task that can be resumed after some events occur More... | |
struct | resumable_task_state |
class | Edge |
Edge is used to connect In and Out terminals. More... | |
struct | terminals_to_edges |
struct | terminals_to_edges< std::tuple< termsT... > > |
struct | edges_to_output_terminals |
struct | edges_to_output_terminals< std::tuple< edgesT... > > |
class | TTG |
a template task graph implementation More... | |
class | BinaryTreeReduce |
generic binary reduction of a set of key-value pairs. More... | |
struct | runtime_traits |
struct | runtime_traits< Runtime::PaRSEC > |
struct | runtime_traits< Runtime::MADWorld > |
struct | default_data_descriptor |
Provides (de)serialization of C++ data that can be invoked from C via ttg_data_descriptor. More... | |
struct | default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > > |
default_data_descriptor for trivially-copyable types More... | |
struct | default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > > |
default_data_descriptor for types that support 2-stage serialization (metadata first, then the rest) for implementing zero-copy transfers More... | |
struct | SplitMetadataDescriptor |
struct | has_split_metadata |
struct | has_split_metadata< T, ttg::meta::void_t< decltype(std::declval< SplitMetadataDescriptor< T >>().get_metadata(std::declval< T >()))> > |
class | InTerminalBase |
Base type for input terminals receiving messages annotated by task IDs of type keyT More... | |
class | In |
class | OutTerminalBase |
class | Out |
class | Traverse |
Traverses a graph of ops in depth-first manner following out edges. More... | |
class | SinkTT |
A data sink for one input. More... | |
class | Debugger |
class | Dot |
Prints the graph to a std::string in the format understood by GraphViz's dot program. More... | |
struct | iovec |
struct | MultiIndex |
class | BinarySpanningTree |
a binary spanning tree of integers in the [0,size) interval More... | |
class | Void |
A complete version of void. More... | |
class | World |
Typedefs | |
template<typename T , typename Allocator = std::allocator<std::decay_t<T>>> | |
using | Buffer = TTG_IMPL_NS::Buffer< T, Allocator > |
using | suspend_always = TTG_CXX_COROUTINE_NAMESPACE::suspend_always |
using | suspend_never = TTG_CXX_COROUTINE_NAMESPACE::suspend_never |
template<typename Promise > | |
using | coroutine_handle = TTG_CXX_COROUTINE_NAMESPACE::coroutine_handle< Promise > |
template<typename T > | |
using | devicescratch = TTG_IMPL_NS::devicescratch< T > |
using | OpBase = TTBase |
using | TemplateTaskBase = TTBase |
template<typename input_terminalsT , typename output_terminalsT > | |
using | TemplateTaskGraph = TTG< input_terminalsT, output_terminalsT > |
template<typename input_terminalsT , typename output_terminalsT > | |
using | CompositeOp = TTG< input_terminalsT, output_terminalsT > |
template<typename T > | |
using | Ptr = TTG_IMPL_NS::Ptr< T > |
template<typename T > | |
using | TTValue = TTG_IMPL_NS::TTValue< T > |
template<typename... Ts> | |
using | typelist = meta::typelist< Ts... > |
Enumerations | |
enum class | TaskCoroutineID { Invalid , ResumableTask , DeviceTask } |
enum class | scope { Allocate = 0x0 , SyncIn = 0x2 } |
enum class | Execution { Inline , Async } |
denotes task execution policy More... | |
enum class | ExecutionSpace { Host , CUDA , HIP , L0 , Invalid } |
denotes task execution space More... | |
enum class | Runtime { PaRSEC , MADWorld } |
Functions | |
template<typename Mapper , typename = std::enable_if_t<std::is_invocable_v<Mapper, std::decay_t<std::tuple_element_t<0, boost::callable_traits::args_t<Mapper>>>>>> | |
SequencedKeysConstraint (Mapper &&) -> SequencedKeysConstraint< std::decay_t< std::tuple_element_t< 0, boost::callable_traits::args_t< Mapper >>>, std::decay_t< boost::callable_traits::return_type_t< Mapper >>, std::less< std::decay_t< boost::callable_traits::return_type_t< Mapper >>>, std::enable_if_t< std::is_invocable_v< Mapper, std::decay_t< std::tuple_element_t< 0, boost::callable_traits::args_t< Mapper >>>>, Mapper > > | |
template<typename Mapper , typename = std::enable_if_t<std::is_invocable_v<Mapper, std::decay_t<std::tuple_element_t<0, boost::callable_traits::args_t<Mapper>>>>>> | |
SequencedKeysConstraint (Mapper &&, bool) -> SequencedKeysConstraint< std::decay_t< std::tuple_element_t< 0, boost::callable_traits::args_t< Mapper >>>, std::decay_t< boost::callable_traits::return_type_t< Mapper >>, std::less< std::decay_t< boost::callable_traits::return_type_t< Mapper >>>, std::enable_if_t< std::is_invocable_v< Mapper, std::decay_t< std::tuple_element_t< 0, boost::callable_traits::args_t< Mapper >>>>, Mapper > > | |
template<typename Key , typename Ordinal , typename Compare , typename Mapper > | |
SequencedKeysConstraint (SequencedKeysConstraint< Key, Ordinal, Compare, Mapper > &&) -> SequencedKeysConstraint< Key, Ordinal, Compare, Mapper > | |
template<typename Key , typename Ordinal , typename Compare , typename Mapper > | |
SequencedKeysConstraint (const SequencedKeysConstraint< Key, Ordinal, Compare, Mapper > &) -> SequencedKeysConstraint< Key, Ordinal, Compare, Mapper > | |
template<template< typename... > typename Constraint, typename... Args> | |
auto | make_shared_constraint (Args &&... args) |
template<typename... Events> | |
resumable_task_events (Events &&...) -> resumable_task_events< sizeof...(Events)> | |
template<typename T > | |
auto | make_scratch (T *val, ttg::scope scope, std::size_t count=1) |
template<typename... TTBasePtrs> | |
std::enable_if_t<(std::is_convertible_v< decltype(*(std::declval< TTBasePtrs >))), TTBase & > bool | make_graph_executable (TTBasePtrs &&...tts) |
template<typename keyT , typename valueT > | |
void | connect (ttg::Out< keyT, valueT > *out, ttg::In< keyT, valueT > *in) |
Connect output terminal to successor input terminal. More... | |
void | connect (ttg::TerminalBase *out, ttg::TerminalBase *in) |
Connect output terminal to successor input terminal. More... | |
template<std::size_t outindex, std::size_t inindex, typename producer_tt_ptr , typename successor_tt_ptr > | |
void | connect (producer_tt_ptr &p, successor_tt_ptr &c) |
Connect producer output terminal outindex to consumer input terminal inindex (via unique or otherwise wrapped pointers to TTs) More... | |
template<std::size_t outindex, std::size_t inindex, typename producer_tt_ptr , typename successor_tt_ptr > | |
void | connect (producer_tt_ptr *p, successor_tt_ptr *c) |
Connect producer output terminal outindex to consumer input terminal inindex (via bare pointers to TTs) More... | |
void | connect (size_t outindex, size_t inindex, TTBase *producer, TTBase *consumer) |
Connect producer output terminal outindex to consumer input terminal inindex (via TTBase pointers) More... | |
template<typename keyT , typename... valuesT> | |
auto | fuse (const Edge< keyT, valuesT > &...args) |
Fuse edges into one This allows receiving one data from either of the combined edges. More... | |
template<typename... inedgesT> | |
auto | edges (inedgesT &&...args) |
Make a tuple of Edges to pass to. More... | |
template<typename keyT , typename valueT , typename output_terminalT , ttg::Runtime Runtime = ttg::ttg_runtime> | |
void | send (const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t) |
Sends a task id and a value to the given output terminal. More... | |
template<typename keyT > | |
void | sendk (const keyT &key, ttg::Out< keyT, void > &t) |
Sends a task id (without an accompanying value) to the given output terminal. More... | |
template<typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime> | |
void | sendv (valueT &&value, ttg::Out< void, valueT > &t) |
Sends a value (without an accompanying task id) to the given output terminal. More... | |
void | send (ttg::Out< void, void > &t) |
Sends a control message (message without an accompanying task id or a value) to the given output terminal. More... | |
template<size_t i, typename keyT , typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime> | |
std::enable_if_t< meta::is_none_void_v< keyT, std::decay_t< valueT > >, void > | send (const keyT &key, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t) |
Sends a task id and a value to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t . More... | |
template<typename keyT , typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime> | |
std::enable_if_t< meta::is_none_void_v< keyT, std::decay_t< valueT > >, void > | send (size_t i, const keyT &key, valueT &&value) |
Sends a task id and a value to the template tasks attached to the output terminal of this template task. More... | |
template<size_t i, typename keyT , typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime> | |
std::enable_if_t< meta::is_none_void_v< keyT, std::decay_t< valueT > >, void > | send (const keyT &key, valueT &&value) |
Sends a task id and a value to the template tasks attached to the output terminal of this template task. More... | |
template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT> | |
std::enable_if_t<!meta::is_void_v< keyT >, void > | sendk (const keyT &key, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t) |
Sends a task id (without an accompanying value) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t . More... | |
template<typename keyT > | |
std::enable_if_t<!meta::is_void_v< keyT >, void > | sendk (std::size_t i, const keyT &key) |
Sends a task id (without an accompanying value) to the template tasks attached to the output terminal of this template task. More... | |
template<size_t i, typename keyT > | |
std::enable_if_t<!meta::is_void_v< keyT >, void > | sendk (const keyT &key) |
Sends a task id (without an accompanying value) to the template tasks attached to the output terminal of this template task. More... | |
template<size_t i, typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime> | |
std::enable_if_t<!meta::is_void_v< std::decay_t< valueT > >, void > | sendv (valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t) |
Sends a value (without an accompanying task id) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t . More... | |
template<typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime> | |
std::enable_if_t<!meta::is_void_v< std::decay_t< valueT > >, void > | sendv (std::size_t i, valueT &&value) |
Sends a value (without an accompanying task id) to the template tasks attached to the output terminal of this template task. More... | |
template<size_t i, typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime> | |
std::enable_if_t<!meta::is_void_v< std::decay_t< valueT > >, void > | sendv (valueT &&value) |
Sends a value (without an accompanying task id) to the template tasks attached to the output terminal of this template task. More... | |
template<size_t i, typename... out_keysT, typename... out_valuesT> | |
void | send (std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t) |
Sends a control message (message without an accompanying task id or a value) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t . More... | |
void | send (std::size_t i) |
Sends a control message (message without an accompanying task id or a value) to the template tasks attached to the output terminal of this template task. More... | |
template<size_t i> | |
void | send () |
Sends a control message (message without an accompanying task id or a value) to the template tasks attached to the output terminal of this template task. More... | |
template<size_t i, typename rangeT , typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime> | |
void | broadcast (const rangeT &keylist, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t) |
template<typename rangeT , typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime> | |
void | broadcast (std::size_t i, const rangeT &keylist, valueT &&value) |
template<size_t i, typename rangeT , typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime> | |
void | broadcast (const rangeT &keylist, valueT &&value) |
template<size_t i, size_t... I, typename... RangesT, typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime> | |
void | broadcast (const std::tuple< RangesT... > &keylists, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t) |
template<size_t i, size_t... I, typename... RangesT, typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime> | |
void | broadcast (const std::tuple< RangesT... > &keylists, valueT &&value) |
template<size_t i, typename rangeT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime> | |
void | broadcastk (const rangeT &keylist, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t) |
template<typename rangeT , ttg::Runtime Runtime = ttg::ttg_runtime> | |
void | broadcastk (std::size_t i, const rangeT &keylist) |
template<size_t i, typename rangeT , ttg::Runtime Runtime = ttg::ttg_runtime> | |
void | broadcastk (const rangeT &keylist) |
template<size_t i, size_t... I, typename... RangesT, typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime> | |
void | broadcastk (const std::tuple< RangesT... > &keylists, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t) |
template<size_t i, size_t... I, typename... RangesT, ttg::Runtime Runtime = ttg::ttg_runtime> | |
void | broadcastk (const std::tuple< RangesT... > &keylists) |
template<typename keyT , typename out_valueT > | |
std::enable_if_t<!meta::is_void_v< keyT >, void > | set_size (const keyT &key, const std::size_t size, ttg::Out< keyT, out_valueT > &t) |
template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT> | |
std::enable_if_t<!meta::is_void_v< keyT >, void > | set_size (const keyT &key, const std::size_t size, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t) |
Set the size of all streaming input terminals connected to the output terminal for a task identified by key . More... | |
template<typename keyT > | |
std::enable_if_t<!meta::is_void_v< keyT >, void > | set_size (std::size_t i, const keyT &key, const std::size_t size) |
template<size_t i, typename keyT > | |
std::enable_if_t<!meta::is_void_v< keyT >, void > | set_size (const keyT &key, const std::size_t size) |
template<typename out_keyT , typename out_valueT > | |
void | set_size (const std::size_t size, ttg::Out< out_keyT, out_valueT > &t) |
Set the size of all streaming input terminals connected to an output terminal with void key. More... | |
template<size_t i, typename... out_keysT, typename... out_valuesT> | |
void | set_size (const std::size_t size, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t) |
Set the size of all streaming input terminals connected to an output terminal for a task, with void key. More... | |
void | set_size (std::size_t i, const std::size_t size) |
template<std::size_t i> | |
void | set_size (const std::size_t size) |
template<typename keyT , typename out_keyT , typename out_valueT > | |
std::enable_if_t<!meta::is_void_v< keyT >, void > | finalize (const keyT &key, ttg::Out< out_keyT, out_valueT > &t) |
Finalize streaming input terminals connecting to the given output terminal for tasks identified by key . More... | |
template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT> | |
std::enable_if_t<!meta::is_void_v< keyT >, void > | finalize (const keyT &key, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t) |
Finalize streaming input terminals connected to the given output terminal; use this to finalize terminals with non-void key. More... | |
template<typename keyT > | |
std::enable_if_t<!meta::is_void_v< keyT >, void > | finalize (std::size_t i, const keyT &key) |
template<std::size_t i, typename keyT > | |
std::enable_if_t<!meta::is_void_v< keyT >, void > | finalize (const keyT &key) |
template<typename out_keyT , typename out_valueT > | |
void | finalize (ttg::Out< out_keyT, out_valueT > &t) |
Finalize streaming input terminals connected to the given output terminal; use this to finalize terminals with void key. More... | |
template<size_t i, typename... out_keysT, typename... out_valuesT> | |
void | finalize (std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t) |
Finalize streaming input terminals connected to the i th output terminal in the tuple; use this to finalize terminals with void key. More... | |
void | finalize (std::size_t i) |
template<std::size_t i> | |
void | finalize () |
Finalizes the TTG runtime. More... | |
template<typename... RestOfArgs> | |
void | initialize (int argc, char **argv, int num_threads=-1, RestOfArgs &&...) |
void | abort () |
Aborts the TTG program using the default backend's ttg_abort method. More... | |
World | default_execution_context () |
Accesses the default backend's default execution context. More... | |
void | execute (World world=default_execution_context()) |
Starts the execution in the given execution context. More... | |
void | fence (World world=default_execution_context()) |
Returns when all tasks associated with the given execution context have finished on all ranks. More... | |
template<typename T , typename... Args> | |
Ptr< T > | make_ptr (Args &&... args) |
template<typename T > | |
Ptr< std::decay_t< T > > | get_ptr (T &&obj) |
template<typename... RestOfArgs> | |
void | initialize (int argc, char **argv, int num_threads, RestOfArgs &&... args) |
Initializes the TTG runtime with the default backend. More... | |
int | rank (World world=default_execution_context()) |
int | size (World world=default_execution_context()) |
template<typename TT > | |
void | invoke_once (TT &tt) |
template<typename TT , typename Key > | |
void | invoke_once (TT &&tt, Key &&key) |
template<typename T > | |
const ttg_data_descriptor * | get_data_descriptor () |
template<typename TTVisitor = decltype(trivial_1param_lambda)&, typename InVisitor = decltype(trivial_1param_lambda)&, typename OutVisitor = decltype(trivial_1param_lambda)&> | |
auto | make_traverse (TTVisitor &&tt_v=trivial_1param_lambda, InVisitor &&in_v=trivial_1param_lambda, OutVisitor &&out_v=trivial_1param_lambda) |
template<typename ttseqT , typename input_terminalsT , typename output_terminalsT > | |
auto | make_ttg (ttseqT &&tts, const input_terminalsT &ins, const output_terminalsT &outs, const std::string &name="ttg") |
void | initialize_fpe () |
Initializes the floating point exceptions. More... | |
void | launch_debugger (int rank, const char *exec_name, const char *cmd) |
void | launch_lldb (int rank, const char *exec_name) |
void | launch_gdb (int rank, const char *exec_name) |
bool | diagnose () |
void | diagnose_on () |
void | diagnose_off () |
template<typename T > | |
bool | has_value (std::future< T > const &f) |
template<typename T > | |
bool | has_value (std::shared_future< T > const &f) |
template<class T > | |
void | hash_combine (std::size_t &seed, T const &v) |
template<std::size_t Rank> | |
std::ostream & | operator<< (std::ostream &os, const MultiIndex< Rank > &key) |
template<typename T , typename... Ts> | |
void | print (const T &t, const Ts &... ts) |
atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by std::endl More... | |
template<typename T , typename... Ts> | |
void | print_error (const T &t, const Ts &... ts) |
atomically prints to std::cerr a sequence of items (separated by ttg::print_separator) followed by std::endl More... | |
template<typename T , typename... Ts> | |
void | log (const T &t, const Ts &... ts) |
atomically prints to std::clog a sequence of items (separated by ttg::print_separator) followed by std::endl More... | |
constexpr bool | trace_enabled () |
returns whether tracing was enabled at configure time More... | |
bool | tracing () |
returns whether tracing is enabled More... | |
void | trace_on () |
enables tracing; if trace_enabled()==true this has no effect More... | |
void | trace_off () |
disables tracing; if trace_enabled()==true this has no effect More... | |
template<typename T , typename... Ts> | |
void | trace (const T &t, const Ts &... ts) |
std::array< int, 3 > | version () |
const char * | git_revision () noexcept |
const char * | git_description () noexcept |
bool | operator== (const Void &, const Void &) |
bool | operator!= (const Void &, const Void &) |
std::ostream & | operator<< (std::ostream &os, const ttg::Void &) |
ttg::World & | get_default_world () |
Variables | |
constexpr const ttg::Runtime | ttg_runtime = ttg::Runtime::MADWorld |
constexpr char | print_separator = ' ' |
constexpr char | print_seq_separator = ',' |
constexpr char | print_seq_begin = '{' |
constexpr char | print_seq_end = '}' |
Typedef Documentation
◆ Buffer
using ttg::Buffer = typedef TTG_IMPL_NS::Buffer<T, Allocator> |
◆ CompositeOp
using ttg::CompositeOp = typedef TTG<input_terminalsT, output_terminalsT> |
◆ coroutine_handle
using ttg::coroutine_handle = typedef TTG_CXX_COROUTINE_NAMESPACE::coroutine_handle<Promise> |
Definition at line 24 of file coroutine.h.
◆ devicescratch
using ttg::devicescratch = typedef TTG_IMPL_NS::devicescratch<T> |
Definition at line 10 of file devicescratch.h.
◆ OpBase
using ttg::OpBase = typedef TTBase |
◆ Ptr
using ttg::Ptr = typedef TTG_IMPL_NS::Ptr<T> |
◆ suspend_always
using ttg::suspend_always = typedef TTG_CXX_COROUTINE_NAMESPACE::suspend_always |
Definition at line 21 of file coroutine.h.
◆ suspend_never
using ttg::suspend_never = typedef TTG_CXX_COROUTINE_NAMESPACE::suspend_never |
Definition at line 22 of file coroutine.h.
◆ TemplateTaskBase
using ttg::TemplateTaskBase = typedef TTBase |
◆ TemplateTaskGraph
using ttg::TemplateTaskGraph = typedef TTG<input_terminalsT, output_terminalsT> |
◆ TTValue
using ttg::TTValue = typedef TTG_IMPL_NS::TTValue<T> |
◆ typelist
using ttg::typelist = typedef meta::typelist<Ts...> |
Definition at line 81 of file typelist.h.
Enumeration Type Documentation
◆ Execution
|
strong |
◆ ExecutionSpace
|
strong |
denotes task execution space
Enumerator | |
---|---|
Host | |
CUDA | |
HIP | |
L0 | |
Invalid |
Definition at line 17 of file execution.h.
◆ Runtime
|
strong |
Enumerator | |
---|---|
PaRSEC | |
MADWorld |
Definition at line 15 of file runtimes.h.
◆ scope
|
strong |
Enumerator | |
---|---|
Allocate | |
SyncIn |
Definition at line 5 of file devicescope.h.
◆ TaskCoroutineID
|
strong |
describes all types of coroutine tasks known to TTG
Enumerator | |
---|---|
Invalid | not a coroutine, i.e. a standard task function, -> void |
ResumableTask | |
DeviceTask | -> ttg::device::Task |
Definition at line 222 of file coroutine.h.
Function Documentation
◆ abort()
|
inline |
◆ broadcast() [1/5]
|
inline |
◆ broadcast() [2/5]
|
inline |
◆ broadcast() [3/5]
|
inline |
◆ broadcast() [4/5]
|
inline |
◆ broadcast() [5/5]
|
inline |
◆ broadcastk() [1/5]
|
inline |
◆ broadcastk() [2/5]
|
inline |
◆ broadcastk() [3/5]
|
inline |
◆ broadcastk() [4/5]
|
inline |
◆ broadcastk() [5/5]
|
inline |
◆ connect() [1/5]
|
inline |
Connect producer output terminal outindex to consumer input terminal inindex (via unique or otherwise wrapped pointers to TTs)
- Template Parameters
-
outindex The index of the output terminal on the producer. inindex The index of the input terminal on the consumer.
- Parameters
-
p The producer TT c The consumer TT
◆ connect() [2/5]
|
inline |
Connect producer output terminal outindex to consumer input terminal inindex (via bare pointers to TTs)
- Template Parameters
-
outindex The index of the output terminal on the producer. inindex The index of the input terminal on the consumer.
- Parameters
-
p The producer TT c The consumer TT
◆ connect() [3/5]
Connect producer output terminal outindex to consumer input terminal inindex (via TTBase pointers)
- Parameters
-
outindex The index of the output terminal on the producer. inindex The index of the input terminal on the consumer. producer The producer TT consumer The consumer TT
◆ connect() [4/5]
◆ connect() [5/5]
|
inline |
◆ default_execution_context()
|
inline |
◆ diagnose()
|
inline |
Definition at line 12 of file diagnose.h.
◆ diagnose_off()
|
inline |
Definition at line 14 of file diagnose.h.
◆ diagnose_on()
|
inline |
Definition at line 13 of file diagnose.h.
◆ edges()
|
inline |
Make a tuple of Edges to pass to.
- See also
- ttg::make_tt.
- Parameters
-
args variable argument list of Edges
- Returns
- A tuple of Edges.
- Note
- All Edges must have the same prototype.
- Examples
- distributed.cc, iterative.cc, reducing.cc, and simple.cc.
◆ execute()
|
inline |
Starts the execution in the given execution context.
- Parameters
-
world an execution context associated with the default backend
- Note
- Dispatches to the
ttg_execute
method of the default backend
- Examples
- distributed.cc, iterative.cc, reducing.cc, and simple.cc.
◆ fence()
|
inline |
Returns when all tasks associated with the given execution context have finished on all ranks.
- Parameters
-
world an execution context associated with the default backend
- Note
- Dispatches to the
ttg_fence
method of the default backend -
This is a collective operation with respect to
world
- Examples
- distributed.cc, iterative.cc, reducing.cc, and simple.cc.
◆ finalize() [1/8]
|
inline |
Finalizes the TTG runtime.
This will possibly try to release as many resources as possible (some resources may only be released at the conclusion of the program). Execution of TTG code is not possible after calling this.
- Note
- Dispatches to the default backend's
ttg_finalize
. -
This is a collective operation with respect to the default execution context used by the matching
initialize
call
◆ finalize() [2/8]
|
inline |
◆ finalize() [3/8]
|
inline |
Finalize streaming input terminals connected to the given output terminal; use this to finalize terminals with non-void
key.
- Template Parameters
-
<i> The index of the output terminal through which to finalize connected streaming terminals.
- Parameters
-
key The key identifying the tasks for which to finalize the streaming terminal. t The task's output terminals.
◆ finalize() [4/8]
|
inline |
Finalize streaming input terminals connecting to the given output terminal for tasks identified by key
.
- Parameters
-
key The key identifying the tasks for which to finalize the streaming terminal. t The output terminal through which to finalize connected streaming terminals.
- Examples
- distributed.cc, iterative.cc, reducing.cc, and simple.cc.
◆ finalize() [5/8]
◆ finalize() [6/8]
|
inline |
◆ finalize() [7/8]
|
inline |
Finalize streaming input terminals connected to the i
th output terminal in the tuple; use this to finalize terminals with void
key.
- Template Parameters
-
<i> The index of the output terminal through which to finalize connected streaming terminals.
- Parameters
-
t The task's output terminals.
◆ finalize() [8/8]
|
inline |
◆ fuse()
|
inline |
Fuse edges into one This allows receiving one data from either of the combined edges.
- Note
- All the types of the edges have to have the same prototype.
- The valuesT template argument is used only for variadic arguments.
- Parameters
-
args The edges to combine one edge.
- Returns
- One edge with the same type, combining the input edges.
◆ get_data_descriptor()
const ttg_data_descriptor* ttg::get_data_descriptor | ( | ) |
Definition at line 285 of file data_descriptor.h.
◆ get_default_world()
|
inline |
- Examples
- distributed.cc, iterative.cc, reducing.cc, and simple.cc.
◆ get_ptr()
|
inline |
◆ git_description()
|
noexcept |
Definition at line 11 of file version.cc.
◆ git_revision()
|
noexcept |
Definition at line 6 of file version.cc.
◆ has_value() [1/2]
bool ttg::has_value | ( | std::future< T > const & | f | ) |
◆ has_value() [2/2]
bool ttg::has_value | ( | std::shared_future< T > const & | f | ) |
◆ hash_combine()
|
inline |
◆ initialize() [1/2]
|
inline |
◆ initialize() [2/2]
void ttg::initialize | ( | int | argc, |
char ** | argv, | ||
int | num_threads = -1 , |
||
RestOfArgs && | ... | ||
) |
- Examples
- distributed.cc, iterative.cc, reducing.cc, and simple.cc.
◆ initialize_fpe()
void ttg::initialize_fpe | ( | ) |
Initializes the floating point exceptions.
Enables (if available) FE_DIVBYZERO, FE_INVALID, and FE_OVERFLOW; FE_UNDERFLOW and FE_INEXACT are disabled (if available).
- Warning
- This should be called from the main thread before any threads have been created (i.e. before madness::initialize()), so that all threads inherit the same floating point environment.
◆ invoke_once() [1/2]
|
inline |
Invoke the provided template task tt
once with the provided key, on the process provided by the tt's keymap.
- Parameters
-
tt a template task to invoke key the to invoke the tt
on
- Note
invoke_once
may be called by all processes and must at least be called by the process returned bytt.keymap(key)
◆ invoke_once() [2/2]
|
inline |
◆ launch_debugger()
void ttg::launch_debugger | ( | int | rank, |
const char * | exec_name, | ||
const char * | cmd | ||
) |
◆ launch_gdb()
◆ launch_lldb()
◆ log()
void ttg::log | ( | const T & | t, |
const Ts &... | ts | ||
) |
atomically prints to std::clog a sequence of items (separated by ttg::print_separator) followed by std::endl
◆ make_graph_executable()
|
inline |
- Examples
- distributed.cc, iterative.cc, reducing.cc, and simple.cc.
◆ make_ptr()
|
inline |
◆ make_scratch()
auto ttg::make_scratch | ( | T * | val, |
ttg::scope | scope, | ||
std::size_t | count = 1 |
||
) |
Definition at line 13 of file devicescratch.h.
◆ make_shared_constraint()
auto ttg::make_shared_constraint | ( | Args &&... | args | ) |
Make a constraint that can be shared between multiple TT instances. Overload for incomplete templated constraint types.
Example: // SequencedKeysConstraint is incomplete auto c = ttg::make_shared_constraint<SequencedKeysConstraint>([](Key& k){ return k[0]; }); auto tt_a = ttg::make_tt<Key>(...); tt_a->add_constraint(c); auto tt_b = ttg::make_tt<Key>(...); tt_b->add_constraint(c);
-> the constraint will handle keys from both tt_a and tt_b. Both TTs must have the same key type.
Make a constraint that can be shared between multiple TT instances. Overload for complete constraint types.
Definition at line 398 of file constraint.h.
◆ make_traverse()
auto ttg::make_traverse | ( | TTVisitor && | tt_v = trivial_1param_lambda , |
InVisitor && | in_v = trivial_1param_lambda , |
||
OutVisitor && | out_v = trivial_1param_lambda |
||
) |
Definition at line 205 of file traverse.h.
◆ make_ttg()
auto ttg::make_ttg | ( | ttseqT && | tts, |
const input_terminalsT & | ins, | ||
const output_terminalsT & | outs, | ||
const std::string & | name = "ttg" |
||
) |
◆ operator!=()
◆ operator<<() [1/2]
std::ostream& ttg::operator<< | ( | std::ostream & | os, |
const MultiIndex< Rank > & | key | ||
) |
Definition at line 83 of file multiindex.h.
◆ operator<<() [2/2]
|
inline |
◆ operator==()
◆ print()
void ttg::print | ( | const T & | t, |
const Ts &... | ts | ||
) |
atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by std::endl
- Examples
- distributed.cc, iterative.cc, reducing.cc, and simple.cc.
◆ print_error()
void ttg::print_error | ( | const T & | t, |
const Ts &... | ts | ||
) |
atomically prints to std::cerr a sequence of items (separated by ttg::print_separator) followed by std::endl
◆ rank()
|
inline |
- Parameters
-
world an execution context to query the process rank from
- Note
- Calls
rank()
onworld
- Examples
- distributed.cc.
◆ send() [1/8]
|
inline |
Sends a control message (message without an accompanying task id or a value) to the template tasks attached to the output terminal of this template task.
- Note
- this is provided to support
send<i>
with and without explicitly-passed terminal tuple
- Template Parameters
-
<i> Identifies which output terminal of this template task to select for sending
◆ send() [2/8]
|
inline |
Sends a task id and a value to the template tasks attached to the output terminal of this template task.
- Note
- this is provided to support
send<i>
with and without explicitly-passed terminal tuple
- Template Parameters
-
<i> Identifies which output terminal of this template task to select for sending
- Parameters
-
[in] key the id of the task(s) receiving the value [in] value the value to send to the receiving task(s)
◆ send() [3/8]
|
inline |
Sends a task id and a value to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t
.
- Template Parameters
-
<i> Identifies which output terminal in t
to select for sending
- Parameters
-
[in] key the id of the task(s) receiving the value [in] value the value to send to the receiving task(s) [in] t a tuple of output terminals (typically, this is the output terminal of the template task where this is invoked)
◆ send() [4/8]
|
inline |
Sends a task id and a value to the given output terminal.
- Parameters
-
[in] key the id of the task(s) receiving the value [in] value the value to send to the receiving task(s) [in] t the output terminal
- Examples
- distributed.cc, iterative.cc, reducing.cc, and simple.cc.
◆ send() [5/8]
|
inline |
Sends a task id and a value to the template tasks attached to the output terminal of this template task.
- Parameters
-
[in] i Identifies which output terminal of this template task to select for sending [in] key the id of the task(s) receiving the value [in] value the value to send to the receiving task(s)
◆ send() [6/8]
|
inline |
◆ send() [7/8]
|
inline |
Sends a control message (message without an accompanying task id or a value) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t
.
- Template Parameters
-
<i> Identifies which output terminal in t
to select for sending
- Parameters
-
[in] t a tuple of output terminals (typically, this is the output terminal of the template task where this is invoked)
◆ send() [8/8]
|
inline |
◆ sendk() [1/4]
|
inline |
Sends a task id (without an accompanying value) to the template tasks attached to the output terminal of this template task.
- Note
- this is provided to support
sendk<i>
with and without explicitly-passed terminal tuple
- Template Parameters
-
<i> Identifies which output terminal of this template task to select for sending
- Parameters
-
[in] key the id of the task(s) receiving the value
◆ sendk() [2/4]
|
inline |
Sends a task id (without an accompanying value) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t
.
- Template Parameters
-
<i> Identifies which output terminal in t
to select for sending
- Parameters
-
[in] key the id of the task(s) receiving the value [in] t a tuple of output terminals (typically, this is the output terminal of the template task where this is invoked)
◆ sendk() [3/4]
|
inline |
◆ sendk() [4/4]
|
inline |
Sends a task id (without an accompanying value) to the template tasks attached to the output terminal of this template task.
- Parameters
-
[in] i Identifies which output terminal of this template task to select for sending [in] key the id of the task(s) receiving the value
◆ sendv() [1/4]
|
inline |
Sends a value (without an accompanying task id) to the template tasks attached to the output terminal of this template task.
- Parameters
-
[in] <i> Identifies which output terminal of this template task to select for sending [in] value the value to send to the receiving task(s)
◆ sendv() [2/4]
|
inline |
Sends a value (without an accompanying task id) to the template tasks attached to the output terminal of this template task.
- Note
- this is provided to support
sendv<i>
with and without explicitly-passed terminal tuple
- Template Parameters
-
<i> Identifies which output terminal of this template task to select for sending
- Parameters
-
[in] value the value to send to the receiving task(s)
◆ sendv() [3/4]
|
inline |
Sends a value (without an accompanying task id) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t
.
- Template Parameters
-
<i> Identifies which output terminal in t
to select for sending
- Parameters
-
[in] value the value to send to the receiving task(s) [in] t a tuple of output terminals (typically, this is the output terminal of the template task where this is invoked)
◆ sendv() [4/4]
|
inline |
◆ SequencedKeysConstraint() [1/4]
ttg::SequencedKeysConstraint | ( | const SequencedKeysConstraint< Key, Ordinal, Compare, Mapper > & | ) | -> SequencedKeysConstraint< Key, Ordinal, Compare, Mapper > |
◆ SequencedKeysConstraint() [2/4]
ttg::SequencedKeysConstraint | ( | Mapper && | ) | -> SequencedKeysConstraint< std::decay_t< std::tuple_element_t< 0, boost::callable_traits::args_t< Mapper >>>, std::decay_t< boost::callable_traits::return_type_t< Mapper >>, std::less< std::decay_t< boost::callable_traits::return_type_t< Mapper >>>, std::enable_if_t< std::is_invocable_v< Mapper, std::decay_t< std::tuple_element_t< 0, boost::callable_traits::args_t< Mapper >>>>, Mapper > > |
◆ SequencedKeysConstraint() [3/4]
ttg::SequencedKeysConstraint | ( | Mapper && | , |
bool | |||
) | -> SequencedKeysConstraint< std::decay_t< std::tuple_element_t< 0, boost::callable_traits::args_t< Mapper >>>, std::decay_t< boost::callable_traits::return_type_t< Mapper >>, std::less< std::decay_t< boost::callable_traits::return_type_t< Mapper >>>, std::enable_if_t< std::is_invocable_v< Mapper, std::decay_t< std::tuple_element_t< 0, boost::callable_traits::args_t< Mapper >>>>, Mapper > > |
◆ SequencedKeysConstraint() [4/4]
ttg::SequencedKeysConstraint | ( | SequencedKeysConstraint< Key, Ordinal, Compare, Mapper > && | ) | -> SequencedKeysConstraint< Key, Ordinal, Compare, Mapper > |
◆ set_size() [1/8]
|
inline |
◆ set_size() [2/8]
|
inline |
Set the size of all streaming input terminals connected to the output terminal for a task identified by key
.
- Template Parameters
-
<i> The index of the terminal through which to set the size.
- Parameters
-
key The key identifying the task (or tasks) for which to set the streaming terminal size. size THe size to set (i.e., the number of elements to accumulate). t The tasks's output terminals.
◆ set_size() [3/8]
|
inline |
◆ set_size() [4/8]
|
inline |
◆ set_size() [5/8]
|
inline |
Set the size of all streaming input terminals connected to an output terminal for a task, with void
key.
- Template Parameters
-
<i> The index of the terminal for which to set the size.
- Parameters
-
size THe size to set (i.e., the number of elements to accumulate). t The task's output terminals.
◆ set_size() [6/8]
|
inline |
◆ set_size() [7/8]
|
inline |
◆ set_size() [8/8]
|
inline |
◆ size()
|
inline |
◆ trace()
|
inline |
if trace_enabled()==true
and tracing()==true
atomically prints to std::clog a sequence of items (separated by ttg::print_separator) followed by std::endl
◆ trace_enabled()
|
inlineconstexpr |
◆ trace_off()
|
inline |
disables tracing; if trace_enabled()==true
this has no effect
◆ trace_on()
|
inline |
enables tracing; if trace_enabled()==true
this has no effect
◆ tracing()
|
inline |
returns whether tracing is enabled
To enable tracing invoke trace_on(). To disable tracing
- Returns
- false, if
trace_enabled()==false
, otherwise returns true if the most recent call totrace_on()
has not been followed bytrace_off()
◆ version()
std::array<int, 3> ttg::version | ( | ) |
Definition at line 4 of file version.cc.
Variable Documentation
◆ print_separator
◆ print_seq_begin
◆ print_seq_end
◆ print_seq_separator
◆ ttg_runtime
|
constexpr |