2#ifndef TTG_PARSEC_FWD_H
3#define TTG_PARSEC_FWD_H
13extern "C" struct parsec_context_s;
17 template <
typename keyT,
typename output_terminalsT,
typename derivedT,
23 template <
typename keyT,
typename output_terminalsT,
typename derivedT,
typename... input_valueTs>
24 using Op [[deprecated(
"use TT instead")]] =
TT<keyT, output_terminalsT, derivedT,
ttg::typelist<input_valueTs...>>;
26 template <
typename keyT,
typename output_terminalsT,
typename derivedT,
typename... input_valueTs>
33 inline void ttg_initialize(
int argc,
char **argv,
int num_threads = -1, parsec_context_s * =
nullptr);
38 static inline void ttg_abort();
51 template <
typename Callback>
61 static void ttg_broadcast(
ttg::World world, T &data,
int source_rank);
64 template<
typename T,
typename Allocator = std::allocator<std::decay_t<T>>>
76 template<
typename T,
typename... Args>
82 template<
typename... Views>
85 template<
typename T, std::
size_t N>
88 template<
typename...
Buffer>
91 template<
typename...
Buffer>
Edge is used to connect In and Out terminals.
this contains PaRSEC-based TTG functionality
void ttg_fence(ttg::World world)
void ttg_register_ptr(ttg::World world, const std::shared_ptr< T > &ptr)
Ptr< std::decay_t< T > > get_ptr(T &&obj)
Ptr< T > make_ptr(Args &&... args)
void ttg_register_callback(ttg::World world, Callback &&callback)
ttg::Edge & ttg_ctl_edge(ttg::World world)
void make_executable_hook(ttg::World &)
void post_device_out(std::tuple< Buffer &... > &b)
void ttg_initialize(int argc, char **argv, int num_threads=-1, parsec_context_s *=nullptr)
parsec_data_t * buffer_data(T &&buffer)
ttg::World ttg_default_execution_context()
void ttg_execute(ttg::World world)
bool register_device_memory(std::tuple< Views &... > &views)
void mark_device_out(std::tuple< Buffer &... > &b)
void ttg_sum(ttg::World world, double &value)
void ttg_register_status(ttg::World world, const std::shared_ptr< std::promise< void > > &status_ptr)
ExecutionSpace
denotes task execution space