Search Results
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... > > | |
struct edges_to_output_value_types | |
struct edges_to_output_value_types< 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 , 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) | |
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 11 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 | |
Invalid |
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 14 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 |