メモリー割り当て

インテル® スレッディング・ビルディング・ブロック (インテル® TBB) には、STL テンプレート・クラス std::allocator に似た、さまざまなメモリー・アロケーター・テンプレートが用意されています。scalable_allocator<T>cache_aligned_allocator<T> の 2 つのテンプレートは、次のように、並列プログラムのクリティカルな問題に対処します。

これらのアロケーター・テンプレートは、STL テンプレート・クラスの allocator 引数として使用できます。次のコードは、cache_aligned_allocator を割り当てに使用する STL ベクトルの宣言方法を示しています。

std::vector<int,cache_aligned_allocator<int> >;

ヒント

cache_aligned_allocator は、たとえ小さなオブジェクトであっても、メモリーに対応するキャッシュラインを少なくとも 1 つ割り当てる必要があるため、多くの空間が必要になります。そのため、フォルス・シェアリングが重要な問題になりそうな場合のみ、cache_aligned_allocator<T> を使用するようにしてください。