Чтобы предотвратить ложное совместное использование, я хочу, чтобы каждый элемент массива был привязан к строке кэша. Поэтому сначала мне нужно знать размер строки кэша, поэтому я назначаю каждому элементу столько байтов. Во-вторых, я хочу, чтобы начало массива было выровнено с линией кэша.
Я использую 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 выровнена с линией кэша.