Известные переменные: Среднее число пропусков и шагов для каждого массива размером 8 КБ, 16 КБ, 32 КБ и 64 КБ. Мы смогли получить эти значения с помощью PAPI. Посмотрев на график с быстрым и средним промахами каждого массива, мы обнаружили, что размер кэша составляет 32 КБ, а размер блока кэша - 64 Б.
Код C, повторяющий массив:
for(array_size=ARRAY_MIN; array_size < ARRAY_MAX; array_size=array_size*2)
for(stride=1; stride <= array_size/2; stride=stride*2){
limit = array_size - stride + 1;
for(repeat=0; repeat<=200*stride; repeat++)
for(index=0; index<limit; index+=stride)
x[index] = x[index] + 1;
}