English
Summary
Conclusions
Processor clock frequencies stopped increasing because of the “power wall,” so performance now grows through additional cores, graphics accelerators, and clusters, and programs need to be parallelized. Shared-memory systems (SMP, NUMA) let threads exchange data through shared variables; distributed-memory systems communicate only through messages over a network. The memory hierarchy and cache significantly affect parallel program performance. Flynn’s taxonomy divides systems into SISD, SIMD, MISD, and MIMD. The quality of a parallel program is evaluated through speedup, efficiency, and cost. Amdahl’s law limits speedup for a fixed-size problem to Stopwatch, with warmup and the median of several runs. The practical assignments in Module 1 use .NET 10 in JetBrains Rider.
Self-check questions
- What is the “power wall,” and how has it affected processor development?
- How does parallel computing differ from concurrent and distributed computing?
- What are the granularity and overhead of a parallel task?
- How do SMP and NUMA architectures differ?
- What are SMT (Hyper-Threading) and hybrid processors with P-cores and E-cores?
- Why does a processor need cache? What are a cache line, a cache hit, and a cache miss?
- Which systems use distributed memory?
- Name the classes in Flynn’s taxonomy and give examples of systems.
- What do the SPMD and MPMD models mean?
- Which parallelism models do you know?
- How do you calculate the speedup, efficiency, and cost of a parallel program?
- What causes superlinear speedup?
- State Amdahl’s law. What is the speedup limit at
? - How does the Gustafson–Barsis law differ from Amdahl’s law? What are strong and weak scaling?
- What does the Karp–Flatt metric show?
- Which rules should you follow when measuring a program’s execution time?
- How do the .NET SDK and runtime differ? How can you view the installed versions?
Useful links
- Download .NET 10: https://dotnet.microsoft.com/download/dotnet/10.0
- Install .NET on Ubuntu: https://learn.microsoft.com/dotnet/core/install/linux-ubuntu
- Install WSL: https://learn.microsoft.com/windows/wsl/install
- The
Stopwatchclass: https://learn.microsoft.com/dotnet/api/system.diagnostics.stopwatch - BenchmarkDotNet: https://benchmarkdotnet.org/
- JetBrains Rider documentation: https://www.jetbrains.com/help/rider/
- TOP500 ranking: https://top500.org/