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

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

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

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

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

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

Дистанционно (самостоятельно)
Описание Эта учебная программа посвящена раскрытию основных тенденций в развитии вычислительных систем и методов эффективного использования их ресурсов. Слушатели научатся анализировать работу приложений с помощью профилировщика VTune и понимать, как хороший стиль программирования влияет на возможности компилятора по улучшению кода. Обучение построено на постепенном погружении от архитектурных особенностей процессора к практическому применению компиляторов. Подробно разбираются простейшие перестановочные и циклические оптимизации, а также баланс плюсов и минусов при работе с динамической памятью. Темы охватывают анализ производительности, локальные и глобальные оптимизации, сопровождаясь промежуточными тестами. Завершающий блок посвящен основам создания многопоточных программ. Программа адресована разработчикам.
Цели
  • Сформировать базовое понимание архитектуры микропроцессоров Intel и факторов их производительности.
  • Познакомить с принципами анализа приложений и выявления узких мест.
  • Раскрыть методы глобальной, локальной и циклической оптимизации кода.
  • Дать основы создания эффективных многопоточных программ с использованием компиляторов.
Чему я научусь?
  • Оценивать влияние архитектуры процессора на скорость выполнения программ.
  • Использовать инструменты Intel для анализа и профилирования приложений.
  • Применять простейшие перестановочные и циклические оптимизации в коде.
  • Писать код в стиле, способствующем эффективной автоматической оптимизации.
  • Проектировать базовые многопоточные приложения для современных систем.

Авторы

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

Учебный план

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

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

Сертификат

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

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

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

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

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