Размотка цикла: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
+ {{тупиковая статья}} при помощи AWB
ManN (обсуждение | вклад)
linked, викификация
Строка 1:
{{тупиковая статья}}
 
{{изолированная статья|сирота1}}
 
__NOTOC__
При '''loop unrolling''' ('''раскрутке циклов''') производится увеличение количества инструкций в итерации цикла[[цикл]]а, что увеличивает количество инструкций, которые потенциально могут выполняться параллельно, а также позволяет интенсивнее использовать регистры[[регистр]]ы и [[кэш]] данных.
 
== Пример ==
Строка 32 ⟶ 28 :
</source>
 
Подробно данный вид оптимизации рассмотрен, например, в <ref>{{ref-en}} J. C. Huang, T. Leng, Generalized Loop-Unrolling: a Method for Program Speed-Up, 1998</ref>. Он (совместно с [[loop fission]]) при определённых условиях (отсутствии зависимостей по данным между инструкциями в новом цикле) позволяет выполнять цикл на нескольких процессорах[[процессор]]ах.
 
== Недостатки ==