diff --git a/_quarto.yml b/_quarto.yml index f861f100c788abeb4ff15de6d2d76eae08732b58..dd0f9f57d281ede6b55cc660c51255816b6ce695 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -57,7 +57,7 @@ website: - "exercises/parallelism/parallelism.qmd" - "exercises/hardware/hardware.qmd" - "exercises/file-and-data-systems.qmd" - # - "exercises/memory_hierarchies.qmd" + - "exercises/memory-hierarchies.qmd" # - "exercises/student_talks.qmd" format: diff --git a/exercises/memory-hierarchies.qmd b/exercises/memory-hierarchies.qmd new file mode 100644 index 0000000000000000000000000000000000000000..d31771fc73f1a60485417080c93453e350a75956 --- /dev/null +++ b/exercises/memory-hierarchies.qmd @@ -0,0 +1,11 @@ +--- +title: "Memory Hierarchies" +--- + +Review the memory mountain hands-on and look into the source code: +In `main()` the function `run()` is called for each combination of `size` and `stride` +which in turn calls `fcyc2()` and `fcyc2_full()`. + +What happens there to ensure that only the desired cache effects for the test function `f` are measured? +Describe the mechanism and why it is necessary for accurate measurements in a short paragraph. +Refer to the code and what you learned in the lecture about it.