Skip to content

Module Atlas

This atlas connects the documentation narrative to the code that actually carries the argument. Each row names a teaching module, the files that embody it, the validation surfaces that keep it honest, and the best entry page for deeper study.

Teaching modules

ModulePrimary code surfacesReusable or supporting surfacesValidation surfacesRecommended docs route
01. Modern CMakeexamples/01-cmake-modern/, root CMakeLists.txt, cmake/CMakePresets.jsonpreset configure and target buildsQuick Start
02. Memory & cacheexamples/02-memory-cache/, examples/02-memory-cache/include/memory_utils.hpp, examples/02-memory-cache/include/particle_types.hppbenchmarks/common/benchmark_utils.hpptests/unit/memory/, tests/property/memory_properties.cpp, release benchmarksLearning Path
03. Modern C++examples/03-modern-cpp/, examples/03-modern-cpp/include/buffer.hpp, examples/03-modern-cpp/include/compile_time.hpp, examples/03-modern-cpp/include/ranges_utils.hpp, examples/03-modern-cpp/include/vector_reserve.hppinclude/hpc/core.hpptests/unit/modern_cpp/, targeted benchmarksBest Practices
04. SIMD vectorizationexamples/04-simd-vectorization/, examples/04-simd-vectorization/include/simd_utils.hpp, examples/04-simd-vectorization/include/simd_wrapper.hppexamples/04-simd-vectorization/src/dispatch_example_main.cpptests/unit/simd/, tests/property/simd_properties.cpp, build/release/examples/04-simd-vectorization/simd_benchOptimization Decision Tree
05. Concurrencyexamples/05-concurrency/, examples/05-concurrency/include/concurrency_utils.hpp, examples/05-concurrency/include/lock_free_queue.hppOpenMP-enabled examples under examples/05-concurrency/src/tests/unit/concurrency/, tests/property/concurrency_properties.cpp, tsanValidation Doctrine

Cross-cutting repository surfaces

SurfaceWhy it mattersTypical question it answers
include/hpc/core.hppShared low-level helpers and repository-wide utility surfaceWhat is reusable outside a single teaching module?
benchmarks/common/benchmark_utils.hppCommon benchmark harness helpersHow are measurements normalized and exported?
tests/unit/Fine-grained correctness checksWhich behavior is considered contract-level?
tests/property/Invariant-oriented validation using RapidCheckWhich assumptions are stressed across many inputs?
tools/performance/FlameGraph and benchmark-comparison utilitiesHow do I move from raw numbers to diagnosis?
docs/Whitepaper, guides, and reference routesWhere is the explanation that accompanies the executable surface?

How to use this atlas

  1. Choose the performance question first. If the question is about cache locality, start from the memory row, not from a generic reference page.
  2. Inspect the closest executable surface. Example modules carry the primary teaching argument.
  3. Find the matching evidence surface. Unit tests, property tests, sanitizer presets, and benchmarks each answer different kinds of questions.
  4. Only then generalize. The whitepaper aims to keep broad advice tied to a local, inspectable workload.

Common traversal patterns

If you are asking...Start withThen inspect
Why does data layout matter here?examples/02-memory-cache/Profiling Guide and release benchmarks
How portable is the SIMD story?examples/04-simd-vectorization/runtime dispatch example, SIMD tests, and Research References
What memory-ordering discipline is being taught?examples/05-concurrency/queue tests, tsan, and Performance Methodology
How does the build stay reproducible?CMakePresets.json and cmake/Repository Topology

The atlas is intentionally concrete. It exists so that expert readers can move from prose to files without losing the argument.

Released under the MIT License.