LINUX.ORG.RU

Как определить количество команд на единицу данных?


0

1

Всем привет.

Передо мной стоит такая задача: определить ёмкость программы, ставящейся в очередь исполнения (с массивом данных для обработки, естественно), в ФЛОПах. Мысли были следующие: вместе с программой принимать оценку сложности алгоритма (О(g(n))), каким-то образом считать количество команд на единицу данных и потом, перемножив, получить флопы. Но тут встаёт вопрос - а как посчитать число флопов в программе, содержащей цикл с заранее неизвестным числом итераций?

Может, что-то уже есть на эту тему, а я плохо искал?

У кого какие мысли?

Спасибо


Если тебе ехать, а не шаш^W диссертацию писать, то заставь саму прогу и оценивать, сколько она будет думать над конкретными входными данными.

const86 ★★★★★
()
Ответ на: комментарий от const86

Мне как раз диссертацию писать :) «Принципиально новый» (с) распределитель задач по вычислительным кластерам с учётом энергопотребления

hc
() автор топика

Единственный способ - узнать число итераций.

К.О.

LamerOk ★★★★★
()

В общем случае невозможно узнать даже то, что программа завериштся(на любом тьюринг полном языке). Определите границы задачи.

recon88
()

Но тут встаёт вопрос - а как посчитать число флопов в программе, содержащей цикл с заранее неизвестным числом итераций?

Получается, что количество итераций - случайная величина. Можно пропробовать её определить, тогда ёмкость программы в ФЛОПах тожее будет случайной величиной, со своим матожиданием и т.д. Вот от этого можно идти.

tim239 ★★
()

Такую оценку снизу можно сделать зная исходный код и параметры (считаем операции в одной итерации, переводим во флопы, умножаем на число итераций), но реальность в зависимости от архитектуры и размера данных может быть за счет накладных расходов (в основном тормозов подсистемы памяти) хуже в 2:1000 раз (примерно такой разброс). Если возникает алиасаинг, может быть еще хуже;-)

А оценить неизвестную программу... если тока программа в процессе выполнения регулярно выдает нек-ю информацию о степени завершения, то подождав можно оценить скоко она будет крутиться. Но эта информация мб весьма условна, например скорость в задачах молек. динамики зависит от числа моделирумых частиц в системе, если есть сток или источник, то скоркть может меняться в очень широких пределах (непредсказуемо), и все эти оценки мимо кассы.

AIv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.