| /oneTBB/doc/main/tbb_userguide/ |
| H A D | Graph_Object.rst | 7 Conceptually a flow graph is a collection of nodes and edges. Each node 8 belongs to exactly one graph and edges are made only between nodes in 10 this collection of nodes and edges, and is used for invoking whole graph 12 complete, resetting the state of all nodes in the graph, and canceling 13 the execution of all nodes in the graph. 18 example returns immediately since this is a trivial graph with no nodes 28 …es not own the nodes associated with it. You need to make sure that the graph object's lifetime is… 32 …art pointers, be aware of the order of destruction for nodes and the graph to make sure that nodes…
|
| H A D | avoid_dynamic_node_removal.rst | 7 These are the basic guidelines regarding nodes and edges: 13 - Adding edges and nodes is supported 19 It is possible to add new nodes and edges and to remove old edges from a 20 flow graph as nodes are actively processing messages in the graph. 21 However, removing nodes is discouraged. Destroying a graph or any of its 22 nodes while there are messages being processed in the graph can lead to 24 graph causing program failure. Removal of nodes when the graph is not
|
| H A D | broadcast_or_send.rst | 7 An important characteristic of the predefined nodes is whether they push 9 following predefined nodes push messages to a single successor: 18 Other nodes push messages to all successors that will accept them. 21 The nodes that push to only a single successor are all buffer nodes. 73 all, nodes accept a message? Should the message be buffered until all 74 nodes accept it, or be only delivered to the accepting subset? If the 76 messages in the same order to all nodes or in the current priority order 84 nodes push each message to only one successor. And, you can use this
|
| H A D | estimate_flow_graph_performance.rst | 21 execution of the nodes along a path cannot be overlapped since they 26 More formally, let T be the total time consumed by all of the nodes 28 consumed along the path that takes the most time. The nodes along 48 you have many fine-grained nodes in your flow graph, the impact of 51 using lightweight policy with these nodes.
|
| H A D | Data_Flow_Graph.rst | 7 In a data flow graph, nodes are computations that send and receive data 8 messages. Some nodes may only send messages, others may only receive 14 integer values from 1 to 10 and passes them to two successor nodes. One 18 the middle nodes. As it receives each value, it adds it to a running sum 77 Since the squarer and cuber nodes are side-effect free, they are created 189 This final implementation has all of the nodes and edges from the 193 nodes, it can limit memory use in more complex graphs. For more
|
| H A D | Flow_Graph_Message_Passing_Protocol.rst | 8 messages between nodes. A node may not be able to receive and process a 10 if this occurs the state of the edge between the nodes can change its 24 #. If the predecessor has no message, the edge between the nodes will
|
| H A D | Graph_Main_Categories.rst | 11 graph's edges. The nodes receive, transform and then pass along the 14 the nodes is obtained through shared memory directly and is not
|
| H A D | communicate_with_nodes.rst | 7 All graph nodes require a reference to a graph object as one of the 9 between nodes that are part of the same graph. An edge expresses the 10 topology of your graph to the runtime library. Connecting two nodes in 20 nodes, and therefore make it easier to reason about events that cross 105 between nodes in different graphs should be done with caution.
|
| H A D | Predefined_Node_Types.rst | 26 …tes a user body to generate its output. Its body is invoked if downstream nodes have accepted the … 37 …nodes that buffer messages and send their output to one successor. The order in which the messa… 43 …nput, single-output nodes that buffer a single message and broadcast their outputs to all succe… 49 …nodes together and maintains a tuple of references to ports that border it. This allows for th…
|
| H A D | Flow_Graph_Reservation.rst | 19 To support the reserving ``join_node`` some nodes support 25 and the edge connecting the nodes is switched to pull mode. 33 messages and try to push the resulting message to any nodes connected 38 by the predecessor nodes, because they have been successfully pushed. 42 may be pushed to or pulled by other nodes. 128 why this occurs; connecting non-reserving nodes to nodes requiring 211 - ``jn`` tries to reserve ``buf1``, which succeeds (reserved nodes are
|
| H A D | Dependence_Graph.rst | 7 In a dependence graph, the nodes invoke body objects to perform 29 passed between nodes are of type oneapi::tbb::flow::continue_msg. Unlike a 30 general data flow graph, nodes in a dependence graph do not spawn a task 61 the nodes and continue_msg objects as the messages. A continue_node 130 lambda expressions and then put a continue_msg to all successor nodes,
|
| H A D | use_graph_reset.rst | 9 graph and its nodes may be left in an indeterminate state. For example, 13 can leave its nodes and edges in an indeterminate state. If you want to
|
| /oneTBB/doc/main/reference/ |
| H A D | follows_and_precedes_functions.rst | 10 dependencies between nodes when building oneTBB flow graphs. These helper functions can 21 the successor of the set of nodes passed as an argument. 24 the predecessor of the set of nodes passed as an argument. 28 node being constructed is obtained either from the specified node set or the sequence of nodes pass… 31 If the nodes passed to ``follows`` or ``precedes`` belong to 55 /*unspecified*/ follows( NodeType& node, NodeTypes&... nodes ); 61 /*unspecified*/ precedes( NodeType& node, NodeTypes&... nodes ); 66 Either a set or a sequence of nodes can be used as arguments for ``follows`` and 70 :caption: A set of nodes as an input 76 :caption: A sequence of nodes as an input
|
| H A D | make_node_set_function.rst | 16 The ``make_node_set`` function template creates a set of nodes that 35 /*unspecified*/ make_node_set( Node& node, Nodes&... nodes );
|
| H A D | make_edges_function.rst | 17 and each node in a set of nodes. 19 There are two ways to connect nodes in a set and a single node using
|
| H A D | constructors_for_nodes.rst | 3 Constructors for Flow Graph nodes 17 that can be used to construct a node that ``follows`` or ``precedes`` a set of nodes.
|
| /oneTBB/examples/concurrent_priority_queue/shortpath/ |
| H A D | README.md | 4 …ber of nodes, and a start and end node in `[0..N)`. A graph is generated with `N` nodes and some r… 6 …nodes back to the open set when the `g` estimate (shortest path from start to the node) is improve… 8 Note that since we re-visit nodes, the `f` estimate (on which the priority queue is sorted) is not … 12 …ds are together, the fewer hops there are in a typical path between those nodes. So, for example, … 34 * `N` - number of nodes in graph.
|
| /oneTBB/include/oneapi/tbb/detail/ |
| H A D | _flow_graph_node_set_impl.h | 64 std::tuple<Nodes&...> nodes; member 65 node_set(Nodes&... ns) : nodes(ns...) {} in node_set() 68 node_set(const node_set<order::undefined, Nodes2...>& set) : nodes(set.nodes) {} in node_set() 71 return get_graph_helper::get(std::get<0>(nodes)); in graph_reference() 150 make_node_set(Node& first_node, Nodes&... nodes) { 151 return node_set<order::undefined, Node, Nodes...>(first_node, nodes...); 243 const std::size_t SetSize = std::tuple_size<decltype(s.nodes)>::value; 244 make_edges_helper<SetSize - 1>::connect_predecessors(s.nodes, node); 249 const std::size_t SetSize = std::tuple_size<decltype(s.nodes)>::value; 250 make_edges_helper<SetSize - 1>::connect_successors(node, s.nodes);
|
| /oneTBB/test/tbb/ |
| H A D | test_flow_graph_priorities.cpp | 141 make_edge( bn, *nodes.back() ); in test_node() 142 make_edge( *nodes.back(), tn ); in test_node() 500 nodes.push_back( in create_nodes() 521 nodes_container_t nodes; in test() local 523 nodes.push_back( in test() 537 make_edge( *nodes[i-1], *nodes[i] ); in test() 766 nodes.push_back( in test() 772 nodes.push_back( in test() 783 std::shuffle(nodes.begin(), nodes.end(), gen); in test() 784 for (auto& n : nodes) in test() [all …]
|
| H A D | test_numa_dist.cpp | 74 struct numa nodes; in TestNumaDistribution() local 81 … requested_parallelism = nodes.numaProcessors.at(master_thread_proc_grp) + additionalParallelism; in TestNumaDistribution()
|
| /oneTBB/include/oneapi/tbb/ |
| H A D | flow_graph.h | 1379 buffer_node(const node_set<Args...>& nodes) : buffer_node(nodes.graph_reference()) { in buffer_node() argument 1566 queue_node( const node_set<Args...>& nodes) : queue_node(nodes.graph_reference()) { in queue_node() argument 2348 indexer_node(const node_set<Args...>& nodes) : indexer_node(nodes.graph_reference()) { in indexer_node() argument 2375 indexer_node(const node_set<Args...>& nodes) : indexer_node(nodes.graph_reference()) { in indexer_node() argument 2403 indexer_node(const node_set<Args...>& nodes) : indexer_node(nodes.graph_reference()) { in indexer_node() argument 2431 indexer_node(const node_set<Args...>& nodes) : indexer_node(nodes.graph_reference()) { in indexer_node() argument 2459 indexer_node(const node_set<Args...>& nodes) : indexer_node(nodes.graph_reference()) { in indexer_node() argument 2488 indexer_node(const node_set<Args...>& nodes) : indexer_node(nodes.graph_reference()) { in indexer_node() argument 2519 indexer_node(const node_set<Args...>& nodes) : indexer_node(nodes.graph_reference()) { in indexer_node() argument 2550 indexer_node(const node_set<Args...>& nodes) : indexer_node(nodes.graph_reference()) { in indexer_node() argument [all …]
|
| /oneTBB/examples/parallel_for_each/parallel_preorder/ |
| H A D | main.cpp | 39 static unsigned nodes = 1000; variable 51 .positional_arg(nodes, "n-of-nodes", "number of nodes in the graph.") in ParseCommandLine() 72 g.create_random_dag(nodes); in main()
|
| H A D | README.md | 38 …l_preorder [n-of-threads=value] [n-of-nodes=value] [n-of-traversals=value] [silent] [-h] [n-of-thr… 42 * `n-of-nodes` - the number of nodes in the graph. Default value is 1000.
|
| /oneTBB/doc/main/tbb_userguide/design_patterns/ |
| H A D | Divide_and_Conquer.rst | 126 of a mechanical assembly. There are two kinds of nodes: 129 - Leaf nodes represent individual parts. 132 - Internal nodes represent groups of parts. 135 The problem is to find all nodes that collide with a target node. The 137 records in ``Hits`` any nodes that collide with ``Target``.
|
| /oneTBB/examples/graph/cholesky/ |
| H A D | README.md | 8 …nodes are created instead and these nodes are linked by edges to the other nodes they are dependen…
|