For many years, the frequency of microprocessors has grown at an exponential pace (from 20 MHz in 1990 to 2 GHz in 2000). Since 2002 however, despite considerable effort, the frequency has been plateauing. Advances in technology and micro-architecture now translate into more parallelism. The consequences on the software industry are dramatic: most existing software has been designed with a sequential model in mind, and even parallel applications contain residual sequential sections. The performance of these applications will ultimately be driven by the performance of the sequential part, as stated by Amdahl's law.
For this reason we envision that future architectures will consist of many simple cores, but also a few very complex cores. The performance of applications is unlikely to automatically increase with new generations of future processors, as it used to happen in the past. Even plain portability is at risk for applications developed with a specific model of parallelism in mind. This talk proposes directions to address the problem of portability and performance of applications on future manycore processors, taking into account both parallel and residual sequential code sections.