Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Архитектурно-ориентированная оптимизация кода

Курс повышения квалификации по заказу предприятия (~ 5 дней).

Keywords

Intel64, ILP/TLP, DRAM/SRAM,
k-way set-associative cache, cache line, cache hit,
cache misprediction, false sharing, struct splitting,
AoS-SoA, MESIF,
branch prediction, branchless code, data hazard, loop unrolling,
out-of-order execution, code vectorization (avx2, avx-512),
TLB, huge pages, THP, NUMA, Linux memory affinity,
first touch policy, NUMA balancing, NUMAStat, Intel TMAM, perf, toplev,
MPI, MPI RMA, MPI Hybrid MPI + OpenMP, MPI collective operations.

Материалы лекций и практик

  • Структурная организация процессоров с архитектурой Intel 64. Понятие архитектуры и микроархитектуры процессора. Уровни параллелизма ILP/TLP [Download]
  • Организация оперативной памяти (DRAM/SRAM, многоканальность). Cбор информации о конфигурации целевой системы GNU/Linux [Download]
  • Кеш память процессора. Методы отображения адресов. Множественноассоциативное отображение. Протоколы поддержания согласованности кеш-памяти (Intel 64). Атомарные операции x86-64. Оптимизация локальности обращения к памяти. Оптимизация кеширования структур данных. Анализ эффективности использования кешпамяти с помощью perf [Download]
  • Оптимизация кода для суперскалярного ядра Intel 64. Оптимизация предсказания ветвлений (branch prediction). Устранение ветвлений (branchless code). Оптимизация загрузки суперскалярного ядра: конфликты данных (data hazards), loop unrolling, внеочередное выполнение инструкций. Векторизация кода (AVX2/AVX512) [Download]
  • Оптимизация трансляции адресов (TLB). Большие страницы памяти (huge pages, transparent huge pages). Выделение больших страниц памяти и использование в программах [Download]
  • Архитектура NUMA-систем. Адресное пространство процесса и политики выделения памяти GNU/Linux (memory affinity). Политики выделения физических страниц памяти с NUMA-узлов (first touch policy). Мониторинг загрузки и автоматическая балансировка NUMAузлов (NUMATop, vmstat) [Download]
  • Методика анализа производительности Intel Top-Down Microarchitecture Analysis Method [Download]
  • Масштабируемость интерфейса MPI и его реализаций [Download]
  • Гибридные параллельные программы MPI+OpenMP. Оптимизация обменов с использованием разделяемой памяти вычислительных узлов (MPI + MPI 3.0 RMA Shared Memory) [Download]
  • Коллективные операции MPI (подходы к оптимизации) [Download]

Курс может быть адаптирован под интересы целевого предприятия/компании