Alinhar à linha do cache e saber o tamanho da linha do cache

Para evitar o compartilhamento falso, desejo alinhar cada elemento de uma matriz a uma linha de cache. Então, primeiro eu preciso saber o tamanho de uma linha de cache, então atribuo a cada elemento essa quantidade de bytes. Em segundo lugar, quero que o início da matriz seja alinhado a uma linha de cach

Estou usando o Linux e a plataforma x86 de 8 núcleos. Primeiro, como encontro o tamanho da linha do cache. Em segundo lugar, como me alinhar a uma linha de cache em C. Estou usando o compilador gc

Portanto, a estrutura estaria seguindo, por exemplo, assumindo um tamanho de linha de cache de 64.

element[0] occupies bytes 0-63
element[1] occupies bytes 64-127
element[2] occupies bytes 128-191

e assim por diante, assumindo, é claro, que 0-63 esteja alinhado a uma linha de cach

questionAnswers(6)

yourAnswerToTheQuestion