Description
During the last decade there was a major change in the processing hardware landscape. While Moore's law still drives the increase of the transistor count, the processing units get new architectural features and increase number of cores. This in turn forces a programming paradigm change and encourages new strategies in efficient programming.
In this lectures we will analyze how the CPUs evolved over time and what impact does this evolution has on software. The simplest approaches to leverage parallelism at different level will be shown. We will look at the bottlenecks of the processing hardware and trends that might shape the next decade of computing.