Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

Оптимизация вычислений   Найти похожие ветки 

 
Vaitek ©   (2005-02-17 13:08) [0]

Ну, с точностью я разобрался (спасибо этому форуму), теперь пришла пора ускорять вичисления.

У меня идет расчет достаточно длинный цикличный расчет, с большим количеством сложений, вычитаний, умножений, делений и возведений в квадрат.

Вопрос:
Какие математические операции предпочтительнее по скорости выполения?
Например:
Что лучше - 2*(х-у) или х+х-у-у?
Что работает быстрее х*х или sqr(x)?
Тип всех переменных Extended.

В общем любая полезная инфа сгодится.


 
Инструктор   (2005-02-17 13:12) [1]

слабое звено может быть в самом алгоритме.


 
Sergey13 ©   (2005-02-17 13:16) [2]

О какой сфере применения речь?

ИМХО, самое простое - сравнить. Написать два варианта и сравнить.


 
Ega23 ©   (2005-02-17 13:17) [3]

По-идее, X*X вычисляется быстрее, чем SQR(X)


 
Alx2 ©   (2005-02-17 13:17) [4]

Все от конкретного случая зависит.


 
Юрий Зотов ©   (2005-02-17 13:19) [5]

> Vaitek ©   (17.02.05 13:08)  
> Что лучше...

Обычно это копейки по сравнению с тем, чего можно добиться оптимизацией самого алгоритма.


 
Vaitek ©   (2005-02-17 13:28) [6]

Короче алгоритм сводится к решению системы нелинейных уравнений (11 штук). От системы никуда не дется.

Решаю методом Возмущений. Это один из способов линеаризации, когда нелинейная система заменяется серией линенйных.

В принцепе для достаточной точности, в большенстве случаев, хватает всего 3-4 цикла решений линейных уравнений, если я начальные точки приблежения хорошо подберу. На Р4-2800НТ это рашается за 1-2мс (замерял на основе QueryPerformanceCounter).

Но прога должна будет работать на первом пне 233, посему надо выжать все что можно.

Ну так какие идеи?


 
Alx2 ©   (2005-02-17 13:36) [7]

>Vaitek ©   (17.02.05 13:28) [6]

Asm + оптимизация загрузки конвейеров


 
Alx2 ©   (2005-02-17 13:37) [8]

Vaitek ©   (17.02.05 13:28) [6]

В помощники рекомендую  VTune (c) Intel


 
Игорь Шевченко ©   (2005-02-17 13:43) [9]


> Ну так какие идеи?


Ну так какая оплата ?


 
begin...end ©   (2005-02-17 13:43) [10]

> Vaitek ©   (17.02.05 13:08)

> Что лучше - 2*(х-у) или х+х-у-у?

Лучше 2*(х-у).

> Что работает быстрее х*х или sqr(x)?

Быстрее работает sqr(x).


 
Vaitek ©   (2005-02-17 13:50) [11]


> Игорь Шевченко ©   (17.02.05 13:43) [9]
>
> Ну так какая оплата ?


Ну блин, за советы еще и оплата. Спасибо скажу - вот моя цена.


> begin...end ©   (17.02.05 13:43) [10]

Обидно, у меня все именно так.


 
Игорь Шевченко ©   (2005-02-17 14:17) [12]

Vaitek ©   (17.02.05 13:50) [11]

За спасибо будет при коммунизме. Яндекс в зубы и мучайся.


 
Vaitek ©   (2005-02-17 14:34) [13]

> За спасибо будет при коммунизме. Яндекс в зубы и мучайся.


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


 
kaif ©   (2005-02-17 14:42) [14]

Игорь Шевченко ©   (17.02.05 14:17) [12]
Vaitek ©   (17.02.05 13:50) [11]
За спасибо будет при коммунизме. Яндекс в зубы и мучайся.


Игорь, а утебя аллергия к коммунизму?

Просто интересно...(с)


 
TUser ©   (2005-02-17 15:37) [15]


> На Р4-2800НТ это рашается за 1-2мс (замерял на основе QueryPerformanceCounter).
>
> Но прога должна будет работать на первом пне 233, посему
> надо выжать все что можно

Ну, будет 50мс - все равно не заметишь.


 
Jeer ©   (2005-02-17 16:55) [16]

Вынести математику в DLL, скомпилированную Intel C comp.


 
Игорь Шевченко ©   (2005-02-17 17:08) [17]

kaif ©   (17.02.05 14:42) [14]

У меня аллергия к халявщикам :)


 
Vaitek ©   (2005-02-17 19:47) [18]

Каким нафиг халявщикам? Я же не заваливаю тебя километрами кода чтоб ты мне его соптимизировал. Я спросил СОВЕТА.

"Яндекс в зубы и мучайся" - это не совет. Это левая отмазка - лучше тогда молчать и сидеть в сторонке а не выпендриваться.
Если ты так крут, что тебе нечего сказать - молчи.

Всем остальным хорошим людям - спасибо.


 
Игорь Шевченко ©   (2005-02-18 10:46) [19]


> Если ты так крут, что тебе нечего сказать - молчи


Не говори, что мне делать и я не буду говорить, куда тебе идти (с)


 
Digitman ©   (2005-02-18 11:51) [20]


> Vaitek ©   (17.02.05 19:47) [18]


> Каким нафиг халявщикам


а ты - не "халявщик" ?!

ты не сподобился даже на сайт Интела сходить, дабы приобрести там свободно распространяемый док-т по оптимизации кода на базе IA-32 .. зато трандычишь тут, мол, дайте советы ...


 
TUser ©   (2005-02-18 13:03) [21]

И все-таки я не понимаю - в чем критичность этой операции? Она должна быстро выполняться и безо всякой оптимизации.


 
Jeer ©   (2005-02-18 15:07) [22]

TUser ©   (18.02.05 13:03) [21]

Это не так.
Например, оптимизирующий компилятор может выполнить деление (довольно длительная процедура, по ср. с умножением, на Intel CPU - 1/10) не через использование опкода процессора, а по формуле

A/B == (2^n)/b * A/(2^m)
n-разрядность сетки
m-разрядность числа
Ориентировочно, сокращение числа тактов в 3 раза, по сравнению с делением.



Страницы: 1 вся ветка

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.171 c
1-1109667772
Димон
2005-03-01 12:02
2005.03.13
Выяснение причины сообщения "A component named . already exists"


6-1105344825
ctranik
2005-01-10 11:13
2005.03.13
Вопрос по TIdHttp


14-1109168873
Almaz
2005-02-23 17:27
2005.03.13
Меритократия


14-1108734705
Иксик2
2005-02-18 16:51
2005.03.13
Поговорим о нанотехнологиях


4-1105693199
Антоныч
2005-01-14 11:59
2005.03.13
Путь к временному каталогу Windows