問題タブ [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 に答える
392 参照

c++ - tbb::concurrent_hash_map が SIGSEGV をスローする

mingw32を使用して、WindowsでTBBを使用して構築された小さなプログラムを実行しています。これは、parallel_for を実行します。オブジェクトの parallel_for 内で、concurrent_hash_map オブジェクトに変更を加えます。実行を開始しますが、後でアクセサーを使用しようとすると SIGSEGV がスローされます。どこに問題があるのか​​わからない。

私のオブジェクト:

pointMap_t は次のように定義されます。

誰かがこの問題に光を当てることができますか? 私はTBBが初めてです。apply メソッドが a->second を呼び出すと、シグナルがスローされます。

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

c++ - 大規模なデータ処理に推奨されるC++並列化ライブラリは何ですか

処理対象のデータが膨大な場合に、C++で並列化するアプローチを推奨できる人はいますか。私はC++での並列化のためのopenMPとIntelのTBBについて読んでいますが、まだ実験していません。これらのうち、並列データ処理に適しているのはどれですか?他のライブラリ/アプローチはありますか?

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

c++ - タスクスケジューラを使用したIOCP(スレッド化されたビルディングブロック)

私はTBBを使用していて、タスクスケジューラでIOCPをどのように使用できるのか疑問に思っていました。誰かがこれをしましたか?もしそうなら、いくつかの詳細をいただければ幸いです。

IOCPの経験はあまりありませんが、IOCPを使用してすべてのスレッドにメッセージを送信したいと思います。タスクスケジューラの外部では、IOCPにスレッドへのハンドルを与えることができます。ただし、TBBでは、スレッドへのハンドルを確実に取得する方法が完全にはわかりません。

ありがとう!

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

c++ - TBB アプリケーション (タスク スケジューラ) の終了

現在、タスク スケジューラを使用して、スレッド ビルディング ブロックを使用して最新のアプリケーションを起動しています。

私のタスクの 1 つがプログラムを終了する理由に遭遇した場合:

1.) 他のすべてのタスクに戻るように指示するにはどうすればよいですか?

2.) アプリケーションを安全に終了できるように、他のすべてのタスクが戻ったことをメイン スレッドで確認するにはどうすればよいですか?

ありがとう!

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

c++ - Intel TBB メモリ アロケータのパフォーマンス?

私が取り組んでいたプロジェクト (MMORPG クラスター、Linux 2.6、最近の gcc、8 コア Intel Xeon) で TBB メモリ アロケーターを試してみたところ、パフォーマンスが低下して驚きました。理由は何ですか?少なくともパフォーマンスは向上しないと予想していました (すべてのコアがロードされ、割り当てが定期的に行われます)。誰かがTBBとそのメモリアロケータで自分の経験を共有できますか? あなたの時間のためにtnx

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

tbb - インテル スレッド ビルディング ブロックを使用した並列マージソートに最適なコードが必要です

C++ で Intel スレッド ビルディング ブロックを使用した並列マージソートに最適なコードが必要です

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

optimization - TBBを使用した少数の命令(SSE2、SSE4)によるループの最適化

私は単純な画像処理関連のアルゴリズムを持っています。簡単に説明すると、float内の画像(平均)が8ビット画像によって減算され、結果がfloat画像(宛先)に保存されます。

この関数は主に組み込み関数によって書かれています。

TBB、parrallel_forを使用してこの関数を最適化しようとしましたが、速度は向上しませんでしたが、ペナルティが発生しました。

私は何をすべきか ?コードを最適化するために、TBBタスクなどのより低レベルのスキームを使用する必要がありますか?

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

c++ - new の代わりに malloc を使用し、オブジェクトの作成時にコピー コンストラクターを呼び出す

TBB のスケーラブルなアロケーターを試してみたかったのですが、コードの一部を置き換える必要があったので混乱しました。アロケータを使用して割り当てを行う方法は次のとおりです。

編集: 上に示されているのは、scalable_allocator で割り当てが行われる方法ではありません。ymettが正しく述べたように、割り当ては次のように行われます。

これは、malloc を使用するのとほとんど同じです。

これは私が置き換えたかったコードです:

それで、プログラムを試しました:

ここで、malloc を呼び出してもオブジェクトがインスタンス化されないことがわかりました (これまで malloc を使用したことがありません)。したがって、コピー ctor に渡す方法を理解する前に*this、malloc を使用するときにオブジェクトをインスタンス化する方法を知りたいと思います。

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

pthreads - cnc/tbb で使用されるスレッドの制御数

Intel cnc ライブラリを使用していますが、コアと同じ数のスレッドが作成されます。目的に使用されるスレッドの数を制御し、場合によってはそれらの配置を制御する方法はありますか?

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

c++ - tbb::concurrent_vector が間違ったサイズを返す

私はTBB フォーラムでこの質問をしましたが、ここの誰かが追加の考えを持っていることを願っています. 発生している問題をデバッグしていたところ、 の奇妙な動作に気付きましたtbb::concurrent_vector

push_back()肝心なのは、呼び出しが実際に完了した後、size()の にconcurrent_vectorはこれが反映されないということです。capacity()と をキャプチャするとsize()、実際の要素数ではなく容量が返さsize() == capacity() => trueれると思われるため、容量に関連するように絞り込みました。size()

この問題を再現する簡単なプログラムを作成しました。この問題は、ベクターが空のときに最も頻繁にトリガーされます。簡単にするために、このプログラムは、呼び出しが返さsize() != 0れた直後に単純にアサートします。push_back()これが予想される動作なのか、それともバグなのか、誰かが教えてくれることを願っています。

彼らのリファレンスマニュアルによると:

push_back() "ベクターの末尾に値のコピーを追加します。"

size() は、「ベクター内の要素の数。結果には、いずれかの成長メソッド (5.6.3) への同時呼び出しによって割り当てられているが、まだ構築中の要素が含まれる場合があります。」

これに基づいて、少なくとも一度のリターンを反映するsize()必要があると思います。push_back()push_back()