Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Определение ресурсоёмкости алгоритма

3.7K
31 марта 2012 года
Techtor
43 / / 12.09.2004
Доброго времени суток!
Помогите, пожалуйста, со следующей задачей.
Есть описание алгоритма - объем и характер входных данных, их обработка и действия над результатами. Предполагается, что работа будет происходить в режиме реального времени, то есть указанные входные данных получаются с определенной периодичностью. Необходимо оценить требования к аппаратному обеспечения (тактовая частота, объем доступной памяти) реализованной согласно данному алгоритму программой (хотя бы в каких-то пределах). Программа будет работать на микроконтроллере, при чем никакой привязки к определенным семействам или моделям нет. Понимаю, что формулировка достаточно расплывчата, но буду благодарен за любые советы, ссылки на литературу... В общем, за любую информацию. Заранее спасибо!
67K
31 марта 2012 года
NoXCode
64 / / 11.03.2012
Существуют два метода решения задачи вычисления ресурсоемкости
реализации алгоритма:

1. Метод эмпирических оценок, в котором необходимые исследования проводятся
путем вычисления процессорного времени выполнения реализации алгоритма на
компьютере с определенными характеристиками апаратных ресурсов процессора,
памяти, и т.п. В ходе исследований реализацию алгоритма запускают на нескольких
компьютерах с разными апаратными ресурсами, определяя, при этом, суммарное
процессорное время выполнения на каждом из них. Эти данные потом заносят в
таблицу с полями: номер, тактовая частота процессора, кол-во ядер,
объем оперативной памяти, операционная система (однозадачная/многозадачная среда),
суммарное время выполнения реализации алгоритма на заданном апаратном обеспечении.
Далее можно проводить разные исследования по нахождению усредненной оценки
производительности реализации алгоритма, или же минимизацию/масштабирование
затраченного процессорного времени/апаратных ресурсов, методом поиска экстремальных
значений. Код для оценки затраченного процессорного времени см. ниже:

 
Код:
time_t start,finish; double diff;
time (&start);
.............................
time (&finish);
diff = difftime (finish,start);
printf("time = %4.2f\n",diff);
2. Метод математического анализа, позволяющий путем поиска величины кол-ва, выполняемых
реализацией алгоритма, операций, оценить его производительность и промасштабировать
эту величину для разных апаратных ресурсов, зная при этом величину времени выполнения
одной операции на ПК с теми или иными апаратными ресурсами. Этот метод достаточно
сложный и я не могу его детально здесь описать. Этот метод детально описан в книге
Р. Седжвика "Фундаментальные алгоритмы на С++" том. 1. ВСЕ!!!
412
01 апреля 2012 года
grgdvo
323 / / 04.07.2007
По второму пункту ищите еще "оценка сложности алгоритма". У Кнута этот вопрос подробно разжеван в "искуство программирования".
3.7K
02 мая 2012 года
Techtor
43 / / 12.09.2004
Спасибо, книга Седжвика и приведенные в ней ссылки очень помогли и продолжают помогать )
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог