суббота, 4 апреля 2009 г.

О пользе кэш-памяти

Часто, прежде чем параллелить задачу, полезно выяснить, насколько хорошо она работает хотя бы в однопроцессорной системе.
Вот по этой ссылке можно посмотреть на детальное сравнение затрат времени на выполнение "наивного" алгоритма перемножения матриц и алгоритмов из мат.пакетов и специализированных библиотек.
Я и сам несколько дней назад провел эксперимент на ту же тему, после чего, собственно, и начал искать, кто что по этому поводу думает. Тогда я выяснил, что при размерности матриц, равной 2000, "наивный" алгоритм на Си уступает по скорости процедуре cblas_dgemm (я пользовался CBLAS-ом из ATLAS-a, он проводит некоторую оптимизацию констант библиотеки под параметры конкретного компьютера) в 50 раз.
Это как раз примерное соотношение между скоростями работы основной оперативной памяти и кэш-памяти процессора.

Комментариев нет:

Отправить комментарий