Оптимизирующие преобразования программ
В учебном пособии рассматриваются ускоряющие (оптимизирующие и распараллеливающие) преобразования программ. Представленные преобразования иллюстрируются многочисленными примерами преобразований программ языка С. Тематика предлагаемого материала актуальна, поскольку популярные промышленные оптимизирующие компиляторы плохо оптимизируют код. Разрабатываемые программы зачастую используют около 1 % пиковой производительности процессора – это притом, что быстродействие во многих приложениях имеет существенное значение. По этой тематике издано много книг и обзорных статей, часть из которых представлена в списке литературы. Данное учебное пособие отличается строгостью формулировок и обоснований представленных преобразований, основное внимание уделяется преобразованиям циклов.Предназначено для студентов направлений подготовки «Прикладная математика и информатика» и «Фундаментальная информатика и информационные технологии».
Содержание
Содержание книги "Оптимизирующие преобразования программ "
Отрывок из книги
132.1. Программные зависимости и базовые преобразованияками, которые перехватывают передачи управления, входящие в рассматриваемый цикл и выходящие из него. Пример 4. В этом примере все операторы информационно незави-симы. Управление передаётся от каждого предыдущего оператора к последующему. Но операторы 3 и 4 можно менять местами, а опе-раторы 1 и 2 – нельзя. Заметим, что перестановка операторов 1 и 2 приводит к программе синтаксически и семантически коррект-ной, но не эквивалентной исходной. По этой причине иногда при-ходится оговаривать, какие именно операторы входят в рассма-триваемый фрагмент. 1 GOTO 2;2 X = 1; 3 Y = 2 ;4 Z = 3 ;Конец примера. Строгое определение корректности преобразования про-грамм обсуждается в [6]. В данной работе исследуются эквива-лентность и эффективность преобразований программ. Синтак-сическая корректность преобразований если не оговаривается, то подразумевается. При автоматических преобразованиях программы в опти-мизирующих компиляторах программы, как правило, находятся в древовидных внутренних (промежуточных) представлениях. И преобразования проводятся во внутреннем представлении и представляют собой преобразования деревьев. Этим самым устра-няются некоторые некорректности, которые возможны при пре-образованиях текста. Например, невозможно переставить местами тело цикла и заголовок цикла, поскольку заголовок цикла – это корень куста, на котором тело цикла находится, а переставлять можно только целые кусты. В Оптимизирующей распараллелива-ющей системе (ОРС) строится визуализация управляющего графа программы (рис. 1).
Внимание!
При обнаружении неточностей или ошибок в описании книги "Оптимизирующие преобразования программ (автор Борис Штейнберг)", просим Вас отправить сообщение на почту help@directmedia.ru. Благодарим!
и мы свяжемся с вами в течение 15 минут
за оставленную заявку