Introduction to Hardware Efficiency
Not all programs are created equally: some use hardware resources optimally, others not so much. In this lecture we will talk about two basic types of hardware bottlenecks: the CPU bottleneck and the memory bottleneck. We will give information how to recognize if your code is memory bound or CPU bound and some ideas on how to overcome these limitations.
If the session is two hours long then we add the following description:
We will also talk about instruction level parallelism: what is instruction level parallelism, how it is connected to your program's performance, and how to improve your program's speed by increasing instruction level parallelism.
All the examples will be given in C++.
Ivica Bogosavljevic
Senior Software Engineer with 10 years of experience active in the domain of Linux and bare-metal embedded systems. His professional focus is application performance improvement - techniques used to make your C/C++ program run faster by using better algorithms, better exploiting the underlying hardware, and better usage of the standard library, programming language, and the operating system. Writer for a performance-related tech blog: https://johnysswlab.com]