Компьютерные науки

Введение в оптимизацию приложений с использованием инструментов Intel

Программа об основах оптимизации программ на языках C и Fortran с помощью инструментов Intel. Рассматривается влияние архитектуры процессора, векторизация, распараллеливание и межпроцедурные преобразования для повышения производительности.
Студентов 12 Для специалистов
690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.
Темы:
Программирование
Объем

36 час.
Длительность

30 дней
Нагрузка в неделю

9 час.
Формат обучения

Дистанционно (самостоятельно)
Описание Учебная программа помогает разработчикам глубже понять эволюцию возможностей процессоров Intel и научиться эффективно использовать аппаратные ресурсы. Подробно освещается роль оптимизирующего компилятора и разбираются ручные и автоматические способы улучшения кода: от простых скалярных преобразований до векторизации и работы с циклами. Материал выстроен вокруг архитектурных особенностей процессоров и соответствующих им методов ускорения кода. Подробно разбираются автоматическое распараллеливание, основы OpenMP и межпроцедурные оптимизации. От анализа производительности в VTune слушатели переходят к изучению параллельных оптимизаций, закрепляя каждый этап проверочными тестами. В качестве основного средства для профилирования используется Intel VTune Amplifier. Обучение будет крайне полезно C/C++ и Fortran программистам.
Цели
  • Сформировать понимание архитектурных факторов, влияющих на производительность процессоров Intel.
  • Раскрыть методы скалярной, циклической и межпроцедурной оптимизации кода.
  • Дать практические навыки использования компиляторов Intel для векторизации и распараллеливания.
  • Познакомить с инструментами статического и динамического профилирования программ.
Чему я научусь?
  • Анализировать производительность программного обеспечения с помощью Intel VTune Amplifier.
  • Применять оптимизирующий компилятор для автоматического ускорения скалярных и циклических конструкций.
  • Выполнять векторизацию и автоматическое распараллеливание вычислительного кода.
  • Использовать директивы OpenMP для создания многопоточных приложений.
  • Проводить статическое и динамическое профилирование для выявления узких мест.

Авторы

