Архитектурно-ориентированная оптимизация кода
Курс повышения квалификации по заказу предприятия (~ 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]
Курс может быть адаптирован под интересы целевого предприятия/компании