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_MADNESS_FWD_H
3#define TTG_MADNESS_FWD_H
4
5#include "ttg/fwd.h"
6#include "ttg/util/typelist.h"
7#include "ttg/util/span.h"
8
9#include <future>
10
11namespace ttg_madness {
12
13 template <typename keyT, typename output_terminalsT, typename derivedT,
14 typename input_valueTs = ttg::typelist<>,
16 class TT;
17
19 template <typename keyT, typename output_terminalsT, typename derivedT, typename... input_valueTs>
20 using Op [[deprecated("use TT instead")]] = TT<keyT, output_terminalsT, derivedT, ttg::typelist<input_valueTs...>>;
22 template <typename keyT, typename output_terminalsT, typename derivedT, typename... input_valueTs>
23 using TemplateTask = TT<keyT, output_terminalsT, derivedT, ttg::typelist<input_valueTs...>>;
24
25 class WorldImpl;
26
27 inline void make_executable_hook(ttg::World&);
28
29 inline void ttg_initialize(int argc, char **argv, int num_threads = -1);
30
31 inline void ttg_finalize();
32
33 [[noreturn]]
34 inline void ttg_abort();
35
37
38 inline void ttg_execute(ttg::World world);
39
40 inline void ttg_fence(ttg::World world);
41
42 template <typename T>
43 inline void ttg_register_ptr(ttg::World world, const std::shared_ptr<T> &ptr);
44
45 inline void ttg_register_status(ttg::World world, const std::shared_ptr<std::promise<void>> &status_ptr);
46
47 inline ttg::Edge<> &ttg_ctl_edge(ttg::World world);
48
49 template <typename T>
50 inline void ttg_sum(ttg::World world, T &value);
51
52 template <typename T>
53 inline void ttg_broadcast(ttg::World world, T &data, int source_rank);
54
55
56 /* device definitions, not currently provided by this impl */
57 template<typename T, typename Allocator = std::allocator<T>>
58 struct Buffer;
59
60 template<typename T>
61 struct Ptr;
62
63 template<typename T>
65
66 template<typename T>
67 struct TTValue;
68
69 template<typename T, typename... Args>
70 Ptr<T> make_ptr(Args&&... args);
71
72 template<typename T>
73 auto get_ptr(T&& obj);
74
75 template<typename... Views>
76 inline bool register_device_memory(std::tuple<Views&...> &views);
77
78 template<typename T, std::size_t N>
79 inline bool register_device_memory(const ttg::span<T, N>& span);
80
81 template<typename... Buffer>
82 inline void post_device_out(std::tuple<Buffer&...> &b);
83
84 template<typename... Buffer>
85 inline void mark_device_out(std::tuple<Buffer&...> &b);
86
87 inline int num_devices();
88
89} // namespace ttg_madness
90
91#endif // TTG_MADNESS_FWD_H
Edge is used to connect In and Out terminals.
Definition edge.h:26
this contains MADNESS-based TTG functionality
Definition fwd.h:17
void ttg_register_ptr(ttg::World world, const std::shared_ptr< T > &ptr)
Definition ttg.h:155
void ttg_initialize(int argc, char **argv, int num_threads=-1)
Definition ttg.h:131
int num_devices()
Definition device.h:7
Ptr< T > make_ptr(Args &&... args)
void ttg_execute(ttg::World world)
Definition ttg.h:149
ttg::Edge & ttg_ctl_edge(ttg::World world)
Definition ttg.h:173
auto get_ptr(T &&obj)
void ttg_register_status(ttg::World world, const std::shared_ptr< std::promise< void > > &status_ptr)
Definition ttg.h:164
void ttg_sum(ttg::World world, T &value)
Definition ttg.h:176
void ttg_fence(ttg::World world)
Definition ttg.h:152
void ttg_finalize()
Definition ttg.h:139
void make_executable_hook(ttg::World &)
Definition ttg.h:129
void mark_device_out(std::tuple< Buffer &... > &b)
void ttg_broadcast(ttg::World world, T &data, int source_rank)
Definition ttg.h:182
bool register_device_memory(std::tuple< Views &... > &views)
Definition devicefunc.h:18
void ttg_abort()
Definition ttg.h:145
void post_device_out(std::tuple< Buffer &... > &b)
ttg::World ttg_default_execution_context()
Definition ttg.h:144
ExecutionSpace
denotes task execution space
Definition execution.h:18
A container for types.
Definition typelist.h:25
A runtime-managed buffer mirrored between host and device memory.
Definition buffer.h:14