Введение в принципы функционирования и применения современных мультиядерных архитектур (на примере Intel Xeon Phi)
В курсе изучаются вопросы разработки и оптимизации программного обеспечения, ориентированного на эффективное использование мультиядерных архитектур на примере сопроцессора Intel Xeon Phi.
Основная цель курса – изучить базовые принципы и сформировать навыки разработки программ, ориентированных на эффективное использование Intel Xeon Phi.
При этом решаются следующие задачи:
- Изучение современного состояния дел в области многоядерных и мультиядерных систем.
- Изучение особенностей архитектуры Intel Xeon Phi, а также основных механизмов, влияющих на производительность программ.
- Изучение моделей использования Intel Xeon Phi, а также соответствующего системного программного обеспечения. Освоение способов разработки, сборки и запуска приложений на Intel Xeon Phi.
- Изучение принципов и особенностей применения технологий параллельного программирования для разработки и оптимизации расчетных программ, ориентированных на Intel Xeon Phi, включая вопросы использования инструкций SIMD, технологий OpenMP и Cilk Plus.
- Формирование навыков оптимизации и векторизации расчетных циклов, оптимизации работы с памятью, балансировки нагрузки при распараллеливании.
- Ознакомление с достаточно успешными примерами оптимизации программ, изначально не совсем подходящих для эффективного использования возможностей Intel Xeon Phi.
- Изучение вопросов портирования достаточно сложных прикладных пакетов на Intel Xeon Phi.
Курс ориентирован на инженеров, преподавателей и научных сотрудников, а также аспирантов и студентов высших учебных заведений. Авторы курса предполагают наличие у слушателей базовых навыков разработки программ на C/C++, а также владение параллельным программированием на OpenMP и MPI. Навыки работы с TBB и MKL, а также с другими компонентами пакета Intel Parallel Studio XE будут полезны при изучении курса, но не являются обязательным условием. Вся необходимая информация об использовании Intel Parallel Studio XE будет включена в материалы курса. Авторы курса предполагают наличие у слушателей базовых знаний математики в объеме первых 2-3 курсов (в зависимости от профиля) факультетов естественнонаучного профиля. Материалы повышенной сложности ориентированы на магистрантов, аспирантов, инженеров компаний.
Авторы курса
Дополнительная информация об авторах и структуре курса (pdf)
Содержание курса
Раздел 1. Введение в принципы функционирования и применения современных мультиядерных архитектур (на примере Intel Xeon Phi)
Лекционные материалы
- Обзор архитектуры современных многоядерных процессоров (конспект, презентация)
- Архитектура Intel Xeon Phi (конспект, презентация)
- Выполнение программ на Intel Xeon Phi. Модели организации вычислений с использованием Intel Xeon Phi (конспект, презентация)
- Векторные расширения Intel Xeon Phi (конспект, презентация)
- Элементы оптимизации прикладных программ для Intel Xeon Phi. Intel C/C++ Compiler (конспект, презентация)
Практикум
- Компиляция и запуск приложений на Intel Xeon Phi (описание, презентация)
- Оптимизация прикладных программ для Intel Xeon Phi с использованием Intel C/C++ Compiler. Векторизация (описание, презентация)
- Оптимизация вычислений в задаче о разложении чисел на простые сомножители. Векторизация и балансировка нагрузки (описание, презентация)
- Оптимизация вычислений в задаче о вычислении справедливой цены опциона Европейского типа. Оптимизация: шаг за шагом (описание, презентация)
- Оптимизация вычислений в задаче матричного умножения. Оптимизация работы с памятью (описание, презентация)
Раздел 2. Программирование на современных мультиядерных архитектурах (на примере Intel Xeon Phi)
Лекционные материалы
- Элементы оптимизации прикладных программ для Intel Xeon Phi: Intel MKL, Intel VTune Amplifier XE (конспект, презентация)
- Принципы переноса прикладных программных пакетов на Intel Xeon Phi (конспект, презентация)
Практикум
- Оптимизация вычислительно трудоемкого программного модуля для архитектуры Intel Xeon Phi. Метод Монте-Карло (описание, презентация)
- Оптимизация вычислительно трудоемкого программного модуля для архитектуры Intel Xeon Phi. Линейные сортировки (описание, презентация)