Ануфриенко Андрей Владимирович
Ануфриенко Андрей Владимирович
Intel Compiler Group, Novosibirsk.
Идрисов Ренат Искандерович
Идрисов Ренат Искандерович
К.ф.-м.н , ИСИ им. А.П. Ершова СО РАН.
Касьянов Виктор Николаевич
Касьянов Виктор Николаевич
Профессор, д.ф.-м.н., ИСИ им. А.П. Ершова СО РАН, ММФ НГУ.
Никита Владимирович Панов
Никита Владимирович Панов
Intel Compiler Group, Novosibirsk.
Чему я научусь?
  • Анализировать производительность программного обеспечения с помощью Intel VTune Amplifier.
  • Применять оптимизирующий компилятор для автоматического ускорения скалярных и циклических конструкций.
  • Выполнять векторизацию и автоматическое распараллеливание вычислительного кода.
  • Использовать директивы OpenMP для создания многопоточных приложений.
  • Проводить статическое и динамическое профилирование для выявления узких мест.

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз. 90 мин
1 Архитектура микропроцессора Intel и основные факторы, влияющие на его производительность На лекции рассматривается упрощённая модель процессора, составляющие его компоненты. Рассматривается многоуровневая модель памяти, использование регистров и... На лекции рассматривается упрощённая модель процессора, составляющие его компоненты. Рассматривается многоуровневая модель памяти, использование регистров и оперативной памяти, механизм упреждающей выборки, предсказание переходов. Конвейер. Векторные инструкции. Многоядерность и параллельное выполнение инструкций. Место и роль компилятора в процессе создания эффективного приложения. ещё
Архитектура микропроцессора Intel и основные факторы, влияющие на его производительность тест для курса Введение в оптимизацию приложений с использованием инструментов Intel 50 мин
2 Инструменты Intel для анализа производительности Рассматривается анализ производительности приложения при помощи VTune. Выявление критических участков кода, сбор информации о таких событиях... Рассматривается анализ производительности приложения при помощи VTune. Выявление критических участков кода, сбор информации о таких событиях как промахи кэширования, неправильное предсказание переходов. Оценка эффективности использования системных ресурсов. Общие рекомендации по использованию VTune в процессе оптимизации работы приложения. ещё
Инструменты Intel для анализа производительности тест для курса Введение в оптимизацию приложений с использованием инструментов Intel 30 мин
3 Оптимизирующий компилятор Архитектура компилятора Intel, его основные компоненты. Синтаксический анализ, дерево разбора. Внутреннее представление компилятора. Вводится понятие информационной... Архитектура компилятора Intel, его основные компоненты. Синтаксический анализ, дерево разбора. Внутреннее представление компилятора. Вводится понятие информационной зависимости и графов, которые используются при оптимизации программ. Форма с однократным присваиванием. Рассматриваются простейшие операции, позволяющие улучшить производительность кода. ещё
Оптимизирующий компилятор тест для курса Введение в оптимизацию приложений с использованием инструментов Intel 70 мин
4 Оптимизации циклических конструкций Рассматриваются простые оптимизации циклов, выполняемые в автоматическом режиме компилятором Intel. Распознание и классификация циклов. Вынос инвариантов... Рассматриваются простые оптимизации циклов, выполняемые в автоматическом режиме компилятором Intel. Распознание и классификация циклов. Вынос инвариантов и условных переходов. Разбиение, объединение, развёртка, расщепление и перестановка циклов. Особенности анализа зависимостей в циклических конструкциях. Нормализация циклов и распознание индукционных переменных. ещё
Оптимизации циклических конструкций тест для курса Введение в оптимизацию приложений с использованием инструментов Intel 45 мин
5 Векторизация История возникновения и развития векторного расширения в массовых процессорах Intel. Способы использования векторных инструкций и их... История возникновения и развития векторного расширения в массовых процессорах Intel. Способы использования векторных инструкций и их набор. Векторизация, осуществляемая явным образом при помощи вызова специфических инструкций и автоматическая векторизация при помощи компилятора Intel. ещё
Векторизация тест для курса Введение в оптимизацию приложений с использованием инструментов Intel 30 мин
6 Автоматическое распараллеливание История развития многоядерных процессоров Intel и актуальность создания параллельных программ. Различные модели использования памяти в многопроцессорных... История развития многоядерных процессоров Intel и актуальность создания параллельных программ. Различные модели использования памяти в многопроцессорных системах. Плюсы и минусы многопоточных программ. Возможности компилятора Intel по автоматическому распараллеливанию программ. ещё
Автоматическое распараллеливание тест для курса Введение в оптимизацию приложений с использованием инструментов Intel 55 мин
7 Введение в OpenMP Использование OpenMP для создания параллельных приложений. Достоинства и недостатки модели, используемой в рамках OpenMP. Основные возможности... Использование OpenMP для создания параллельных приложений. Достоинства и недостатки модели, используемой в рамках OpenMP. Основные возможности и директивы управления параллельными вычислениями. Синхронизация и накладные расходы. ещё
Введение в OpenMP тест для курса Введение в оптимизацию приложений с использованием инструментов Intel 30 мин
8 Межпроцедурные оптимизации Хороший стиль программирования и актуальность различных типов межпроцедурных оптимизаций. Анализ совмещений и распространение информации между процедурами.... Хороший стиль программирования и актуальность различных типов межпроцедурных оптимизаций. Анализ совмещений и распространение информации между процедурами. Управление процессом подстановки при помощи директив и опций командной строки. Частичная подстановка и клонирование процедур. Специфические оптимизации объектно-ориентированных языков программирования. ещё
Межпроцедурные оптимизации тест для курса Введение в оптимизацию приложений с использованием инструментов Intel 65 мин
9 Статическое и динамическое профилирование Компиляция приложения, снабженного механизмом сбора информации для динамического профилирования. Плюсы и минусы использования динамической памяти. Способы... Компиляция приложения, снабженного механизмом сбора информации для динамического профилирования. Плюсы и минусы использования динамической памяти. Способы улучшения работы с динамической памятью. Кодогенератор, задачи и особенности, возникающие в процессе генерации кода. Планирование инструкций. ещё
Статическое и динамическое профилирование тест для курса Введение в оптимизацию приложений с использованием инструментов Intel 40 мин
10 Высокопроизводительные компиляторы Intel C++ и Fortran Intel Composer XE 2013
11 Intel-VTune-Amplifier-XE-2013-PB-Russian
12 Intel-Cluster-Studio-XE-2013SP1-PB-RU-082713
13 Программные инструменты Intel для разработчиков
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз. 90 мин
Экзамен 60 мин

Какой документ я получу?

Сертификат

Выдаётся автоматически после успешного завершения программы.

Удостоверение о повышении квалификации

Выдается при наличии среднего специального или высшего образования (необходимые документы).

Стоимость программы

690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.