フローグラフの基本: バッファーと転送

インテル® スレッディング・ビルディング・ブロック (インテル® TBB) のフローグラフのノードは、データの受け渡しと依存関係の強制にメッセージを使用します。ノードからサクセサーにメッセージが渡されると、それ以降、ノードはそのメッセージに対するアクションを行いません。single-push と broadcast-push のセクションで説明されているように、ノードの種類、ノードに接続されているサクセサーの数、メッセージの種類 (push または pull) に応じて、メッセージは 1 つまたは複数のサクセサーに渡されます。

どのサクセサーにもメッセージを push できない場合、メッセージはノードの種類に応じて 次のいずれかの方法で処理されます。

メッセージが破棄されないようにするには、ノードが push できないメッセージを格納するバッファーノードに接続されていなければなりません。

ノードによって格納されたメッセージは、次の 2 つの方法で別のノードへ渡すことができます。

try_get() によりメッセージが転送されると、そのメッセージは格納されていたノードから削除されます。make_edge でノードが接続されると、ノードは格納されているメッセージを新しいサクセサーに push しようとします。