Українська
Тема 10. Технологія OpenMP: паралельні області та цикли, редукції, задачі; прив’язка потоків і NUMA
Мета: ознайомитися з моделлю fork–join і директивами OpenMP; навчитися розпаралелювати цикли з різними видами розподілу ітерацій, використовувати редукції (зокрема власні), синхронізацію та задачі для рекурсивних алгоритмів, векторизувати цикли директивою simd; опанувати ініціалізацію даних за політикою першого дотику, прив’язку потоків змінними OMP_PLACES і OMP_PROC_BIND та вимірювання прискорення програм мовою C++.
Зміст лекції
- Модель fork–join і паралельна область — Модель fork–join і збирання програм OpenMP · Паралельна область
- Змінні, цикли та редукції — Області видимості змінних · Паралельні цикли · Редукції
- Синхронізація, задачі та simd — Синхронізація · Секції та задачі · Векторизація simd
- Продуктивність, NUMA і прив’язка потоків — Продуктивність і масштабованість · Архітектура NUMA · Прив’язка потоків
- Приклади та типові помилки — Приклади програм · Типові помилки