偽共有を防ぐために、配列の各要素をキャッシュラインに揃えたいと思います。したがって、最初にキャッシュラインのサイズを知る必要があるので、各要素にそのバイト数を割り当てます。次に、配列の先頭をキャッシュラインに揃えたいと思います。
Linuxと8コアx86プラットフォームを使用しています。まず、キャッシュラインサイズを見つけるにはどうすればよいですか。次に、Cでキャッシュラインに合わせるにはどうすればよいですか。gccコンパイラを使用しています。
したがって、たとえば、キャッシュラインサイズを64とすると、構造は次のようになります。
element[0] occupies bytes 0-63
element[1] occupies bytes 64-127
element[2] occupies bytes 128-191
当然のことながら、0-63がキャッシュラインにアラインされていると仮定します。