問題タブ [tbb-flow-graph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
438 参照

c++ - Intel Threading Building Blocks、タイプ std::shared_ptr の source_node

つまり、shared_ptr タイプを提供するデータ ソースがあります。このポインターは、source_node のオペレーター オーバーロードの範囲外にあるようです。問題を示す完全に単純化された例を追加しました。

私の質問: この問題を克服するエレガントな理由は何ですか?

詳細を提供する必要がある場合は、お知らせください。

敬具 Auke-Dirk

ここに画像の説明を入力

0 投票する
1 に答える
376 参照

c++ - ブロッキング入力ソースを使用してフロー グラフを構築する方法

入力画像を提供するソース フィルターが別の画像を待ってブロックしている場合、 Michael Voss の特徴検出フロー グラフの例を変更する良い方法は何ですか? ビデオカメラのような連続リアルタイム入力ソースにこのグラフを実装したい場合、これは必須の変更です。ソース フィルター関数本体が入力デバイスから画像を取得するのを待ってブロックしている場合、tbb スレッドの 1 つがアイドル状態であるため無駄になることがわかっています。

ご指導ありがとうございます。

0 投票する
1 に答える
275 参照

c++ - メンバー関数を持つ TBB function_node

クラス MyClass があり、Intel TBB でマルチスレッドを実装したいとします。

_fnodeクラスメンバー関数で初期化することは可能ですか? 簡単な方法ではうまくいきません:

0 投票する
1 に答える
481 参照

c++ - tbb::flow::graph のノード間で「重い」タイプを送信する方法はありますか?

tbb::flow::graph (Intel TBB ライブラリ) のノード間で「重い」タイプ、つまり動的配列を含む構造体を送信する必要があります。あるノードでそのような構造のインスタンスを作成し、そのポインタを別のノードに送信しようとすると、アクセス違反が発生します (別のスレッドからのデータを使用しようとするため、これは予期されることです)。

そのような引数を渡す唯一の方法は、適切なコピーコンストラクターを使用して値で渡すことですよね? しかし、それではコピーに多くの時間を浪費してしまいます...

更新: πάντα ῥεῖ は、 std::unique_ptr を使用してそのような型をノードに渡すことを提案しています。しかし、私はそれを実装する方法を理解していないのではないかと心配しています。たとえば、source_node で std::unique_ptr を使用する方法は?

更新 2: std::unique_ptr<> を使用すると、flow_graph.h 行 287 内で C2280 '削除された関数を参照しようとしています' が発生します。

したがって、質問はまだ開かれています。

0 投票する
1 に答える
213 参照

c++ - TBB フロー グラフの条件付き実行 AND 複数入力および出力

TBB フロー グラフの条件付き実行を読みましたが、少し異なる問題があります。

複数の入力と複数の出力を持つノードを作成し、条件変数によって実行を制御することは可能ですか? 多分醜いキャストなしで。

グラフをどのように設計したいかの簡単な例を添付しました。TBBフローグラフで実行する最良の方法は?

  1. start_nodeに送信start_msgしますsome_node

  2. start_msgが空の場合は にsome_node送信continue_msgend_node、そうでない場合はそれ自体に AND を送信some_nodeしますcontinue_msgdata_msgend_node

  3. continue_msgが によって受信された場合some_node、前の start_msg が空であるかどうかがチェックされます。空の場合は acontinue_msgが に送信されend_node、そうでない場合は a が送信されdata_msgます。

    /li>

私が対処している 1 つの問題:start_msgサイズがわかっている場合でも、内部に適切な要素がいくつあるかはわかりません (たとえばstart_msg、 が a を保持しているとします。が悪い要素を見つけたtbb::concurrent_vector<T>場合、それは無視され、それ自体に a を送信しています。some_nodesome_nodecontinue_msg

0 投票する
1 に答える
298 参照

c++ - TBB C++ マルチスレッド エラー: 呼び出しに一致する関数がありません

次の C++ コードはインテル TBB 用です。このコードも Flow Graph によって生成されました。2 つのコンパイル エラーがあります。

定義付きのコードは次のとおりです。

コンパイル エラーを作成する TBB 呼び出しコードを次に示します。

私は喜んですべてのコードを提供しますが、StackOverflow はほとんど説明のないコードが多すぎるのを防ぎます。これらのエラーを理解するのに役立つ人はいますか? ありがとう