Scaling with Multicore Processors
The key advantage of a multicore processor is that it is able to allocate more cores to solving a compute problem. Hence, to get the best out of a multicore processor, each thread of an application needs to be efficient, and the application needs to be able to effectively utilize multiple threads. An ideal application will double in performance when run with two hardware threads and will quadruple in performance with four.
This chapter discusses the issues surrounding application scaling. By the end of the chapter, you will have an understanding of the common ways that hardware and software limit the scaling of applications. You will also know how to recognize these issues and potentially solve them. You will also appreciate the difference between using multiple threads on a multicore processor and using multiple single-core processors.