Оптимизация в компиляторах (9 сем ВМК) (1157503)
Текст из файла
5
Программа по дисциплине: Оптимизирующие компиляторы (дополнительные главы)
по направлению: ?
профиль подготовки: Системное программирование
кафедра Системного программирования
курс: 5 (магистратура)
семестр: осенний экзамен 9 семестр
ОБЪЁМ УЧЕБНОЙ НАГРУЗКИ И ВИДЫ ОТЧЁТНОСТИ.
Вариативная часть, в т.ч. : | __?___ зач. ед. |
Лекции | __34___ часа |
Практические занятия | __ нет ___ часов |
Лабораторные работы | __ 16 ___ часов |
Индивидуальные занятия с преподавателем | __нет___ часов |
Самостоятельные занятия | __?__ часов |
Итоговая аттестация | Экзамен 9 семестр |
ВСЕГО |
-
ЦЕЛИ И ЗАДАЧИ
Цель курса – Целью курса является углубленное изучение методов, алгоритмов и систем построения оптимизирующих статических и динамических компиляторов современных языков программирования, учитывающих особенности архитектуры современных микропроцессоров.
Задачами данного курса являются:
-
освоение студентами современного состояния теории и практики построения оптимизирующих компиляторов;
-
приобретение знаний по теории графов, теории решеток, методам сбора статистики (в частности – методам профилирования программ), лежащих в основе современных компиляторных технологий;
-
оказание консультаций и помощи студентам в проведении собственных исследований и разработок в областях, использующих компиляторные технологии;
-
приобретение навыков работы на современных распределенных неоднородных компьютерных системах.
-
Структура и содержание дисциплины
Структура дисциплины
Перечень разделов дисциплины и распределение времени по темам
№ темы и название | Количество часов |
1. Цели и задачи курса. | 2 |
2. Методы и алгоритмы машинно-независимой оптимизации (дополнительные главы). | 10 |
3. Методы и алгоритмы машинно-ориентированной оптимизации (дополнительные главы). | 4 |
4. Разработка оптимизирующих фаз компиляторов в среде LLVM. | 4 |
5. Распараллеливание кода. | 6 |
6. Оптимизации, связанные с возможностью параллельного выполнения кода в многоядерных процессорах. | 6 |
7. Заключение. | 2 |
ВСЕГО часов | 34 |
Вид занятий
ЛЕКЦИИ:
№ темы и название | Количество часов |
1. Цели и задачи курса. | 2 |
2. Методы и алгоритмы машинно-независимой оптимизации. | 10 |
3. Методы и алгоритмы машинно-ориентированной оптимизации. | 4 |
4. Динамическая и адаптивная оптимизация. | 4 |
5. Распараллеливание кода. | 6 |
6. Организация параллельного выполнения кода. | 6 |
7. Заключение. | 2 |
ВСЕГО часов | 34 |
ЛАБОРАТОРНЫЕ РАБОТЫ:
№ темы и название | Количество часов |
2. Методы и алгоритмы машинно-независимой оптимизации. | 8 |
3. Методы и алгоритмы машинно-ориентированной оптимизации. | 8 |
ВСЕГО часов | 16 |
ВИДЫ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
№ п.п. | Темы | Трудоёмкость в зач. ед. (количество часов) |
1 | - Изучение теоретического курса – выполняется самостоятельно каждым студентом по итогам каждой из лекций, результаты контролируются преподавателем на лекционных и практических занятиях, используются конспект (электронный) лекций, учебники, рекомендуемые данной программой, методические пособия. | 14 час. |
2 | - Решение задач по заданию преподавателя – решаются задачи, выданные преподавателем по итогам семинарских занятий, и сдаются в конце семестра, используются конспект (электронный) лекций, учебники, рекомендуемые данной программой, | 4 час. |
3 | - Подготовка к экзамену | |
ВСЕГО (зач. ед.(часов)) | 18 час. |
Содержание дисциплины
№ п/п | Название разделов | Темы лекционных занятий | Содержание |
1. | Цели и задачи курса. | Цели и задачи курса. | |
2. | Методы и алгоритмы машинно-независимой оптимизации. | Анализ потока данных. | Исключение частично-избыточных вычислений с помощью анализа ожидаемых выражений. |
Построение квазиоптимальной SSA-формы. | Построение границ доминирования для узлов графа потока управления. Алгоритм расстановки -функций. | ||
Метод глобальной нумерации значений | Глобальная нумерация значений методом установления конгруэнтности узлов графа потока управления. Сравнение двух методов глобальной нумерации значений. | ||
Оптимизация циклов. | Выявление индуктивных переменных и минимизация их количества в гнезде циклов. Выбор оптимального порядка циклов в гнезде. | ||
Межпроцедурный анализ указателей | Методы контекстно-чувствительного межпроцедурного анализа – классификация контекстов, клонирование процедур, использование аннотаций. | ||
3. | Методы и алгоритмы машинно-ориентирован-ной оптимизации. | Планирование кода. | Постановка задачи глобального планирования кода. Перемещение кода вверх и вниз по пути управления. Обновление зависимостей. Алгоритм глобального планирования кода на основе областей. Конвейеризация гнезд циклов. Покадровая оптимизация потока команд с учетом особенностей архитектуры целевого процессора. |
4. | Порядок выполнения оптимизи-рующих фаз. | Порядок выполнения оптимизирующих фаз. | Взаимное влияние оптимизирующих фаз. Зависимость оптимизирующих фаз от компилируемой программы. Эвристики выбора последовательности оптимизирующих фаз (параметров компилятора). |
5. | Распаралле-ливание кода. | ||
6. | Организация параллельного выполнения кода. | ||
7. | Заключение. | Заключительные замечания. |
-
Образовательные технологии
№ п/п | Вид занятия | Форма проведения занятий | Цель |
1 | лекция | изложение теоретического материала | получение теоретических знаний по дисциплине |
2 | лекция | изложение теоретического материала с помощью презентаций | повышение степени понимания материала |
3 | лекция | решение задач по заданию преподавателя – решаются задачи, выданные преподавателем по итогам лекционных занятий, и сдаются в конце семестра, используются конспект (электронный) лекций, учебники, рекомендуемые данной программой, а также учебно-методические пособия | осознание связей между теорией и практикой, а также взаимозависимостей разных дисциплин |
4 | самостоятельная работа студента | подготовка к защитам лабораторных работ, подготовка к экзамену и зачету с оценкой | повышение степени понимания материала |
-
Учебно-методическое и информационное обеспечение дисциплины
-
Основная литература.
-
-
A.В. Axo, М.С. Лам, P. Сети, Дж.Д. Ульман. Компиляторы: принципы, технологии и инструментарий. Издание второе. / М.: ООО «И.Д. Вильямс», 2008, ISBN: 978-5-8459-1349-4
-
K.D. Cooper and L. Torczon. Engineering a Compiler. 2nd edition. / Elsevier (Morgan Kaufman Publishers), 2012, ISBN: 978-0-12-088478-0.
-
Дополнительная литература.
-
Y. N. Srikant, P. Shankar. The Compiler Design Handbook. 2nd edition. CRC press – 2008 ISBN: 978-1-4200-4382-2
-
The LLVM Compiler Infrastructure. // http://llvm.org/
-
A GNU Manual. // http://gcc.gnu.org/
-
The SUIF 2 Compiler System. // http://suif.stanford.edu/suif/suif2/
-
Free Compiler Construction Tools. // http://www.thefreecountry.com/programming/compilerconstruction.shtml
-
Пособия и методические указания.
-
Слайды лекций (Интернет)
Пособие по лекциям разрабатывается.
Программу составил
С. С. Гайсарян.
«_____»_________2013 г.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.