Петлевая перфорация
Петлевая перфорация — приближенный вычислительный прием, позволяющий регулярно пропускать некоторые итерации цикла. [ 1 ] [ 2 ] [ 3 ]
Он опирается на один параметр : скорость перфорации . Скорость перфорации можно интерпретировать как количество итераций, которые нужно пропустить каждый раз, или количество итераций, которые необходимо выполнить перед пропуском одной.
Варианты перфорации цикла включают те, которые пропускают итерации детерминированно через равные промежутки времени, те, которые пропускают итерации в начале или конце цикла, и те, которые пропускают случайную выборку итераций. Компилятор может выбрать вариант перфорации во время компиляции или включить инструменты, которые позволяют системе времени выполнения адаптивно корректировать стратегию перфорации и скорость перфорации для достижения цели сквозной точности.
Техника петлевой перфорации была впервые разработана старшими исследователями Массачусетского технологического института Мартином К. Ринардом и Стелиосом Сидироглу.
Примеры кода
[ редактировать ]В следующих примерах показан результат перфорации цикла, примененный к этому C -подобному исходному коду.
for (int i = 0; i < N; i++) {
// do things
}
Пропускать n итераций каждый раз
[ редактировать ]for (int i = 0; i < N; i++) {
// do things
i = i + skip_factor;
}
Пропустить одну итерацию после n
[ редактировать ]int count = 0;
for (int i = 0; i < N; i++) {
if (count == skip_factor) {
count = 0;
} else {
// do things
count++;
}
}
См. также
[ редактировать ]- ^ Генри Хоффманн, Саса Мисаилович, Стелиос Сидироглу, Анант Агарвал, Мартин Ринар «Использование перфорации кода для повышения производительности, снижения энергопотребления и реагирования на сбои» MIT CSAIL Tech. Отчет 2009-042, сентябрь 2009 г.
- ^ Саса Мисаилович, Стелиос Сидироглу, Генри Хоффманн, Мартин К. Ринар «Профилирование качества обслуживания» 32-я Международная конференция по программной инженерии (ИКСБ 2010). Май 2010.
- ^ Стейлос Сидироглу, Саса Мисаилович, Генри Хоффманн и Мартин Ринар. «Управление производительностью и компромиссом между точностью при перфорации петли». ЕСЕК/ФСЕ. Сентябрь 2011 г.