ttg 1.0.0
Template Task Graph (TTG): flowgraph-based programming model for high-performance distributed-memory algorithms
Loading...
Searching...
No Matches
fwd.h
Go to the documentation of this file.
1// SPDX-License-Identifier: BSD-3-Clause
2#ifndef TTG_FWD_H
3#define TTG_FWD_H
4
10// namespaces first ////////////////////////////////////////////////////////////////////////////////////////////////////
11
13namespace ttg {}
14// predeclare runtime-specific namespaces
15// note that these are top-level (but differ from the namespaces reserved by the runtime itself to avoid ambiguities)
17namespace ttg_madness {}
19namespace ttg_parsec {}
20
21// classes + functions /////////////////////////////////////////////////////////////////////////////////////////////////
22
23namespace ttg {
24
25 class TTBase;
26
28 using OpBase [[deprecated("use TTBase instead")]] = TTBase;
31
32 template <typename keyT = void, typename valueT = void>
33 class Edge;
34
35 template <typename input_terminalsT, typename output_terminalsT>
36 class TTG;
37
39 template <typename input_terminalsT, typename output_terminalsT>
41
43 template <typename input_terminalsT, typename output_terminalsT>
44 using CompositeOp [[deprecated("use TTG instead")]] = TTG<input_terminalsT, output_terminalsT>;
45
46 class World;
47
48 template <typename... RestOfArgs>
49 void initialize(int argc, char **argv, int num_threads = -1, RestOfArgs &&...);
50 void finalize();
51 [[noreturn]]
52 void abort();
54 void execute(ttg::World world);
55 void fence(ttg::World world);
56
57} // namespace ttg
58
59#include "ttg/impl_selector.h"
60#if TTG_USE_PARSEC
61#include "ttg/parsec/fwd.h"
62#endif
63#if TTG_USE_MADNESS
64#include "ttg/madness/fwd.h"
65#endif
66
67#endif // TTG_FWD_H
Edge is used to connect In and Out terminals.
Definition edge.h:26
A base class for all template tasks.
Definition tt.h:32
a template task graph implementation
Definition tt.h:32
this contains MADNESS-based TTG functionality
Definition fwd.h:17
this contains PaRSEC-based TTG functionality
Definition fwd.h:19
top-level TTG namespace contains runtime-neutral functionality
Definition keymap.h:9
void execute(ttg::World world)
Starts the execution in the given execution context.
Definition run.h:116
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.
Definition run.h:104
World default_execution_context()
Accesses the default backend's default execution context.
Definition run.h:110
void fence(ttg::World world)
Returns when all tasks associated with the given execution context have finished on all ranks.
Definition run.h:123
void finalize()
Finalizes the TTG runtime.
Definition func.h:590