Python FLOPS расчет
Я пытался получить стандартизированную оценку FLOPS для всех компьютеров, на которых я реализовал программу распределенной обработки Python. В то время как в настоящее время я могу достаточно хорошо рассчитать количество камней, они не особенно известны, и я не совсем уверен, насколько они точны.
Таким образом, мне нужен способ для вычисления (или модуля, который уже это делает) FLOPS на различных машинах, которые могут иметь различное количество процессоров и т. Д. Видя, что Python является интерпретируемым языком, просто считая время, необходимое для выполнения определенное количество операций не будет выполняться на уровне, скажем, Linpack. Несмотря на то, что мне не нужно иметь точно такие же оценки, как у одного из главных "бенчмарков" в бенчмаркинге, я бы хотел, чтобы он был по крайней мере достаточно близок.
Таким образом, есть ли способ или уже существующий модуль, позволяющий мне получить FLOPS? В противном случае моим единственным выбором будет компиляция в Cython или попытка оценить возможности на основе тактовой частоты процессора...
1 ответ
Linpack или Высокопроизводительный linpack, как правило, является отраслевым стандартом для измерения флопов. Я нашел здесь реализацию на python, но она может быть бесполезной. Стандартная реализация, особенно если у вас есть кластер, будет использовать HPL. Если вы не хотите реализовывать свой собственный параллельный linpack в python, HPL - это путь. Это то, что большинство из этих суперкомпьютеров в списке 500 лучших используют для измерения их производительности.
Если твоя настоящая адская воля к этому способна, даже ты не будешь иметь смысла или не принесешь много пользы. Возможно, вы захотите портировать оригинальную версию MPI на 0-MQ с хорошим интерфейсом Python.