Skip to content
SM
Torna a tutti i progetti
2025 – presentAalto University · Programming Parallel Computers

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

Il problema

Single-threaded code wastes modern hardware. HPC engineering means understanding memory hierarchies, vectorization and parallel decomposition well enough to turn hardware into measured speedups.

La soluzione

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.

Architettura

High-Performance Computing — Parallel Programming
measureWorkloadSequential kernelDecompositionSplit · scheduleCore 0Core 1Core NBenchmarkvs baseline
  • 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.

Funzionalità principali

Measured speedups

Optimization claims backed by benchmarks, not vibes.

Systems depth

OS-level understanding: scheduling, memory management, synchronization (built OS simulations in C++).

Stack tecnologico

C++OpenMP conceptsMulti-threadingSIMDLinuxperf/benchmarking

Lezioni apprese

  • The memory hierarchy, not the CPU, is usually the bottleneck.
  • Parallelism without measurement is just multithreaded hope.

Prossimo case study

SmartParkPro — Automated IoT Parking System