Как стать автором
Обновить

Пилотный выпуск видео курса «Параллельное Программирование и Оптимизация для Intel Xeon Phi копроцессоров»

Время на прочтение3 мин
Количество просмотров6K
Привет, Хабр!

Как указано в названии этого топика, я активно тружусь над созданием учебного видео курса о параллельном программировании и оптимизации кода для высоко-производительных систем на базе Intel'овских архитектур. Ниже представлена дополнительная информация об этом курсе, список покрываемых тем и лабораторных работ, а так же пилотных эпизод, который даст представление о содержании и формате этого курса.

В текущем модуле на примере построения гистограммы будут показаны две оптимизационные техники для улучшения автоматической векторизации кода компилятором и приведены результаты производительности для Intel Xeon CPU и Intel Xeon Phi копроцессора.




Этот курс снимается для компании Intel на английском языке, и будет использован там, где я или мои коллеги из компании не могут присутствовать лично. Список тем, включённый в этот видео курс основан на нашем однодневном трейнинге. Слайды этого курса можно посмотреть по следующей ссылке: http://research.colfaxinternational.com/post/2014/10/13/CDT-Slides.aspx. При скачивании файла со слайдами email и имя запрашиваются для внутренней статистики и в рассылки писем без согласия клиента не включаются.
Список тем трейнинга (на английском)
  1. Welcome
    • About This Document
    • Disclaimer
    • Introduction to the Intel Many Integrated Core (MIC) Architecture
    • Purpose of the Intel MIC Architecture
    • Details of the MIC Architecture
    • Software Tools for Intel Xeon Phi Coprocessors
    • Will My Application Benefit from the MIC architecture?
    • Models for Intel Xeon Phi Coprocessor Programming
  2. Overview of Programming Options
    • Native Coprocessor Applications
    • Explicit Offload
    • Data and Memory Buffer Retention
    • Virtual-Shared Memory Offload Model
    • Handling Multiple Coprocessors
    • Heterogeneous Programming with Coprocessors using MPI
    • File I/O in MPI Applications on Coprocessors
  3. Expressing Parallelism on Intel Architectures
    • SIMD Parallelism and Automatic Vectorization
    • Thread Parallelism and OpenMP
    • Thread Synchronization in OpenMP
    • Reduction Across Threads: Avoiding Synchronization
    • Distributed Memory Parallelism and MPI
    • Summary and Additional Resources
  4. Optimization Using Intel Software Development Tools
    • Optimization Roadmap
    • Library Solution: Intel Math Kernel Library (MKL)
    • Node-Level Tuning with Intel VTune Amplifier XE
    • Cluster-Level Tuning with Intel Trace Analyzer and collector
  5. Optimization of Scalar Arithmetics
    • Compiler-friendly Practices
    • Accuracy Control
    • Optimization of Vectorization
    • Diagnostics and Facilitation of Automatic Vectorization
    • Vector-friendly Data Structures
    • Data Alignment for Vectorization
    • Strip-Mining for Vectorization
    • Additional Vectorization ``Tuning Knobs''
  6. Optimization of Thread Parallelism
    • Reduction instead of Synchronization
    • Elimination of False Sharing
    • Expanding Iteration Space
    • Controlling Thread Affinity
  7. Optimization of Data Traffic
    • Memory Access and Cache Utilization
    • PCIe Traffic Optimization in Offload Applications
    • MPI Traffic Optimization: Fabric Selection
  8. Optimization of MPI Applications
    • Load Balancing in Heterogeneous Applications
    • Inter-Operation with OpenMP
    • Additional Resources
  9. Course Recap
    • Knights Landing, the Next Manycore Architecture
    • Where to Get More Information
    • How to Obtain an Intel Xeon Phi Coprocessor


