ttg::send<0>(0, 1.0, out);
ttg::send<0>(1, 2.0, out);
13 ttg::print(
"Called task B(", key,
") with input data ", input);
ttg::sendv<0>(input + 1.0, out);
ttg::sendv<1>(input + 1.0, out);
20static void c(
const double &b0,
const double &b1, std::tuple<> &out) {
21 ttg::print(
"Called task C with inputs ", b0,
" from B(0) and ", b1,
" from B(1)");
24int main(
int argc,
char **argv) {
32 auto wb(ttg::make_tt(b,
ttg::edges(A_B),
ttg::edges(B_C0, B_C1),
"B", {
"from A"}, {
"to 1st input of C",
"to 2nd input of C"}));
37 if (wa->get_world().rank() == 0) wa->invoke();
Edge is used to connect In and Out terminals.
int main(int argc, char **argv)
void execute(ttg::World world)
Starts the execution in the given execution context.
void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
void send()
Sends a control message (message without an accompanying task id or a value) to the template tasks at...
ttg::World & get_default_world()
void fence(ttg::World world)
Returns when all tasks associated with the given execution context have finished on all ranks.
void sendv(valueT &&value, ttg::Out< void, valueT > &t)
Sends a value (without an accompanying task id) to the given output terminal.
void finalize()
Finalizes the TTG runtime.
void print(const T &t, const Ts &... ts)
atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by st...
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.
auto edges(inedgesT &&...args)
Make a tuple of Edges to pass to.