Українська
Підсумки
Висновки
Зростання тактової частоти процесорів зупинилося через «стіну потужності», тому продуктивність сьогодні зростає за рахунок кількості ядер, графічних прискорювачів і кластерів, а програми необхідно розпаралелювати. Системи зі спільною пам’яттю (SMP, NUMA) дозволяють потокам обмінюватися даними через спільні змінні, системи з розподіленою пам’яттю – лише повідомленнями через мережу. Ієрархія пам’яті та кеш суттєво впливають на швидкість паралельних програм. Класифікація Флінна поділяє системи на SISD, SIMD, MISD і MIMD. Якість паралельної програми оцінюють прискоренням, ефективністю та вартістю. Закон Амдала обмежує прискорення задачі фіксованого розміру величиною Stopwatch, з прогріванням і медіаною кількох запусків. Практичні роботи модуля 1 виконуються на платформі .NET 10 у середовищі JetBrains Rider.
Питання для самоперевірки
- Що таке «стіна потужності» і як вона вплинула на розвиток процесорів?
- Чим паралельні обчислення відрізняються від конкурентних і розподілених?
- Що таке зернистість паралельної задачі та накладні витрати?
- Чим відрізняються архітектури SMP і NUMA?
- Що таке SMT (Hyper-Threading) і гібридні процесори з P- та E-ядрами?
- Навіщо процесору кеш? Що таке кеш-лінія, влучання та промах кешу?
- Які системи належать до систем із розподіленою пам’яттю?
- Назвіть класи класифікації Флінна та наведіть приклади систем.
- Що означають моделі SPMD і MPMD?
- Які моделі паралелізму ви знаєте?
- Як обчислюються прискорення, ефективність і вартість паралельної програми?
- Які причини надлінійного прискорення?
- Сформулюйте закон Амдала. Яка межа прискорення при
? - Чим закон Густафсона–Барсіса відрізняється від закону Амдала? Що таке сильна та слабка масштабованість?
- Що показує метрика Карпа–Флатта?
- Які правила слід виконувати під час вимірювання часу виконання програми?
- Чим відрізняються .NET SDK і середовище виконання? Як переглянути встановлені версії?
Корисні посилання
- Завантаження .NET 10: https://dotnet.microsoft.com/download/dotnet/10.0
- Встановлення .NET в Ubuntu: https://learn.microsoft.com/dotnet/core/install/linux-ubuntu
- Встановлення WSL: https://learn.microsoft.com/windows/wsl/install
- Клас
Stopwatch: https://learn.microsoft.com/dotnet/api/system.diagnostics.stopwatch - BenchmarkDotNet: https://benchmarkdotnet.org/
- Документація JetBrains Rider: https://www.jetbrains.com/help/rider/
- Рейтинг TOP500: https://top500.org/