tbb::scalable_allocator
Intel 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 のテスト)。