### TO WRITE
- [x] ReCALL [M]
- [x] Comparison of graph reordering techniques [M]
- [x] Graph partitioning [W]
- Related Work
- [x] PIM
- [x] GPU, FPGA, etc.
- Eigenlijk belachelijk kort
- [x] Conclusion [M]
- [x] Acknowledgments [R]
- [x] Add part about scatter gather in background [W]
### TO REVIEW
- [ ] Partitioning [I]
- [x] Hardware + hybrid prefetchers [I]
- [x] Software prefetchers [R]
- [x] Compiler Optimizations [R]
- [ ] PIM
- [ ] FPGA/GPU
- [ ] Conclusion
### TO FIX
- [ ] British spelling vs American spelling
- [ ] Oxford commas
### Conclusion outline
- In this work, ...
- We discussed graph reordering
- heavy vs light
- When to use which
- state of the art in each
- We discussed partitioning
- Tries to induce more possible parallelism for graph applications
- Partitioning tries to make accesses to DRAM sequential to make use of not only all the available memory bandwidth, but also the existing hardware prefetchers
- Make graph processing scalable for workloads that do not fit in memory (out-of-core)
- Partitioning implies dividing the source and/or destination vertices into partitions, such that read and/or writes will be hits in the cache.
- We discussed prefetching
- HW prefetchers: fast but simple or expensive
- Hybrid prefetchers: tries to combine the best of HW/SW. Many different techniques.