geektimes

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

  • четверг, 18 декабря 2014 г. в 02:11:33
http://habrahabr.ru/post/246055/

Привет, Хабр!

Как указано в названии этого топика, я активно тружусь над созданием учебного видео курса о параллельном программировании и оптимизации кода для высоко-производительных систем на базе 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 — это несколько часов работы. Так что хотелось бы знать заранее имеет ли моя затея ценность для посетителей Хабра. Так что любая конструктивная критика по содержанию/представлению или просто комментарий только приветствуется.
Интересна ли эта тема сообществу?

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Проголосовало 48 человек. Воздержалось 9 человек.

С какими из следующих утверждений вы согласны?

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Проголосовало 28 человек. Воздержалось 9 человек.

Какие темы в видео курсе о параллельном программировании и оптимизации для Intel Xeon Phi копроцессоров будут для вас наиболее интересны?

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Проголосовал 21 человек. Воздержалось 8 человек.