問題タブ [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.
c++ - Intel Threading Building Blocks、タイプ std::shared_ptr の source_node
つまり、shared_ptr タイプを提供するデータ ソースがあります。このポインターは、source_node のオペレーター オーバーロードの範囲外にあるようです。問題を示す完全に単純化された例を追加しました。
私の質問: この問題を克服するエレガントな理由は何ですか?
詳細を提供する必要がある場合は、お知らせください。
敬具 Auke-Dirk
c++ - ブロッキング入力ソースを使用してフロー グラフを構築する方法
入力画像を提供するソース フィルターが別の画像を待ってブロックしている場合、 Michael Voss の特徴検出フロー グラフの例を変更する良い方法は何ですか? ビデオカメラのような連続リアルタイム入力ソースにこのグラフを実装したい場合、これは必須の変更です。ソース フィルター関数本体が入力デバイスから画像を取得するのを待ってブロックしている場合、tbb スレッドの 1 つがアイドル状態であるため無駄になることがわかっています。
ご指導ありがとうございます。
c++ - メンバー関数を持つ TBB function_node
クラス MyClass があり、Intel TBB でマルチスレッドを実装したいとします。
_fnode
クラスメンバー関数で初期化することは可能ですか? 簡単な方法ではうまくいきません:
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 '削除された関数を参照しようとしています' が発生します。
したがって、質問はまだ開かれています。
c++ - TBB フロー グラフの条件付き実行 AND 複数入力および出力
TBB フロー グラフの条件付き実行を読みましたが、少し異なる問題があります。
複数の入力と複数の出力を持つノードを作成し、条件変数によって実行を制御することは可能ですか? 多分醜いキャストなしで。
グラフをどのように設計したいかの簡単な例を添付しました。TBBフローグラフで実行する最良の方法は?
start_node
に送信start_msg
しますsome_node
start_msg
が空の場合は にsome_node
送信continue_msg
しend_node
、そうでない場合はそれ自体に AND を送信some_node
しますcontinue_msg
data_msg
end_node
/li>continue_msg
が によって受信された場合some_node
、前の start_msg が空であるかどうかがチェックされます。空の場合は acontinue_msg
が に送信されend_node
、そうでない場合は a が送信されdata_msg
ます。
私が対処している 1 つの問題:start_msg
サイズがわかっている場合でも、内部に適切な要素がいくつあるかはわかりません (たとえばstart_msg
、 が a を保持しているとします。が悪い要素を見つけたtbb::concurrent_vector<T>
場合、それは無視され、それ自体に a を送信しています。some_node
some_node
continue_msg
c++ - TBB C++ マルチスレッド エラー: 呼び出しに一致する関数がありません
次の C++ コードはインテル TBB 用です。このコードも Flow Graph によって生成されました。2 つのコンパイル エラーがあります。
定義付きのコードは次のとおりです。
コンパイル エラーを作成する TBB 呼び出しコードを次に示します。
私は喜んですべてのコードを提供しますが、StackOverflow はほとんど説明のないコードが多すぎるのを防ぎます。これらのエラーを理解するのに役立つ人はいますか? ありがとう