Multicore chips in their various guises, have been powering all kinds of computing devices since the mid 2000s. In this chapter we present the most influential multicore designs, and explain how they fit into the overall realm of computing, as categorized by Flynn’s taxonomy. The metrics used to measure and assess the performance of a parallel program, i.e. speedup and efficiency, are also explained.
While speedup and efficiency are simple metrics, the process for obtaining them is fraught with pitfalls. For this reason, we explicitly address the issue of how one should design experiments that properly evaluate the potential of a parallel algorithm and its implementation.
We complete this chapter with a description ...