問題タブ [tbb]

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 に答える
1001 参照

multithreading - Intel TBBがブーストのような条件変数を提供しなかったのはなぜですか?

条件付きシグナルメカニズムのように、あるシグナルが受信されるか、ある変数が真になるまで、1つのタスクを待機させたいと思います。Boost libはこのメカニズムを提供しますが、TBBは提供しませんでした。

このケースをTBBで実装するにはどうすればよいですか?

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

c++ - PythonスレッドでTBB'parallel_for'を呼び出す

関数を公開するPython用のカスタムc++モジュールがあり、その一部はTBB(tbb21_015oss)を使用して処理を高速化します。

これまで、Win32環境でPython(2.6.2)からTBBアクセラレーション関数を呼び出すときに問題はありませんでした。

しかし今、Pythonスレッド(threading.Threadクラスを使用して作成された)からそのような関数を呼び出すときに問題が発生します-同じ関数を呼び出している間、メインのPythonスレッドからは正常に機能します。

関数を呼び出すと、アプリケーションがクラッシュし、次のメッセージが表示されます。

TBB.dllのベースアドレスは0x03510000であり、MSVC 2005デバッガーによると、クラッシュはTBBの「parallel_for.h」からのコードで発生しますstatic void start_for::run( const Range& range, const Body& body, const Partitioner& partitioner )

逆参照されているNULLポインターがあるようです。

FWIW、TBBは、遅延初期化メカニズムを使用して初期化されます。

これを機能させる方法はありますか?たとえば、TBBを「カスタム」スレッドから呼び出せるようにするには、特定の初期化が必要ですか?

0 投票する
2 に答える
1551 参照

c++ - ffmpeg(-mt) と TBB

ffmpeg-mt がマージされた ffmpeg の最新ビルドを使い始めました。

ただし、私のアプリケーションは TBB (Intel Threading Building Blocks) を使用しているため、新しいスレッドの作成と同期を伴う ffmpeg-mt の実装は、デコード関数を実行する TBB タスクを潜在的にブロックする可能性があるため、あまり適していません。また、キャッシュを不必要に破棄します。

ffmpeg がマルチスレッドを有効にするために使用するインターフェイスを実装しているように見える pthread.c を見回していました。

私の質問は、同じ関数を実装するが、明示的なスレッドの代わりに tbb タスクを使用する tbb.c を作成できるかどうかです。

私は C の経験がありませんが、tbb (C++) を簡単に ffmpeg にコンパイルすることはできないと思います。したがって、実行時にffmpeg関数ポインタを何らかの方法で上書きするのがよいでしょうか?

TBB を ffmpeg スレッド API に実装することに関する提案やコメントをいただければ幸いです。

0 投票する
5 に答える
1858 参照

c++ - 複数のコアを使用して大規模なシーケンシャル ファイルを C++ で処理する

大きなファイル (RAM より大きく、一度に全体を読み取ることができない) があり、行ごとに (C++ で) 処理する必要があります。できれば Intel TBBまたは Microsoft PPLを使用して、複数のコアを利用したいと考えています。このファイルの前処理 (4 つの部分に分割するなど) は避けたいと思います。

ファイル内の (0, n/4, 2*n/4 3*n/4) 位置に初期化された 4 つのイテレータを使用するようなことを考えていました。

それは良い解決策ですか、それを達成する簡単な方法はありますか?

または、ストリームの効率的な同時読み取りをサポートするいくつかのライブラリを知っていますか?

更新:

私はテストをしました。ボトルネックは IO ではなく、CPU です。そして、バッファ用のRAMがたくさんあります。

レコードを解析する必要があります (var サイズ、それぞれ約 2000 バイト、レコードは一意の '\0' 文字で区切られています)、検証し、計算を行い、結果を別のファイルに書き込む必要があります

0 投票する
3 に答える
389 参照

c++ - tbb で連続する大きなデータの処理

私は大量の引用データを処理するためにC ++アプリに取り組んでいます. (MSFT、AMZN など) と tbb。そして、それをどのように構成するかを考えていました。私はparallel_forとpipelineとconcurrent_queueを見てきました。

プロセスは基本的にデータを解析し、処理してファイルに出力します。解析と処理は並行して実行できますが、出力はシンボルごとに順番に行う必要があります。

ロックフリーのソリューションまたは最小限のロックを使用したいのですが、順序を維持するためにconcurrent_queueを保持しているようです。

どんなアイデアでも役に立ちます

ありがとう、デビッド

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

c++ - C++ の tbb::tbb_thread について

C++ で TBB を使用しようとしており、tbb_thread に関するチュートリアルを探しています。インターフェイスとは何か、どのように使用されるかなど、tbb_threadに関するリンクまたはチュートリアルを提供できますか?tbb_threadはスレッドAPIに他ならず、移植可能です。

ありがとう!

0 投票する
2 に答える
1370 参照

c++ - boost::shared_ptr を提供する並行オブジェクト プール

shared_ptr が返され、明示的にプールに返す必要がない同時オブジェクト プールを実装したかったのです。私は基本的に、並列キューに配列を割り当て、shared_ptrs をプッシュし、カスタム deletor を実装しました。うまくいくようです。何か不足していますか?

0 投票する
2 に答える
272 参照

c++ - スレッドのフォークのコスト: マルチスレッド化を正当化するための最小ベクトル サイズを決定するにはどうすればよいですか

多くのベクトル ペアの内積を計算しようとしています。各ドット積は複数のスレッドを使用できますが、データの依存性のため、2 つ以上のドット積を同時に実行することはできません。ここで、マルチスレッドを正当化する最小ベクトル サイズはどれくらいですか? 誰も正確な答えを出すことができないことはわかっているので、大まかな見積もりを探しているだけです.

問題にもう少しコンテキストを追加するには: 私のプログラムは多くの内積を計算する必要がありますが、一度に実行できる内積は 1 つだけです。

内積を書き直してマルチスレッド化したいと考えています。しかし、length小さすぎると、複数のスレッドを使用しても何も得られません。

編集。ご意見をお寄せいただきありがとうございます。答えは、コンパイラ、CPU、メモリ、スレッド化ライブラリなど、あまりにも多くの要因に依存しているようです。

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

c++ - Qt Creator で TBB を使用する方法

Qt Creator で TBB を使用しようとしています。Qt 4.7 と TBB 3.0 を使用しています。以下は .pro での設定です。

私のサンプル コードは非常に単純です。

しかし、プログラムはコード -1073741515 で終了します

以前に Qt Creator で TBB を使用した人はいますか?

よろしくお願いします、

0 投票する
3 に答える
9698 参照

c++ - Intel TBBはAMDプロセッサで動作しますか?

重複の可能性:
AMDマルチコアプログラミング

Intel TBBプロセッサは依存していますか?それはamdまたはARMで動作しますか(たとえばmeeGoの下で?)