Относительный бенчмаркинг в R с поправкой на спецификации локального компьютера - PullRequest
0 голосов
/ 18 июня 2020

У меня вопрос относительно сравнительного анализа в R. Как правильно оценить относительную скорость функций по сравнению с функцией, определенной пользователем.

Допустим, у меня есть 3 определяемые пользователем функции f, g и h, и я хочу сообщить, как работают g и h с точки зрения скорости по сравнению с f. Измерение каждого из них - не проблема (я знаю несколько библиотек), и разделение скорости g на скорость f - хорошая идея. Но как я могу отрегулировать это измерение таким образом, чтобы оно не слишком сильно зависело от моей локальной машины и ОС (или это вообще было необходимо)? Конечно, 100% точность кажется маловероятной, но моя конечная цель - получить метрику c, чтобы пользователь или ученик мог почувствовать, насколько велико улучшение скорости, без необходимости проверять мои и ее характеристики. .

Итак, что я ищу?

  • Известный метрич c для такого рода проблем
  • Пакет, который делает это / сообщает о таком метри c
  • Примерное отношение скорости к моим характеристикам, поэтому я знаю хотя бы приблизительно, как относительная скорость моей машины будет вести себя на других (линейная, экспоненциальная, ...)

Заключительное замечание: мой доступ к разным машинам ограничен, поэтому просто протестировать их и посмотреть, как они себя ведут, - вариант, но мой последний. Вместо этого я бы предпочел хорошее приближение.

1 Ответ

1 голос
/ 18 июня 2020

Относительное соотношение производительности двух функций может отличаться на разном оборудовании. например, один может быть более чувствительным к пропускной способности FMA (и отставать от Zen1 или Intel до Haswell), в то время как другой (возможно, с использованием таблицы поиска или мемоизации) может быть более чувствителен к объему кэша и медленнее преодолевать некоторый пороговый размер это зависит от размеров кэша L2 и L3 машины. / время (f) и время (ч) / время (f)

Таким образом, вы можете построить график y = производительность (в микросекундах) против x = размер проблемы для всех 3 функций, чтобы увидеть абсолютную форму кривых производительности .

Вы можете отдельно построить график относительной производительности, чтобы увидеть, где один из них быстрее или медленнее по сравнению с вашим базовым уровнем.

Если есть параметры, отличные от одного размера, тогда есть больше проблемного пространства для исследования участки ...

...