Исследование эффекта кэш-памяти

  1. Изучите механизм повышения процента кэш-попаданий за счёт изменения временной и пространственной локальности по приложенной статье.
  2. Используя код блочного перемножения матриц, приведённый в статье, реализуйте две тестовые программы для заполнения случайными числами и перемножения квадратных матриц NxN:
    1. использующую стандартный алгоритм;
    2. использующую блочное представление и модифицированный алгоритм.
  3. Выполните серию тестов для нескольких различных значений N и (для второй программы) нескольких различных размеров блока при каждом N, засекая время работы программы командой оболочки time.
  4. Уточните измерение времени работы алгоритма умножения, окружив код вызовами clock() и рассчитав длительность выполнения в тысячных долях секунды.
  5. Повторите эксперимент и визуализируйте результаты с помощью какого-нибудь средства построения графиков.
  6. Объясните результаты, а также порассуждайте, что извне может повлиять на измеренное время работы алгоритма.