Одним из главных принципов уникальной «системы Физтеха», заложенной в основу образования в МФТИ, является тщательный отбор одаренных и склонных к творческой работе представителей молодежи. Абитуриентами Физтеха становятся самые талантливые и высокообразованные выпускники школ всей России и десятков стран мира.

Студенческая жизнь в МФТИ насыщенна и разнообразна. Студенты активно совмещают учебную деятельность с занятиями спортом, участием в культурно-массовых мероприятиях, а также их организации. Администрация института всячески поддерживает инициативу и заботится о благополучии студентов. Так, ведется непрерывная работа по расширению студенческого городка и улучшению быта студентов.

Адрес e-mail:

«Оптимизация программного кода» (9 семестр)

Программа курса

«Оптимизация программного кода» (9 семестр)

 

1. Архитектуры, системное и прикладное программное обеспечение

1.1. Архитектуры вычислительных систем и программное обеспечение как составная часть архитектуры. Производительность архитектуры и совместимость ПО.

1.2. Системный уровень программного обеспечения и прикладное программирование. Системы программирования.

1.3. Разработка программного обеспечения для новых архитектор.

 

2. Системы программирования

2.1. Макроструктура компилятора (Препроцессор, компилятор, ассемблер, линкер)

2.2. Общее понятие об исполняемых форматах (ELF, PE, a.out, row); realloc & execution

2.3. Представления об отладочный форматах (Coff, DWARF, …)

2.4. Основные системные утилиты (asm, disasm, linker (ld vs. gold), …)

2.5. Библиотеки (статическая и динамическая линковка, библиотеки языковой поддержки, STL, boost, ...)

2.6. Система программирования GNU

2.7. Разработка систем программирования для новых архитектур

2.8. Системы отладки (debugger, valgrind, thread sanitizer, …)

 

3. Компиляторы и технологии оптимизирующей компиляции.

3.1. Оптимизация ПО для разных архитектур. Различные уровни распараллеливания вычислений.

3.2. Структура оптимизирующих компиляторов. Различные виды промежуточного представления программы. Базовые структуры данных используемые в оптимизаторах.

3.3. Анализ потока управления в программе, CFG-граф, линейные участки.

3.4. Анализ потока данных, DU-граф, дерево доминаторов, определение времени жизни переменных, SSA-форма, алгоритм построения DU-графа.

3.5. Проведение оптимизаций по DU-графу, метод нумерации значений, локальные оптимизации потока данных.

3.6. Оптимизации циклических участков программы, дерево циклов, сводимость циклов, цикловые оптимизации.

3.7. Глобальные и межпроцедурные оптимизации. Граф вызова процедур.

3.8. Разрешение конфликтов обращений в память, глобальный межпроцедурный анализ указателей.

3.9. LLVM, компоненты библиотеки LLVM. Компиляторы, основанные на LLVM, особенности реализации промежуточного представления.

3.10. Системы двоичной трансляции, JIT-компиляция.

 

 

Список литературы:  

  1. А.Ахо, Р.Сети, Дж.Ульман, "Компиляторы: принципы, технологии, инструменты", М:"Вильямс", 2001
  2. Steven S.Muchnik, "Advanced Compiler Design And Implementation", Morgan Kaufmann Publishers, 1997
  3. В.Н.Касьянов, "Оптимизирующие преобразования программ", М:"Наука", 1988

 

Материалы лекций:

 

 

Если вы заметили в тексте ошибку, выделите её и нажмите Ctrl+Enter.

© 2001-2016 Московский физико-технический институт
(государственный университет)

Техподдержка сайта

МФТИ в социальных сетях

soc-vk soc-fb soc-tw soc-li soc-li
Яндекс.Метрика