Так же планируется включить лабораторные работы, в которых шаг за шагом показываются этапы оптимизации кода на конкретных примерах. Список названий этих практических упражнений представлен ниже.
Названия лабораторных (на английском)
  • 2.1-native
  • 2.2-explicit-offload
  • 2.3-explicit-offload-persistence
  • 2.4-explicit-offload-matrix
  • 2.5-sharing-complex-objects
  • 2.6-multiple-coprocessors
  • 2.7-asynchronous-offload
  • 2.8-MPI
  • 2.9-openmp4.0
  • 3.1-vectorization
  • 3.2-OpenMP
  • 3.3-Cilk-Plus
  • 3.4-MPI
  • 4.1-vtune
  • 4.2-itac
  • 4.3-serial-optimization
  • 4.4-vectorization-data-structure
  • 4.5-vectorization-compiler-hints
  • 4.6-optimize-shared-mutexes
  • 4.7-optimize-scheduling
  • 4.8-insufficient-parallelism
  • 4.9-affinity
  • 4.a-tiling
  • 4.b-Nbody
  • 4.c-cache-oblivious-recursion
  • 4.d-cache-loop-fusion
  • 4.e-offload
  • 4.f-MPI-load-balance
  • 4.g-hybrid
  • 4.h-MKL


Работа над записью и монтажом только началась. Поэтому очень хотелось бы узнать мнение Хабра по вопросам, представленным ниже. Для меня русский перевод одной только звуковой дорожки 10 минутного эпизода, а их будет 50-60 — это несколько часов работы. Так что хотелось бы знать заранее имеет ли моя затея ценность для посетителей Хабра. Так что любая конструктивная критика по содержанию/представлению или просто комментарий только приветствуется.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Интересна ли эта тема сообществу?
76.09% Да, очень интересно!70
21.74% Посмотрел бы некоторые темы.20
2.17% Совсем не интересно.2
Проголосовали 92 пользователя. Воздержались 16 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
С какими из следующих утверждений вы согласны?
74.07% Видео курс о параллельном программировании и оптимизации поможет мне в моей работе.40
20.37% Для меня проще смотреть видео, чем читать текст.11
72.22% Примеры изменения реального кода в видео лекции — ценное дополнение к учебному материалу.39
38.89% Тема пилотного эпизода была проста для понимания.21
31.48% Представленная информация достаточно детальна для понимания.17
29.63% Я вижу необходимость субтитров для этого и последующих видео классов.16
Проголосовали 54 пользователя. Воздержались 17 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какие темы в видео курсе о параллельном программировании и оптимизации для Intel Xeon Phi копроцессоров будут для вас наиболее интересны?
62.79% Обзор Intel Many Integrated Core (MIC) архитектуры.27
65.12% Анализ разницы между multi- и many-core архитектурами.28
62.79% Модели программирования для копроцессоров.27
60.47% Использование векторизации в коде.26
67.44% Использование многопоточности с помощью библиотеки OpenMP.29
30.23% Использование многопоточности с помощью расширения языка Cilk Plus.13
62.79% Использование распределённого параллелизма на основе MPI API.27
58.14% Скалярная оптимизация вычислений.25
60.47% Оптимизация векторизации и параллелизм данных.26
67.44% Оптимизация многопоточности.29
60.47% Оптимизация использования памяти и иерархии cache'а.26
53.49% Оптимизация передачи данных.23
51.16% Оптимизация MPI приложений для гетерогенных (CPU+coprocessors) кластеров.22
37.21% Использование Intel компиляторов.16
39.53% Профайлинг в Intel VTune Amplifier17
23.26% Сбор и визуализация MPI траффика в Intel Trace Analyzer and Collector (ITAC).10
51.16% Использование математической библиотеки Intel Math Kernel Library (MKL).22
58.14% Портирование приложений на копроцессор.25
2.33% Другая тема (укажите в комментариях).1
Проголосовали 43 пользователя. Воздержались 16 пользователей.
Теги:
Хабы:
+12
Комментарии20

Публикации

Изменить настройки темы

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн