Россия, Ленинград, ЛГМИ Ленинградский Гидрометеорологический Институт, 1986 |
Опубликован: 18.02.2011 | Уровень: специалист | Доступ: платный | ВУЗ: Новосибирский Государственный Университет
Курс направлен на изучение основ оптимизации программ при помощи инструментов Intel. Для понимания лекционных материалов требуются базовые навыки программирования на языках C и Fortran.
На первой лекции приводится краткий обзор эволюции возможностей массовых процессоров, затем обозначаются основные оптимизационные моменты и роль компилятора в процессе оптимизации. На последующих лекциях оптимизационные преобразования рассматриваются как с точки зрения улучшения производительности программ вручную, так и при помощи компилятора Intel в автоматическом режиме. Кроме простых скалярных оптимизаций рассматриваются векторизация, распараллеливание и межпроцедурные оптимизации. В качестве инструмента для анализа производительности и оценки эффективности программы используется VTune.
План занятий
Занятие | Заголовок << | Дата изучения |
---|---|---|
- | ||
Лекция 1 | Архитектура микропроцессора Intel и основные факторы, влияющие на его производительность
На лекции рассматривается упрощённая модель процессора, составляющие его компоненты. Рассматривается многоуровневая модель памяти, использование регистров и оперативной памяти, механизм упреждающей выборки, предсказание переходов. Конвейер. Векторные инструкции. Многоядерность и параллельное выполнение инструкций. Место и роль компилятора в процессе создания эффективного приложения.
Оглавление | - |
Тест 130 минут | - | |
Лекция 2 | Инструменты Intel для анализа производительности
Рассматривается анализ производительности приложения при помощи VTune. Выявление критических участков кода, сбор информации о таких событиях как промахи кэширования, неправильное предсказание переходов. Оценка эффективности использования системных ресурсов. Общие рекомендации по использованию VTune в процессе оптимизации работы приложения.
Оглавление | - |
Тест 218 минут | - | |
Лекция 3 | Оптимизирующий компилятор
Архитектура компилятора Intel, его основные компоненты. Синтаксический анализ, дерево разбора. Внутреннее представление компилятора. Вводится понятие информационной зависимости и графов, которые используются при оптимизации программ. Форма с однократным присваиванием. Рассматриваются простейшие операции, позволяющие улучшить производительность кода.
Оглавление | - |
Тест 342 минуты | - | |
Лекция 4 | Оптимизации циклических конструкций
Рассматриваются простые оптимизации циклов, выполняемые в автоматическом режиме компилятором Intel. Распознание и классификация циклов. Вынос инвариантов и условных переходов. Разбиение, объединение, развёртка, расщепление и перестановка циклов. Особенности анализа зависимостей в циклических конструкциях. Нормализация циклов и распознание индукционных переменных.
Оглавление | - |
Тест 427 минут | - | |
Лекция 5 | Векторизация
История возникновения и развития векторного расширения в массовых процессорах Intel. Способы использования векторных инструкций и их набор. Векторизация, осуществляемая явным образом при помощи вызова специфических инструкций и автоматическая векторизация при помощи компилятора Intel.
Оглавление | - |
Тест 518 минут | - | |
Лекция 6 | Автоматическое распараллеливание
История развития многоядерных процессоров Intel и актуальность создания параллельных программ. Различные модели использования памяти в многопроцессорных системах. Плюсы и минусы многопоточных программ. Возможности компилятора Intel по автоматическому распараллеливанию программ.
Оглавление | - |
Тест 633 минуты | - | |
Лекция 7 | Введение в OpenMP
Использование OpenMP для создания параллельных приложений. Достоинства и недостатки модели, используемой в рамках OpenMP. Основные возможности и директивы управления параллельными вычислениями. Синхронизация и накладные расходы.
Оглавление | - |
Тест 718 минут | - | |
Лекция 8 | Межпроцедурные оптимизации
Хороший стиль программирования и актуальность различных типов межпроцедурных оптимизаций. Анализ совмещений и распространение информации между процедурами. Управление процессом подстановки при помощи директив и опций командной строки. Частичная подстановка и клонирование процедур. Специфические оптимизации объектно-ориентированных языков программирования.
Оглавление | - |
Тест 839 минут | - | |
Лекция 9 | Статическое и динамическое профилирование
Компиляция приложения, снабженного механизмом сбора информации для динамического профилирования. Плюсы и минусы использования динамической памяти. Способы улучшения работы с динамической памятью. Кодогенератор, задачи и особенности, возникающие в процессе генерации кода. Планирование инструкций.
Оглавление | - |
Тест 924 минуты | - | |
Дополнительный материал 124 минуты | - | |
Дополнительный материал 230 минут | - | |
Дополнительный материал 323 минуты | - | |
Дополнительный материал 417 минут | - | |
Дополнительный материал 530 минут | Intel-VTune-Amplifier-XE-2013-PB-RussianОглавление | - |
Дополнительный материал 627 минут | Intel-Cluster-Studio-XE-2013SP1-PB-RU-082713Оглавление | - |
Дополнительный материал 724 минуты | - | |
Дополнительный материал 823 минуты | - | |
5 часов | - |