Привет, Хабр!
Как указано в названии этого топика, я активно тружусь над созданием учебного видео курса о параллельном программировании и оптимизации кода для высоко-производительных систем на базе Intel'овских архитектур. Ниже представлена дополнительная информация об этом курсе, список покрываемых тем и лабораторных работ, а так же пилотных эпизод, который даст представление о содержании и формате этого курса.
В текущем модуле на примере построения гистограммы будут показаны две оптимизационные техники для улучшения автоматической векторизации кода компилятором и приведены результаты производительности для Intel Xeon CPU и Intel Xeon Phi копроцессора.
Этот курс снимается для компании Intel на английском языке, и будет использован там, где я или мои коллеги из компании не могут присутствовать лично. Список тем, включённый в этот видео курс основан на нашем однодневном трейнинге. Слайды этого курса можно посмотреть по следующей ссылке: http://research.colfaxinternational.com/post/2014/10/13/CDT-Slides.aspx. При скачивании файла со слайдами email и имя запрашиваются для внутренней статистики и в рассылки писем без согласия клиента не включаются.
Так же планируется включить лабораторные работы, в которых шаг за шагом показываются этапы оптимизации кода на конкретных примерах. Список названий этих практических упражнений представлен ниже.
Работа над записью и монтажом только началась. Поэтому очень хотелось бы узнать мнение Хабра по вопросам, представленным ниже. Для меня русский перевод одной только звуковой дорожки 10 минутного эпизода, а их будет 50-60 — это несколько часов работы. Так что хотелось бы знать заранее имеет ли моя затея ценность для посетителей Хабра. Так что любая конструктивная критика по содержанию/представлению или просто комментарий только приветствуется.
Как указано в названии этого топика, я активно тружусь над созданием учебного видео курса о параллельном программировании и оптимизации кода для высоко-производительных систем на базе Intel'овских архитектур. Ниже представлена дополнительная информация об этом курсе, список покрываемых тем и лабораторных работ, а так же пилотных эпизод, который даст представление о содержании и формате этого курса.
В текущем модуле на примере построения гистограммы будут показаны две оптимизационные техники для улучшения автоматической векторизации кода компилятором и приведены результаты производительности для Intel Xeon CPU и Intel Xeon Phi копроцессора.
Этот курс снимается для компании Intel на английском языке, и будет использован там, где я или мои коллеги из компании не могут присутствовать лично. Список тем, включённый в этот видео курс основан на нашем однодневном трейнинге. Слайды этого курса можно посмотреть по следующей ссылке: http://research.colfaxinternational.com/post/2014/10/13/CDT-Slides.aspx. При скачивании файла со слайдами email и имя запрашиваются для внутренней статистики и в рассылки писем без согласия клиента не включаются.
Список тем трейнинга (на английском)
- 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
- About This Document
- 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
- Native Coprocessor Applications
- 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
- SIMD Parallelism and Automatic Vectorization
- 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
- Optimization Roadmap
- 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''
- Compiler-friendly Practices
- Optimization of Thread Parallelism
- Reduction instead of Synchronization
- Elimination of False Sharing
- Expanding Iteration Space
- Controlling Thread Affinity
- Reduction instead of Synchronization
- Optimization of Data Traffic
- Memory Access and Cache Utilization
- PCIe Traffic Optimization in Offload Applications
- MPI Traffic Optimization: Fabric Selection
- Memory Access and Cache Utilization
- Optimization of MPI Applications
- Load Balancing in Heterogeneous Applications
- Inter-Operation with OpenMP
- Additional Resources
- Load Balancing in Heterogeneous Applications
- Course Recap
- Knights Landing, the Next Manycore Architecture
- Where to Get More Information
- How to Obtain an Intel Xeon Phi Coprocessor
- Knights Landing, the Next Manycore Architecture
Так же планируется включить лабораторные работы, в которых шаг за шагом показываются этапы оптимизации кода на конкретных примерах. Список названий этих практических упражнений представлен ниже.
Названия лабораторных (на английском)
- 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 — это несколько часов работы. Так что хотелось бы знать заранее имеет ли моя затея ценность для посетителей Хабра. Так что любая конструктивная критика по содержанию/представлению или просто комментарий только приветствуется.
Only registered users can participate in poll. Log in, please.
Интересна ли эта тема сообществу?
76.09% Да, очень интересно!70
21.74% Посмотрел бы некоторые темы.20
2.17% Совсем не интересно.2
92 users voted. 16 users abstained.
Only registered users can participate in poll. Log in, please.
С какими из следующих утверждений вы согласны?
74.07% Видео курс о параллельном программировании и оптимизации поможет мне в моей работе.40
20.37% Для меня проще смотреть видео, чем читать текст.11
72.22% Примеры изменения реального кода в видео лекции — ценное дополнение к учебному материалу.39
38.89% Тема пилотного эпизода была проста для понимания.21
31.48% Представленная информация достаточно детальна для понимания.17
29.63% Я вижу необходимость субтитров для этого и последующих видео классов.16
54 users voted. 17 users abstained.
Only registered users can participate in poll. Log in, please.
Какие темы в видео курсе о параллельном программировании и оптимизации для 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 users voted. 16 users abstained.