ABSTRACT

This chapter explains the interaction among all parties that contribute to the performance of a program. They are the programmer, compiler, Operating System (OS), and hardware. Compiler is a large piece of code that is packed with routine functionality for two things: compilation, and optimization. Aside from how many cores a CPU has, there is another consideration that relates to the cores; almost every CPU manufacturer started manufacturing in order cores and upgraded their design to out of order in their more advanced family of offerings. If a thread was designed by the programmer to require minimal core resources, it could benefit significantly from multithreading. These kinds of threads are called thin threads, whereas the ones that require excessive amounts of core resources are called thick threads. The maximum number of software thread is only limited by the internal OS parameters, whereas the number of hardware thread is set in stone at the time the CPU is designed.