Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Тестирование производительности процессора


Автор: dlinyj 6.10.2009, 16:13
Разрабатывается некое устройство на базе х86-совместимого процессора (486DX с частотой 1,2 ГГц).

Стоит задача провести его тестирование на работу с плавающей точкой (грубо говоря, при максимальной загрузке) при работе на экстримальных температурах.

Необходимо проводить рассчёт, максимально загружающий процессор (ОСь однозадачная, что-то на подобие DOS). При расчёте необходимо контролировать получаемые значения (нет ли ошибки в вычислениях). Контроль должен проводится на сравнении с таблицей. Расчёт должен идти непрерывно, до останова пользователем.

Я на самом деле даже не знаю с чего начать. Поглядел несколько тестов. Например расчёт числа Пи. Однако загонять такую мегаконстанту в ограниченнную память будет весьма сложно. Интересуют больше алгоритмы, т.к. пример всёравно будет переписыватся под конкретную задачу. Но писатся будет на си, по сему вопрос задаю здесь. По сему просьба высказать любые предложения по этому вопросу.

Автор: niXman 6.10.2009, 16:36
Насколько я помню, 486DX был 100 мегагерцовый smile 

Автор: dlinyj 6.10.2009, 16:37
Цитата(niXman @ 6.10.2009,  16:36)
Насколько я помню, 486DX был 100 мегагерцовый smile

Я чётко выразился, что это устройство и там стоит совместимый процессор, а не 486!

Говоря простым и доступным языком, это совсем не компьютер в том понимании которое мы привыкли видеть.

Автор: Anikmar 6.10.2009, 17:37
Цитата(dlinyj @  6.10.2009,  16:13 Найти цитируемый пост)
Однако загонять такую мегаконстанту в ограниченнную память будет весьма сложно.

Что значит мегаконстанта?
И каков тогда объем памяти? Таблица заранее вычисленных значений тогда отпадает, если памяти мало.

Автор: dlinyj 6.10.2009, 17:43
Ну память как в обычном ДОСе: 640 килов, минус занятое системой. Всё просто smile

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

Автор: Anikmar 6.10.2009, 17:46
Цитата(dlinyj @  6.10.2009,  17:43 Найти цитируемый пост)
Можно циклически гонять один и тот же алгоритм. Тут важно нагрузить процессор, чтобы он не простаивал. 

Просто загрузить? Или все-таки сравнить результат потом с правильным?

Если просто загрузить - загоните любую достаточно сложную формулу и поместите ее в бесконечный цикл.

А если сравнить рассчеты с заранее известными просчитанными значениями, то их надо где-то хранить.

Автор: dlinyj 6.10.2009, 20:06
Лично я вижу решение задачи следующим образом. Имеется файл заранее посчитанных констант. Ну допустим алгоритм поиска "Пи" - оно лежит в посчитанное в бинарнике (файле). 

Размер допустим его там 200 килов. Считаем до 200 килов (бинарник загружаем в память. Сравниваем результат (два массива), оцениваем погрешность вычисления, и очищаем память посчитанного массива. Делаем следующую итерацию поиска. И так далее. Я вижу это примерно так.

Автор: niXman 6.10.2009, 20:17
Цитата(dlinyj @  6.10.2009,  18:06 Найти цитируемый пост)
бинарник загружаем в память

А зачем весь загружать в память? Можно по одному результату читать.

Автор: dlinyj 6.10.2009, 21:02
Вопрос состоит не в том, как конкретно это сделать! А какие алгоритмы использовать. Давайте не будем уходить от темы разговора, пожалуйста. Я уже весь рунет перерыл в поисках алгоритма. Нашёл кучу прог математических на фортране, но мне нужен си. И там не алгоритмы, а уже готовые законченные решения, которым нужно кормить данные.

Автор: shara 7.10.2009, 20:36
тут на форуме есть раздел по Алгоритмам, может лучше обратиться http://forum.vingrad.ru/forum/tech-algorithm-techique-method.html

 чем Вас не устраивает идея dlinyj: считать число (не обязательно Пи) и затем сравнивать с заранее рассчитанным эталонным значением? 

З.Ы. если мало памяти можно считать не большое число

Автор: dlinyj 8.10.2009, 07:39
Вполне устраивает. В этом и задача стоит, главное считать число с плавающей точкой! Проверяя работу именно сопроцессора!
Я уже нашёл пакет LINPACK или тест бечмарок http://www.roylongbottom.org.uk/classic.htm#anchorLinp . Буду его ковырять. Добавлю проверку чила, адаптирую под свою память. И думаю будет всё хорошо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)