Понижение силы операций

Понижение силы операций

Понижением силы операции в теории компиляторов называют замену медленных операций, например, умножения и деления, на более быстрые, такие как сложение, вычитание, сдвиг. Так, деление (умножение) на 2^n равносильно сдвигу на n разрядов вправо (влево).

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

Примеры

Целочисленное умножение на 2:

{ до оптимизации (3 такта на Core 2 Duo) }
y := 2*x;
 
{ после оптимизации }
y := x+x;     // 1 такт на Core 2 Duo
y := x shl 1; // 1 такт на Core 2 Duo


Целочисленное умножение на 3:

{ до оптимизации (3 такта на Core 2 Duo) }
y := 3*x;
 
{ после оптимизации }
y := x+x+x;       // 2 такта на Core 2 Duo
y := x shl 1 + x; // 2 такта на Core 2 Duo
y := x shl 2 - x; // 2 такта на Core 2 Duo


Целочисленное умножение на 4:

{ до оптимизации (3 такта на Core 2 Duo) }
y := 4*x;
 
{ после оптимизации (1 такт на Core 2 Duo) }
y := x shl 2;


Целочисленное умножение на 5:

{ до оптимизации (3 такта на Core 2 Duo) }
y := 5*x;
 
{ после оптимизации (2 такта на Core 2 Duo) }
y := x shl 2 + x;


Целочисленное умножение на 6:

{ до оптимизации (3 такта на Core 2 Duo) }
y := 6*x;
 
{ после оптимизации }
y := (x shl 2 - x) shl 1; // 3 такта, неоптимальный вариант реализации
y := x shl 2 + x shl 1;   // 2 такта при условии, что операции сдвига попадут в различные исполнительные устройства и будут выполнены параллельно

Можно заметить, что не для всех множителей возможна эффективная замена на более простые операции. Кроме того, решение о подобной замене должно учитывать микроархитектурные особенности процессора (как минимум латентность выполнения операций), под который производится подобная оптимизация (например, операции сдвига на процессоре Pentium 4 выполняются существенно дольше, чем на других процессорах, что необходимо учитывать)[1].

Сноски

  1. Во многих компиляторах (например, Intel C++ Compiler) существует возможность при помощи опций командной строки указать компилятору процессор, на котором планируется выполнение программы

Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Понижение силы операций" в других словарях:

  • Оптимизирующий компилятор — Эта статья предлагается к удалению. Пояснение причин и соответствующее обсуждение вы можете найти на странице Википедия:К удалению/24 декабря 2012. Пока процесс обсужден …   Википедия

  • Оптимизация компилятора — Эту страницу предлагается объединить с Оптимизирующий компилятор. Пояснение причин и обсуждение на странице Википедия:К …   Википедия

  • Мемоизация — В программировании, мемоизация специальная оптимизационная методика, которая позволяет увеличить скорость выполнения компьютерных программ. Данная методика заключается в том, чтобы исключить повторное вычисление результатов …   Википедия

  • МОЗЖЕЧКОВО-МОСТОВОЙ УГОЛ — (Klein hirnbruckenwinkel, angle ponto cerebelleuse, по нек рым angle ponto bulbo cerebelleuse) занимает своеобразное место в невропатологии, неврогистопатологии и неврохирургии. Названием этим обозначается угол между мозжечком, продолговатым… …   Большая медицинская энциклопедия

  • Европейский долговой кризис — В этой статье описываются текущие события. Информация может быстро меняться по мере развития события. Вы просматриваете статью в версии от 14:59 13 декабря 2012 (UTC). ( …   Википедия

  • ЖЕЛУДОК — ЖЕЛУДОК. (gaster, ventriculus), расширенный отдел кишечника, имеющий благодаря наличию специальных желез значение особо важного пищеварительного органа. Ясно диференцированные «желудки» многих беспозвоночных, особенно членистоногих и… …   Большая медицинская энциклопедия

  • Капитал — (Capital) Капитал это совокупность материальных, интеллектуальных и финансовых средств, используемых для получения дополнительных благ Определение понятия капитала, виды капитала, рынок капитала, кругооборот капитала, проблема оттока… …   Энциклопедия инвестора

  • Фирма — (Firm) Определение фирмы, признаки и классификация фирм Определение фирмы, признаки и классификация фирм, концепции фирмы Содержание Содержание Фирма Юридические формы Понятие фирмы и предпринимательства. Основные признаки и классификации фирм… …   Энциклопедия инвестора

  • Компания — (Company) Содержание Содержание Юридические формы компании Понятие организации и предпринимательства. Основные признаки и классификации компаний Признаки фирмы Основные концепции организации Контрактная концепция фирмы Стратегическая концепция… …   Энциклопедия инвестора

  • Торговля — (теория). Под Т. разумеют промысловую деятельность, имеющую целью преодолевать препятствия, разделяющие производителей и потребителей во времени и пространстве. Это определение (Ван дер Боргт) шире общепринятого, по которому Т. заключается в… …   Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»