Top.Mail.Ru
Ответы

Можно ли программным путём ускорить вычисления?

Можно ли программным путём как то ускорить вычисления?
Допустим дано выражение 3*4-3+4*8/2 неважно какое. Можно ли как то программным путём вычислить его быстрее, используя различные ходы? Виртуально распаралелить задачи или что либо подобное.

По дате
По рейтингу
Аватар пользователя
Новичок
9лет

Простые выражения зачем ускорять, или распараллеливать? А все объемные математические вычисления можно, и нужно! Основной путь: это быстрые алгоритмы, о которых сказали выше. Ассемблерные вставки используются, в основном, для небольших функций, которые часто вызываются: например в графике, для векторных вычислений. А распараллеливание, на PC реально ничего не дает, если нужна переносимость.

Аватар пользователя
Мыслитель
9лет

Распараллеливание - не бесплатно. Мьютексы и спинлоки убивают производительность. А без них никуда - если речь идет об общих данных... Для повышения производительности можно использовать ассемблерные вставки, быстрые алгоритмы, работающие либо за константу либо за логарифм...

Аватар пользователя
Ученик
9лет

Кек конечно можно!

Аватар пользователя
Искусственный Интеллект
9лет

В данном конкретном случае - зависит от процессора. На Itanium'ах можно распараллелить и такое простое выражение. На других - больше ресурсов затратишь на управление и синхронизацию, чем получишь выгоды от параллельного выполнения.

Аватар пользователя
Искусственный Интеллект
9лет

Да, можно. Именно так процессор и делает. Нужная оптимизация уже встроена в микропрограммы микропроцессора, выполнение загнанных в конвейер микропроцессора команд распараллеливается и оптимизируется им автоматически. Недаром же в нем сейчас сидит до миллиарда транзисторов :)