|
ttg 1.0.0-alpha
Template Task Graph (TTG): flowgraph-based programming model for high-performance distributed-memory algorithms
|
top-level TTG namespace contains runtime-neutral functionality More...
Namespaces | |
| namespace | base |
| namespace | detail |
| namespace | device |
| namespace | iostream |
| namespace | meta |
| namespace | overload |
| place for overloading/instantiating hash and other functionality | |
| namespace | umpire |
Classes | |
| class | BinarySpanningTree |
a binary spanning tree of integers in the [0,size) interval More... | |
| class | BinaryTreeBroadcast |
| generic binary broadcast of a value to a set of {key,value} pairs More... | |
| class | BinaryTreeReduce |
| generic binary reduction of a set of key-value pairs. More... | |
| struct | ConstraintBase |
| class | Debugger |
| 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... | |
| class | Dot |
| Prints the graph to a std::string in the format understood by GraphViz's dot program. More... | |
| class | Edge |
| Edge is used to connect In and Out terminals. More... | |
| struct | edges_to_output_terminals |
| struct | edges_to_output_terminals< std::tuple< edgesT... > > |
| struct | edges_to_output_value_types |
| struct | edges_to_output_value_types< std::tuple< edgesT... > > |
| class | Env |
| struct | event |
| represents a generic one-time event More... | |
| struct | has_split_metadata |
| struct | has_split_metadata< T, ttg::meta::void_t< decltype(std::declval< SplitMetadataDescriptor< T > >().get_metadata(std::declval< T >()))> > |
| class | In |
| class | InTerminalBase |
Base type for input terminals receiving messages annotated by task IDs of type keyT More... | |
| struct | iovec |
| struct | MultiIndex |
| class | Out |
| class | OutTerminalBase |
| struct | resumable_task |
| task that can be resumed after some events occur More... | |
| struct | resumable_task_events |
| struct | resumable_task_state |
| struct | runtime_traits |
| struct | runtime_traits< Runtime::MADWorld > |
| struct | runtime_traits< Runtime::PaRSEC > |
| struct | SequencedKeysConstraint |
| class | SinkTT |
| A data sink for one input. More... | |
| struct | SplitMetadataDescriptor |
| class | TerminalBase |
| struct | terminals_to_edges |
| struct | terminals_to_edges< std::tuple< termsT... > > |
| class | Traverse |
| Traverses a graph of ops in depth-first manner following out edges. More... | |
| class | TTBase |
| A base class for all template tasks. More... | |
| class | TTG |
| a template task graph implementation 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 > |
| template<typename T > | |
| using | pinned_allocator_t = ::umpire::default_init_allocator< T, ::umpire::allocator< T, ::umpire::detail::MutexLock<::ttg::Env >, umpire::pinned_allocator_getter > > |
| pooled thread-safe pinned host memory allocator for device computing | |
| 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 , Invalid = 0xF } |
| 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) |
Make the TTG tts executable. Applies. | |
| template<typename keyT , typename valueT > | |
| void | connect (ttg::Out< keyT, valueT > *out, ttg::In< keyT, valueT > *in) |
| Connect output terminal to successor input terminal. | |
| void | connect (ttg::TerminalBase *out, ttg::TerminalBase *in) |
| Connect output terminal to successor input terminal. | |
| 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) | |
| 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) | |
| 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) | |
| 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. | |
| template<typename... inedgesT> | |
| auto | edges (inedgesT &&...args) |
| Make a tuple of Edges to pass to. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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 ith output terminal in the tuple; use this to finalize terminals with void key. | |
| void | finalize (std::size_t i) |
| template<std::size_t i> | |
| void | finalize () |
| Finalizes the TTG runtime. | |
| template<typename... RestOfArgs> | |
| void | initialize (int argc, char **argv, int num_threads=-1, RestOfArgs &&...) |
| void | finalize () |
| Finalizes the TTG runtime. | |
| void | abort () |
Aborts the TTG program using the default backend's ttg_abort method. | |
| World | default_execution_context () |
| Accesses the default backend's default execution context. | |
| void | execute (World world=default_execution_context()) |
| Starts the execution in the given execution context. | |
| void | fence (World world=default_execution_context()) |
| Returns when all tasks associated with the given execution context have finished on all ranks. | |
| 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. | |
| 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. | |
| 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 | |
| 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 | |
| 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 | |
| constexpr bool | trace_enabled () |
| returns whether tracing was enabled at configure time | |
| bool | tracing () |
| returns whether tracing is enabled | |
| void | trace_on () |
enables tracing; if trace_enabled()==true this has no effect | |
| void | trace_off () |
disables tracing; if trace_enabled()==true this has no effect | |
| 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 = '}' |
top-level TTG namespace contains runtime-neutral functionality
| using ttg::Buffer = typedef TTG_IMPL_NS::Buffer<T, Allocator> |
| using ttg::CompositeOp = typedef TTG<input_terminalsT, output_terminalsT> |
| using ttg::coroutine_handle = typedef TTG_CXX_COROUTINE_NAMESPACE::coroutine_handle<Promise> |
Definition at line 24 of file coroutine.h.
| using ttg::devicescratch = typedef TTG_IMPL_NS::devicescratch<T> |
Definition at line 11 of file devicescratch.h.
| using ttg::OpBase = typedef TTBase |
| using ttg::pinned_allocator_t = typedef ::umpire::default_init_allocator< T, ::umpire::allocator<T, ::umpire::detail::MutexLock<::ttg::Env>, umpire::pinned_allocator_getter> > |
| using ttg::Ptr = typedef TTG_IMPL_NS::Ptr<T> |
| using ttg::suspend_always = typedef TTG_CXX_COROUTINE_NAMESPACE::suspend_always |
Definition at line 21 of file coroutine.h.
| using ttg::suspend_never = typedef TTG_CXX_COROUTINE_NAMESPACE::suspend_never |
Definition at line 22 of file coroutine.h.
| using ttg::TemplateTaskBase = typedef TTBase |
| using ttg::TemplateTaskGraph = typedef TTG<input_terminalsT, output_terminalsT> |
| using ttg::TTValue = typedef TTG_IMPL_NS::TTValue<T> |
| using ttg::typelist = typedef meta::typelist<Ts...> |
Definition at line 81 of file typelist.h.
|
strong |
|
strong |
denotes task execution space
| Enumerator | |
|---|---|
| Host | |
| CUDA | |
| HIP | |
| L0 | |
| Invalid | |
Definition at line 17 of file execution.h.
|
strong |
| Enumerator | |
|---|---|
| PaRSEC | |
| MADWorld | |
Definition at line 15 of file runtimes.h.
|
strong |
| Enumerator | |
|---|---|
| Allocate | |
| SyncIn | |
| Invalid | |
Definition at line 5 of file devicescope.h.
|
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.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Connect producer output terminal outindex to consumer input terminal inindex (via unique or otherwise wrapped pointers to TTs)
| outindex | The index of the output terminal on the producer. |
| inindex | The index of the input terminal on the consumer. |
| p | The producer TT |
| c | The consumer TT |
Definition at line 107 of file func.h.
|
inline |
Connect producer output terminal outindex to consumer input terminal inindex (via bare pointers to TTs)
| outindex | The index of the output terminal on the producer. |
| inindex | The index of the input terminal on the consumer. |
| p | The producer TT |
| c | The consumer TT |
Definition at line 117 of file func.h.
Connect producer output terminal outindex to consumer input terminal inindex (via TTBase pointers)
| 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 |
Definition at line 126 of file func.h.
|
inline |
|
inline |
|
inline |
Definition at line 12 of file diagnose.h.
|
inline |
|
inline |
|
inline |
Make a tuple of Edges to pass to.
| args | variable argument list of Edges |
Definition at line 147 of file func.h.
|
inline |
Starts the execution in the given execution context.
| world | an execution context associated with the default backend |
ttg_execute method of the default backend Definition at line 74 of file run.h.
|
inline |
Returns when all tasks associated with the given execution context have finished on all ranks.
| world | an execution context associated with the default backend |
ttg_fence method of the default backend world Definition at line 81 of file run.h.
|
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.
ttg_finalize. initialize call Definition at line 589 of file func.h.
| void ttg::finalize | ( | ) |
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.
ttg_finalize. initialize call
|
inline |
|
inline |
Finalize streaming input terminals connected to the given output terminal; use this to finalize terminals with non-void key.
| <i> | The index of the output terminal through which to finalize connected streaming terminals. |
| key | The key identifying the tasks for which to finalize the streaming terminal. |
| t | The task's output terminals. |
|
inline |
Finalize streaming input terminals connecting to the given output terminal for tasks identified by key.
| key | The key identifying the tasks for which to finalize the streaming terminal. |
| t | The output terminal through which to finalize connected streaming terminals. |
Definition at line 543 of file func.h.
|
inline |
|
inline |
Finalize streaming input terminals connected to the ith output terminal in the tuple; use this to finalize terminals with void key.
| <i> | The index of the output terminal through which to finalize connected streaming terminals. |
| t | The task's output terminals. |
|
inline |
|
inline |
Fuse edges into one This allows receiving one data from either of the combined edges.
| args | The edges to combine one edge. |
| const ttg_data_descriptor * ttg::get_data_descriptor | ( | ) |
Definition at line 285 of file data_descriptor.h.
|
inline |
Definition at line 80 of file world.h.
|
inline |
|
noexcept |
Definition at line 11 of file version.cc.
|
noexcept |
Definition at line 6 of file version.cc.
| bool ttg::has_value | ( | std::future< T > const & | f | ) |
| bool ttg::has_value | ( | std::shared_future< T > const & | f | ) |
|
inline |
|
inline |
| void ttg::initialize | ( | int | argc, |
| char ** | argv, | ||
| int | num_threads = -1, |
||
| RestOfArgs && | ... | ||
| ) |
| 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).
Invoke the provided template task tt once with the provided key, on the process provided by the tt's keymap.
| tt | a template task to invoke |
| key | the to invoke the tt on |
invoke_once may be called by all processes and must at least be called by the process returned by tt.keymap(key) Invoke the provided template task tt once, on the process provided by the tt's keymap
| tt | a template task to invoke |
invoke_once may be called by all processes and must at least be called by the process returned by tt.keymap() Definition at line 97 of file run.h.
| void ttg::launch_debugger | ( | int | rank, |
| const char * | exec_name, | ||
| const char * | cmd | ||
| ) |
| void ttg::launch_gdb | ( | int | rank, |
| const char * | exec_name | ||
| ) |
| void ttg::launch_lldb | ( | int | rank, |
| const char * | exec_name | ||
| ) |
| 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
Definition at line 146 of file print.h.
|
inline |
Make the TTG tts executable. Applies.
| tts | The task graph to make executable. |
Definition at line 80 of file func.h.
|
inline |
| auto ttg::make_scratch | ( | T * | val, |
| ttg::scope | scope, | ||
| std::size_t | count = 1 |
||
| ) |
Definition at line 14 of file devicescratch.h.
| 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.
| auto ttg::make_traverse | ( | TTVisitor && | tt_v = trivial_1param_lambda, |
| InVisitor && | in_v = trivial_1param_lambda, |
||
| OutVisitor && | out_v = trivial_1param_lambda |
||
| ) |
| auto ttg::make_ttg | ( | ttseqT && | tts, |
| const input_terminalsT & | ins, | ||
| const output_terminalsT & | outs, | ||
| const std::string & | name = "ttg" |
||
| ) |
| std::ostream & ttg::operator<< | ( | std::ostream & | os, |
| const MultiIndex< Rank > & | key | ||
| ) |
Definition at line 83 of file multiindex.h.
|
inline |
| 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
Definition at line 130 of file print.h.
| 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
Definition at line 138 of file print.h.
|
inline |
|
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.
send<i> with and without explicitly-passed terminal tuple | <i> | Identifies which output terminal of this template task to select for sending |
Definition at line 340 of file func.h.
|
inline |
Sends a task id and a value to the template tasks attached to the output terminal of this template task.
send<i> with and without explicitly-passed terminal tuple | <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) |
Definition at line 229 of file func.h.
|
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.
| <i> | Identifies which output terminal in t 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) |
| [in] | t | a tuple of output terminals (typically, this is the output terminal of the template task where this is invoked) |
|
inline |
|
inline |
Sends a task id and a value to the template tasks attached to the output terminal of this template task.
| [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) |
Definition at line 212 of file func.h.
|
inline |
|
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.
| <i> | Identifies which output terminal in t to select for sending |
| [in] | t | a tuple of output terminals (typically, this is the output terminal of the template task where this is invoked) |
|
inline |
|
inline |
Sends a task id (without an accompanying value) to the template tasks attached to the output terminal of this template task.
sendk<i> with and without explicitly-passed terminal tuple | <i> | Identifies which output terminal of this template task to select for sending |
| [in] | key | the id of the task(s) receiving the value |
Definition at line 268 of file func.h.
|
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.
| <i> | Identifies which output terminal in t to select for sending |
| [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) |
|
inline |
|
inline |
Sends a task id (without an accompanying value) to the template tasks attached to the output terminal of this template task.
| [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 |
Definition at line 254 of file func.h.
|
inline |
Sends a value (without an accompanying task id) to the template tasks attached to the output terminal of this template task.
| [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) |
Definition at line 294 of file func.h.
|
inline |
Sends a value (without an accompanying task id) to the template tasks attached to the output terminal of this template task.
sendv<i> with and without explicitly-passed terminal tuple | <i> | Identifies which output terminal of this template task to select for sending |
| [in] | value | the value to send to the receiving task(s) |
Definition at line 309 of file func.h.
|
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.
| <i> | Identifies which output terminal in t to select for sending |
| [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) |
|
inline |
Sends a value (without an accompanying task id) to the given output terminal.
| [in] | value | the value to send to the receiving task(s) |
| [in] | t | the output terminal |
Definition at line 179 of file func.h.
| ttg::SequencedKeysConstraint | ( | const SequencedKeysConstraint< Key, Ordinal, Compare, Mapper > & | ) | -> SequencedKeysConstraint< Key, Ordinal, Compare, Mapper > |
| 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 > > |
| 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 > > |
| ttg::SequencedKeysConstraint | ( | SequencedKeysConstraint< Key, Ordinal, Compare, Mapper > && | ) | -> SequencedKeysConstraint< Key, Ordinal, Compare, Mapper > |
|
inline |
|
inline |
Set the size of all streaming input terminals connected to the output terminal for a task identified by key.
| <i> | The index of the terminal through which to set the size. |
| 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. |
Definition at line 494 of file func.h.
|
inline |
|
inline |
|
inline |
Set the size of all streaming input terminals connected to an output terminal for a task, with void key.
| <i> | The index of the terminal for which to set the size. |
| size | THe size to set (i.e., the number of elements to accumulate). |
| t | The task's output terminals. |
Definition at line 524 of file func.h.
|
inline |
Set the size of all streaming input terminals connected to an output terminal with void key.
| size | THe size to set (i.e., the number of elements to accumulate). |
| t | The output terminal through which to set the size. |
Definition at line 515 of file func.h.
|
inline |
|
inline |
|
inline |
|
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
Definition at line 43 of file trace.h.
|
inlineconstexpr |
|
inline |
disables tracing; if trace_enabled()==true this has no effect
Definition at line 38 of file trace.h.
|
inline |
enables tracing; if trace_enabled()==true this has no effect
Definition at line 36 of file trace.h.
|
inline |
returns whether tracing is enabled
To enable tracing invoke trace_on(). To disable tracing
trace_enabled()==false, otherwise returns true if the most recent call to trace_on() has not been followed by trace_off() Definition at line 28 of file trace.h.
| std::array< int, 3 > ttg::version | ( | ) |
Definition at line 4 of file version.cc.
|
constexpr |
1.9.8