Авторы: Андрей Ануфриенко, Ренат Идрисов
Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
Вам нравится? Нравится 11 студентам
Уровень:
Для всех
Длительность:
8:34:00
Студентов:
1426
Выпускников:
451
Качество курса:
4.31 | 4.16
Курс направлен на изучение различных видов оптимизаций на начальном уровне.
В процессе обучения рассматриваются основные тенденции в развитии
вычислительных систем и способы их эффективного использования. Анализ приложения при помощи VTune. Простейшие перестановочные оптимизации,
оптимизации циклических конструкций. Хороший стиль программирования и его влияние на возможность оптимизации кода. Плюсы и минусы работы с динамической
памятью. Основы создания многопоточных программ при помощи компилятора Intel.
Темы: Программирование
Специальности: Программист
Теги: EM64T, MMX, openmp, SSE, анализ, анализ потока данных, архитектуры, векторизация, граф вызовов, документация, компиляторы, конвейеризация, подвыражение, потоки, приложения, производительность, процедуры, процессоры, статистика, суперскалярность, указатели, эффективность
Дополнительные курсы
- Оптимизация приложений с использованием компиляторов Intel
- Оптимизация приложений с использованием библиотеки Intel MKL
- Введение в разработку приложений для мобильных устройств на процессоре Intel Atom
- Оптимизация приложений с использованием библиотеки Intel Math Kernel Library. Уровень 1
- Оптимизация приложений с использованием библиотеки Intel Math Kernel Library. Уровень 2
- Оптимизация приложений с использованием компиляторов Intel. Уровень 1
- Оптимизация приложений с использованием компиляторов Intel. Уровень 2
План занятий
Занятие
Заголовок <<
Дата изучения
Лекция 1
1 час 12 минут
Архитектура микропроцессора Intel и основные факторы, влияющие на его производительность
На лекции рассматривается упрощенная модель процессора, составляющие его компоненты. Рассматривается многоуровневая модель памяти, использование регистров и оперативной памяти, механизм упреждающей выборки, предсказание переходов. Конвейер. Векторные инструкции. Многоядерность и параллельное выполнение инструкций. Место и роль компилятора в процессе создания эффективного приложения.
Оглавление
-
Лекция 2
26 минут
Использование инструментов Intel® для оптимизации программ
Краткий обзор возможных путей оптимизации при помощи программного обеспечения. Выявление критических участков кода, сбор информации о таких событиях как промахи кэширования, неправильное предсказание переходов. Оценка эффективности использования системных ресурсов. Общие рекомендации по использованию VTune в процессе оптимизации работы приложения.
Оглавление
-
Лекция 3
24 минуты
Простейшие оптимизации программ
Понятие информационной зависимости и перестановка операторов при исполнении. Простейшие перестановочные скалярные оптимизации. Понятие формы с однократным присваиванием. Удаление ненужного кода. Оптимизации циклических конструкций. Нормализованный цикл. Использование опций компилятора для выбора и диагностики оптимизаций.
Оглавление
-
Лекция 4
47 минут
Глобальные и локальные оптимизации
Хороший стиль программирования и актуальность различных типов межпроцедурных оптимизаций. Анализ совмещений и распространение информации между процедурами. Управление процессом подстановки при помощи директив и опций командной строки. Частичная подстановка и клонирование процедур. Компиляция приложения, снабженного механизмом сбора информации для динамического профилирования. Плюсы и минусы использования динамической памяти. Способы улучшения работы с динамической памятью.
Оглавление
-
Лекция 5
55 минут
Оптимизации для параллельных вычислений
История возникновения и развития векторного расширения в массовых процессорах Intel. Способы использования векторных инструкций и их набор. Векторизация, осуществляемая явным образом при помощи вызова специфических инструкций и автоматическая векторизация при помощи компилятора Intel. История развития многоядерных процессоров Intel и актуальность создания параллельных программ. Различные модели использования памяти в многопроцессорных системах. Плюсы и минусы многопоточных программ. Возможности компилятора Intel по автоматическому распараллеливанию программ.
Оглавление
-