Размыкание цикла (англ. loop unswitching) состоит в вынесении условия за пределы цикла и дублирования тела цикла с помещением соответствующих вариантов в соответствующие ветви условия. Это позволяет улучшить производительность за счёт того, что современные процессоры могут выполнять векторные операции (данное оптимизирующее преобразование может быть выполнено совместно с размоткой цикла, а результатом размотки, в свою очередь, являются несколько операций в итерации, производимые над последовательными участками памяти, которые можно заменить одной векторной, если это позволяет архитектура; так, например, делается в ICC). Кроме того, это позволяет более эффективно выполнить цикл параллельно.

Пример преобразования

править
for (i = 0; i < 1000; i++)
{
    x[i] += y[i];
   
    if (w)
    {
        y[i] = 0;
    }
}

Условие внутри тела цикла мешает его распараллеливанию. После размыкания оно принимает следующий вид:

if (w)
{
    for (i = 0; i < 1000; i++)
    {
        x[i] += y[i];
        y[i] = 0;
    }
}
else
{
    for (i = 0; i < 1000; i++)
    {
        x[i] += y[i];
    }
}

Каждый из полученных циклов может, в свою очередь, быть оптимизирован отдельно.

Литература

править
  • Heiko Falk, Peter Marwedel. Source Code Optimization Techniques for Data Flow Dominated Embedded Software. — Springer, 2004. — P. 90. — 226 p.

📚 Artikel Terkait di Wikipedia

Вирус герпеса человека 7 типа

недостаточно. Присутствие ВГЧ-7 может быть определено методом LAMP (англ. loop-mediated isothermal amplification) и ПЦР в реальном времени. Специфичного

Координатный спуск

04759. Spall J. C. Cyclic Seesaw Process for Optimization and Identification // Journal of Optimization Theory and Applications. — 2012. — Т. 154, вып

Алгоритм Франк — Вульфа

3800030109. Dunn J. C., Harshbarger S. Conditional gradient algorithms with open loop step size rules // Journal of Mathematical Analysis and Applications. — 1978

Разрезающее циклы множество вершин

 — doi:10.1613/jair.638. — arXiv:1106.0225. Ann Becker, Dan Geiger. Optimization of Pearl's method of conditioning and greedy-like approximation algorithms

Доказательства эволюции

18 апреля 2016 года. Dawkins, 2009, p. 361  (англ.) Goldsmith, T. H. Optimization, constraint, and history in the evolution of eyes (англ.) // Quarterly

Пантелеев, Андрей Владимирович

Application of Metaheuristic Algorithms of Global Constrained Optimization to Optimal Open Loop Control Problems. — P. 149—190. — Nova Science publishers

Ферментный промискуитет

PMID 15568024. Diminishing returns and tradeoffs constrain the laboratory optimization of an enzyme. Nature Communications. 3: 1257. 2012. Bibcode:2012NatCo

Алгоритм Джонсона — Троттера

of the School on Analysis and Design of Algorithms in Combinatorial Optimization, Udine, Italy. Technical report 8003/0, Erasmus University Rotterdam (англ