Skip to content
Snippets Groups Projects
Commit d1b74a97 authored by Dominik Zobel's avatar Dominik Zobel
Browse files

Update memory mountain slides and exercise

parent d1d25c70
No related branches found
No related tags found
1 merge request!74Memory hierarchies lecture
Pipeline #71692 passed
......@@ -446,11 +446,18 @@ Based on a typical Levante node (AMD EPYC 7763)
## Memory Mountain (1/2)
Describe what is done
:::{.smaller}
Code for program contained in "Computer Systems":
<https://csapp.cs.cmu.edu/3e/mountain.tar>
:::
- Influence of block size
- Influence of stride
- Measurements done on Levante compute node
- Process a representative amount of data
- Use `stride` between array elements to control spatial locality
- Use `size` of array to control temporal locality
- Also warm up the cache before the actual measurements
......@@ -469,8 +476,10 @@ $\approx$ Factor 20 between best and worst access
## Hands-On {.handson}
- Either example with optimal and sub-optimal memory access, i.e. cache blocking (see `nproma`)
- Or OpenMP reduction (hand implementation), reference/continuation from parallelism lecture?!
1. Download and extract the C source code of the memory mountain program linked in the from previous slides
2. Compile the program and run it on your PC or a Levante compute node
3. Which factor do you get between best and worst performance?
4. (optional) Visualize your results
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment