courses:high_performance_computing:lectures
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| courses:high_performance_computing:lectures [2024/09/15 19:23] – kel | courses:high_performance_computing:lectures [2026/01/22 00:12] (current) – kel | ||
|---|---|---|---|
| Line 79: | Line 79: | ||
| - Средства анализа производительности | - Средства анализа производительности | ||
| * Утилита time | * Утилита time | ||
| - | * Intel Parallel Studio | + | * Intel VTune |
| - | * Valgrind (модули callgrind, cachegrind) | + | * Valgrind (модули callgrind) |
| - Пример поиска узких мест | - Пример поиска узких мест | ||
| - Профилирование промашек по кэшу и метрика CPI | - Профилирование промашек по кэшу и метрика CPI | ||
| Line 115: | Line 115: | ||
| - Блокирующий/ | - Блокирующий/ | ||
| - Синхронный (реактор)/ | - Синхронный (реактор)/ | ||
| + | - Архитектура framework на примере boost::asio | ||
| + | - Особенности реализации callback | ||
| + | - Причины разницы производительности асинхронного i/o на примере простого сервера в классическом и coroutines-режиме | ||
| - Преимущества асинхронной работы и реализация со стороны операционной системы | - Преимущества асинхронной работы и реализация со стороны операционной системы | ||
| - | - Библиотеки асинхронного ввода/вывода | + | - Мотивация к переходу на coroutines |
| + | - Преимущества по отношению к callback-программированию | ||
| + | - Примеры co_await и сравнение с синхронным кодом | ||
| ===== 15. Линеаризуемость ===== | ===== 15. Линеаризуемость ===== | ||
| Line 139: | Line 144: | ||
| ===== 17. Шаблоны || программирования ===== | ===== 17. Шаблоны || программирования ===== | ||
| + | - Общий взгляд на виды организации вычислений | ||
| - Структурные шаблоны: | - Структурные шаблоны: | ||
| * Декомпозиция по задачам | * Декомпозиция по задачам | ||
| Line 144: | Line 150: | ||
| * Recursive Data | * Recursive Data | ||
| * Pipeline | * Pipeline | ||
| - | - Некоторые программные структуры: | ||
| - | * Parallel loops | ||
| - | * Boss/Worker | ||
| - Разное: | - Разное: | ||
| * Double check | * Double check | ||
| Line 160: | Line 163: | ||
| ===== 19. Intel TBB ===== | ===== 19. Intel TBB ===== | ||
| - Алгоритмы | - Алгоритмы | ||
| - | - Аллокаторы | + | - Аллокаторы: |
| + | * scalable | ||
| + | * cache_aligned (false sharing) | ||
| - Деревья задач | - Деревья задач | ||
| - Особенности планирования (work stealing...) | - Особенности планирования (work stealing...) | ||
| Line 185: | Line 190: | ||
| ===== 21. Сопрограммы / Coroutines ===== | ===== 21. Сопрограммы / Coroutines ===== | ||
| - | - Преимущества по отношению к callback-программированию | + | - Архитектурные особенности: |
| - | - Примеры co_await и сравнение с синхронным кодом | + | - stackless |
| + | - stackfull | ||
| + | - fibers | ||
| + | | ||
| + | - Способы | ||
| + | - C++ | ||
| + | - Go | ||
| + | - Kotlin | ||
| + | - ... | ||
| - Проблемы реализации примитивов и TLS | - Проблемы реализации примитивов и TLS | ||
| - Архитектурная аналогия с асинхронными framework | - Архитектурная аналогия с асинхронными framework | ||
courses/high_performance_computing/lectures.1726417401.txt.gz · Last modified: 2024/09/15 19:23 by kel