# Performance Analysis and Modelling

* [Courses](#courses)
* [Books/Resources](#booksresources)
* [Articles](#articles)

## Courses

* [MIT 6.172 Performance Engineering of Software Systems](https://www.youtube.com/playlist?list=PLUl4u3cNGP63VIBQVWguXxZZi0566y7Wf)

## Books/Resources

* [Algorithms for Modern Hardware](https://en.algorithmica.org/hpc/)
* [Performance explained easy blog](https://easyperf.net/)

## Articles

* [SIMD Parallelism](https://cvw.cac.cornell.edu/vector/overview_simd)
* [Towards Fearless SIMD](https://raphlinus.github.io/rust/simd/2018/10/19/fearless-simd.html)
* [Myths CPU programmers believe about caches](https://software.rajivprab.com/2018/04/29/myths-programmers-believe-about-cpu-caches/)
* [Prof. Mark Hill note argues for more use of simple models beyond Amdahl's Law: Bottleneck Analysis, Little's Law, and a M/M/1 Queue.](https://arxiv.org/abs/1901.02926)
* [How much bandwidth does the L2 have to give, anyway?](https://github.com/travisdowns/uarch-bench/wiki/How-much-bandwidth-does-the-L2-have-to-give,-anyway%3F)
* [Every 7.8μs your computer’s memory has a hiccup](https://blog.cloudflare.com/every-7-8us-your-computers-memory-has-a-hiccup/)
* [Computer Latency at a Human Scale](https://www.prowesscorp.com/computer-latency-at-a-human-scale/)
* [Latency numbers every programmer should know](https://people.eecs.berkeley.edu/~rcs/research/interactive_latency.html)
* [Performance variations in 2386 identical processors](http://shape-of-code.coding-guidelines.com/2020/01/05/performance-variation-in-2386-identical-processors/)
* [Memory Bandwidth: Napkin math](https://www.forrestthewoods.com/blog/memory-bandwidth-napkin-math/)
* [Analyzing and Debugging Performance Issues with Advanced ARM CoreLink System IP Components](https://ip.cadence.com/uploads/251/white-paper-interconnect-solutions-debugging-issues-advanced-ARM-CoreLink-pdf)
* [SoC Interconnect Analysis](https://community.cadence.com/cadence_blogs_8/b/ii/posts/designer-view-soc-interconnect-analysis-what-we-re-doing-what-s-still-needed)
* [Why on-chip networks are important?](https://semiengineering.com/not-enough-respect-for-soc-interconnect/)
* [How to measure System Performance?](https://community.arm.com/developer/ip-products/system/b/soc-design-blog/posts/how-to-measure-and-optimize-the-system-performance-of-a-smartphone-rtl-design)
* [Understanding Complexities](https://www.bigocheatsheet.com/)
* [Performance Analysis of Multi-threaded applications for beginners](https://easyperf.net/blog/2019/10/05/Performance-Analysis-Of-MT-apps)
* [Multithread vs Multiprocess](https://blog.floydhub.com/multiprocessing-vs-threading-in-python-what-every-data-scientist-needs-to-know/)
* [Offline Optimization for Architecting Hardware Accelerators](https://ai.googleblog.com/2022/03/offline-optimization-for-architecting.html?m=1)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://rajesh-s.gitbook.io/comparchsys/area_specific/performance.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
