|
ttg 1.0.0
Template Task Graph (TTG): flowgraph-based programming model for high-performance distributed-memory algorithms
|
Go to the source code of this file.
Functions | |
| template<ttg::ExecutionSpace space, typename keyT = void, typename funcT , typename... input_edge_valuesT, typename... output_edgesT> | |
| auto | make_tt_tpl (funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output")) |
| Factory function to assist in wrapping a callable with signature. | |
| template<typename keyT = void, typename funcT , typename... input_edge_valuesT, typename... output_edgesT> | |
| auto | make_tt_tpl (funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output")) |
| template<ttg::ExecutionSpace space, typename keyT = void, typename funcT , typename... input_edge_valuesT, typename... output_edgesT> | |
| auto | make_tt (funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output")) |
| Factory function to assist in wrapping a callable with signature. | |
| template<typename keyT = void, typename funcT , typename... input_edge_valuesT, typename... output_edgesT> | |
| auto | make_tt (funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output")) |
| template<typename keyT , typename funcT , typename... input_valuesT, typename... output_edgesT> | |
| auto | wrapt (funcT &&func, const std::tuple< ttg::Edge< keyT, input_valuesT >... > &inedges, const std::tuple< output_edgesT... > &outedges, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output")) |
| template<typename keyT , typename funcT , typename... input_edge_valuesT, typename... output_edgesT> | |
| auto | wrap (funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges, const std::tuple< output_edgesT... > &outedges, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output")) |
| auto make_tt | ( | funcT && | func, |
| const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > & | inedges = std::tuple<>{}, |
||
| const std::tuple< output_edgesT... > & | outedges = std::tuple<>{}, |
||
| const std::string & | name = "wrapper", |
||
| const std::vector< std::string > & | innames = std::vector<std::string>(sizeof...(input_edge_valuesT), "input"), |
||
| const std::vector< std::string > & | outnames = std::vector<std::string>(sizeof...(output_edgesT), "output") |
||
| ) |
Factory function to assist in wrapping a callable with signature.
| keyT | a task ID type |
| funcT | a callable type |
| input_edge_valuesT | a pack of types of input data |
| output_edgesT | a pack of types of output edges |
| [in] | func | a callable object; it can be generic (e.g., a template function, a generic lambda, etc.; see below) or nongeneric (with concrete types for its arguments). In either case its signature must match the following:
|
| [in] | inedges | a tuple of input edges |
| [in] | outedges | a tuple of output edges |
| [in] | name | a string label for the resulting TT |
| [in] | name | a string label for the resulting TT |
| [in] | innames | string labels for the respective input terminals of the resulting TT |
| [in] | outnames | string labels for the respective output terminals of the resulting TT |
U& (where U is the corresponding template parameter) or auto& (in contexts such as generic lambdas where template arguments are implicit). The arguments that are to be consumed (e.g. mutated, moved, etc.) should be declared as U&& or auto&& (i.e., as universal references). For example, in key) and the first datum will be passed by const lvalue reference (i.e. no copy will be created by the runtime), whereas the second datum will be passed by an rvalue reference, which may cause copying. The corresponding free function analog of the above lambda is: const auto& are also permitted, their use is discouraged to avoid confusion; namely, const auto& denotes a consumable argument, NOT read-only, despite the const. | auto make_tt | ( | funcT && | func, |
| const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > & | inedges = std::tuple<>{}, |
||
| const std::tuple< output_edgesT... > & | outedges = std::tuple<>{}, |
||
| const std::string & | name = "wrapper", |
||
| const std::vector< std::string > & | innames = std::vector<std::string>(sizeof...(input_edge_valuesT), "input"), |
||
| const std::vector< std::string > & | outnames = std::vector<std::string>(sizeof...(output_edgesT), "output") |
||
| ) |
| auto make_tt_tpl | ( | funcT && | func, |
| const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > & | inedges = std::tuple<>{}, |
||
| const std::tuple< output_edgesT... > & | outedges = std::tuple<>{}, |
||
| const std::string & | name = "wrapper", |
||
| const std::vector< std::string > & | innames = std::vector<std::string>(sizeof...(input_edge_valuesT), "input"), |
||
| const std::vector< std::string > & | outnames = std::vector<std::string>(sizeof...(output_edgesT), "output") |
||
| ) |
Factory function to assist in wrapping a callable with signature.
| keyT | a task ID type |
| funcT | a callable type |
| input_edge_valuesT | a pack of types of input data |
| output_edgesT | a pack of types of output edges |
| [in] | func | a callable object; it can be generic (e.g., a template function, a generic lambda, etc.; see below) or nongeneric (with concrete types for its arguments). In either case its signature must match the following:
|
| [in] | inedges | a tuple of input edges |
| [in] | outedges | a tuple of output edges |
| [in] | name | a string label for the resulting TT |
| [in] | name | a string label for the resulting TT |
| [in] | innames | string labels for the respective input terminals of the resulting TT |
| [in] | outnames | string labels for the respective output terminals of the resulting TT |
func is described in the documentation of make_tt() | auto make_tt_tpl | ( | funcT && | func, |
| const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > & | inedges = std::tuple<>{}, |
||
| const std::tuple< output_edgesT... > & | outedges = std::tuple<>{}, |
||
| const std::string & | name = "wrapper", |
||
| const std::vector< std::string > & | innames = std::vector<std::string>(sizeof...(input_edge_valuesT), "input"), |
||
| const std::vector< std::string > & | outnames = std::vector<std::string>(sizeof...(output_edgesT), "output") |
||
| ) |
| auto wrap | ( | funcT && | func, |
| const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > & | inedges, | ||
| const std::tuple< output_edgesT... > & | outedges, | ||
| const std::string & | name = "wrapper", |
||
| const std::vector< std::string > & | innames = std::vector<std::string>(sizeof...(input_edge_valuesT), "input"), |
||
| const std::vector< std::string > & | outnames = std::vector<std::string>(sizeof...(output_edgesT), "output") |
||
| ) |
|
inline |
1.9.8