High-Performance Computing — Parallel Programming
Making code faster the honest way: measuring, parallelizing and optimizing workloads across cores as part of Aalto's HPC track.
- N-core
- parallel scaling of computational kernels
- C++
- systems-level performance work
Das Problem
Single-threaded code wastes modern hardware. HPC engineering means understanding memory hierarchies, vectorization and parallel decomposition well enough to turn hardware into measured speedups.
Die Lösung
Coursework and labs in Aalto's HPC track: parallelizing computational kernels in C++, reasoning about cache behaviour and memory access patterns, applying multi-threading and SIMD thinking, and benchmarking honestly against sequential baselines. Paired with 'Networking at Scale' — how large distributed systems move data efficiently.
Architektur
- Parallel decomposition of computational problems in C++ (threads, OpenMP-style patterns).
- Cache-aware data layouts and memory-access optimization.
- Benchmark-driven development: every optimization measured against a baseline.
- Distributed computing foundations: consistency, partitioning, communication costs.
Zentrale Funktionen
Measured speedups
Optimization claims backed by benchmarks, not vibes.
Systems depth
OS-level understanding: scheduling, memory management, synchronization (built OS simulations in C++).
Technologie-Stack
Erkenntnisse
- The memory hierarchy, not the CPU, is usually the bottleneck.
- Parallelism without measurement is just multithreaded hope.