Мне было предложено измерить производительность программы fortran, которая решает дифференциальные уравнения в многопроцессорной системе. Мой работодатель настаивает на том, что я измеряю FLOP/s (плавающие операции в секунду) и сравниваю результаты с эталонами (LINPACK), но я не уверен что это путь, просто потому, что никто не может объяснить мне, что такое FLOP.
Я провел некоторое исследование того, что такое FLOP, и у меня есть довольно противоречивые ответы. Одним из самых популярных ответов я получил: 1 FLOP = дополнение и операция умножения. Это правда? Если это так, опять же, физически, что именно это означает?
Какой бы метод я ни использовал, он должен быть масштабируемым. Некоторые версии кода решают системы с многомиллионными неизвестными и требуют нескольких дней для выполнения.
Какими будут другие, эффективные способы измерения производительности в моем случае (резюме моего дела "fortran code", который много раз выполняет арифметические вычисления в течение нескольких дней на нескольких сот ЦП)?