30

tbb::scalable_allocatorIntel Threading Building Blocks は内部で実際に何をしますか?

確かに効果はあります。シングルstd::vector<T>std::vector<T,tbb::scalable_allocator<T> >. 一方、別のアプリでは、すでに大量のメモリ消費量が2倍になり、物事をスワップシティに送信するのを見ました。

Intel 自身のドキュメントには、多くの情報はありません (たとえば、この FAQの最後にある短いセクション)。自分でコードを掘り下げる前に、どのようなトリックを使用しているか教えてもらえますか?

更新: TBB 3.0 を初めて使用したところ、scale_allocator による最高のスピードアップが見られました。シングルvector<int>を a に変更するとvector<int,scalable_allocator<int> >、実行時間が 85 秒から 35 秒に短縮されました (Debian Lenny、Core2、TBB 3.0 のテスト)。

4

2 に答える 2

20

アロケーターに関する優れた論文があります: The Foundations for Scalable Multi-core Software in Intel Threading Building Blocks

私の限られた経験: AI アプリケーションの tbb::scalable_allocator でグローバルな新規/削除をオーバーロードしました。しかし、時間プロファイルにはほとんど変化がありませんでした。ただし、メモリ使用量を比較しませんでした。

于 2009-03-19T06:22:33.287 に答える