En 2014, j'entends beaucoup de langages de programmation vantés pour leur compétitivité. de la concurrence. On dit que la concurrence est cruciale pour les gains de performance.
En faisant cette déclaration, de nombreuses personnes renvoient à un article de 2005 intitulé Le site Free Lunch Is Over : Un virage fondamental vers la simultanéité dans logiciels . L'argument de base l'argument de base est qu'il est de plus en plus difficile d'augmenter la vitesse d'horloge des processeurs. processeurs, mais nous pouvons toujours mettre plus de cœurs sur une puce, et que pour obtenir des des gains de performances, il faudra écrire des logiciels pour tirer parti des plusieurs cœurs.
Quelques citations clés :
Nous sommes habitués à voir des processeurs à 500 MHz céder la place à des processeurs à 1 GHz, puis à des processeurs à 1 GHz. 2GHz, et ainsi de suite. Aujourd'hui, nous sommes dans la gamme des 3 GHz sur les principaux ordinateurs.
La question clé est la suivante : quand cela prendra-t-il fin ? Après tout, la loi de Moore prédit une croissance exponentielle, et il est clair qu'une croissance exponentielle ne peut pas continuer éternellement éternellement avant d'atteindre des limites physiques dures ; la lumière ne devient pas plus plus vite. La lumière ne va pas plus vite. La croissance doit finir par ralentir, voire s'arrêter.
... Il est devenu de plus en plus difficile d'exploiter des vitesses d'horloge plus élevées en raison non pas d'un mais de plusieurs problèmes physiques, notamment la chaleur (trop importante trop importante et trop difficile à dissiper), la consommation d'énergie (trop élevée), et problèmes de fuites de courant.
... L'avenir d'Intel et de la plupart des fournisseurs de processeurs est ailleurs. car les fabricants de puces poursuivent agressivement les mêmes nouvelles orientations multicœurs.
...Le multicore consiste à faire fonctionner deux ou plusieurs processeurs réels sur une seule puce.
Les prédictions de cet article semblent se confirmer, mais je ne comprends pas pourquoi. I n'ai que des idées très vagues sur le fonctionnement du matériel.
Mon point de vue simplifié est le suivant : "il est de plus en plus difficile de faire tenir plus de puissance de traitement dans le même espace" (à cause des problèmes de chaleur, de consommation d'énergie, etc). I Je m'attendrais à ce que la conclusion soit "donc, nous devrons avoir de plus gros ordinateurs ou exécuter nos programmes sur plusieurs ordinateurs". (Et en effet, l'informatique distribuée l'informatique en nuage distribuée est une chose dont nous entendons de plus en plus parler).
Mais une partie de la solution semble être les architectures multi-cœurs. A moins que les ordinateurs ne grandissent pas en taille (ce qui n'est pas le cas), cela semble juste être une autre façon de dire "mettre plus de puissance de calcul dans le même espace".
Pourquoi "ajouter plus de cœurs" n'est-il pas confronté aux mêmes limites physiques que "rendre le CPU plus rapide" ?
Veuillez expliquer dans les termes les plus simples que vous pouvez. :)