Si tu sais lire, vas simplement voir les articles sur les Q6600, E8000 et Phenom, tout y est.
Tout n'est pas parallélisable, sans parler des problèmes liés aux branchements impliquant des changements de contexte et l'effet ping-pong (un contexte est transféré d'un core à un autre), c'est encore pire avec le SMT utilisé pour multiplier le nombre de macro-threads.
La solution c'est de se tourner vers une archi proche d'un GPU, avec un seul frontend (potentiellement multi-macro-thread) mais créant des micro-threads, à l'image de la fusion de µOps des K8 et Core.
Si on prend l'archi d'un CPU mais qu'on multiplie lourdement les unités de calcul, comme avec un GPU, on finit par obtenir un processeur OoO apte à gérer un nombre important de macro-threads et par la même occasion de micro-paralléliser au maximum les applis single thread. Tout n'est qu'une question de "niveau de zoom". Jusqu'à présent cette approche n'était pas viable (surface occupée par le frontend trop importante limitant les gains possibles) mais on commence à voir des CPU utiliser plus de cache que de raison, indiquant une surproduction potentielle, donc ça ne devrait plus tarder à arriver, que ça soit chez Intel (voir Polaris et son fonctionnement) ou AMD (qui a absorbé ATI, concepteur de GPU, et annoncé Bulldozer...).