Skip to content
SM
Back to all projects
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

The 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.

The Solution

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.

Architecture

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.

Key Features

Measured speedups

Optimization claims backed by benchmarks, not vibes.

Systems depth

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

Technology Stack

C++OpenMP conceptsMulti-threadingSIMDLinuxperf/benchmarking

Lessons Learned

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

Next case study

SmartParkPro — Automated IoT Parking System