Articles IT et Télécoms

Le paradoxe des machines multi-cœurs

Depuis plusieurs années, Intel et AMD ont développé des processeurs multi-cœurs afin de continuer à offrir davantage de puissance. Le problème est que, dans certains cas de figure, ces nouvelles machines s’avèrent moins performantes que les machines dotées d’un seul cœur.

 

Pendant de nombreuses années, les fondeurs que sont Intel et AMD, développaient de nouvelles puces toujours plus puissantes en augmentant la fréquence d’horloge, c’est-à-dire la vitesse d’exécution de leurs processeurs. Cette technique a rencontré au début des années 2000 des limites pratiques quand la chaleur dégagée par ces processeurs et devenue telle qu’il devenait possible de se servir du capot de certains portable comme d’une table de cuisson …

En réponse à cette limite physique incontournable, les architectures multi-cœurs se sont développées de façon à offrir toujours plus de puissance sans augmenter la fréquence d’horloge et donc la chaleur dissipée.

Quasiment toutes les machines modernes sont désormais dotées de deux ou quatre cœurs s’agissant de PC et de beaucoup plus concernant les serveurs d’applications.

Le problème est que l’utilisation de machines multi-cœurs peut avoir pour conséquence paradoxale un ralentissement, et non pas une accélération, de la vitesse d’exécution de certains programmes.

Exemple typique, un PC en fin de vie dédié à une application manipulant de gros volumes de données. Son remplacement par une machine multi cœurs se traduit par des temps d’exécution plus lents de cette même application …

Comment est-ce possible ? Une machine possédant deux ou quatre cœurs ne dispose-t-elle pas de plus de puissance qu’une machine mono-cœur. Plus de puissance ne se traduit-il pas par une vitesse d’exécution plus importante ?

La réponse est malheureusement, non sauf si l’application a été spécifiquement développée pour tirer parti d’une architecture multi cœurs, ce qui représente aujourd’hui l’exception plutôt que la règle.

Plusieurs facteurs concourent à expliquer ce résultat en apparence paradoxal.

Une application écrite pour s’exécuter sur un seul cœur ne peut en aucun cas tirer parti des possibilités d’exécution en parallèle offertes par ces machines

La vitesse d’horloge des processeurs multi cœurs peut être plus lente que celle d’une machine mono processeur

Plus le nombre de cœurs augmente et plus il est nécessaire de consacrer de la puissance de calcul à la coordination des activités entre les différents cœurs

Le phénomène st peu connu mais il n’en reste pas moins que assistons à une transition majeure d’un modèle de développement basé sur des PC monoprocesseurs à un nouveau monde dans lequel les architectures multi processeurs constituent la norme.

Cette transition s’avère malheureusement beaucoup plus difficile et plus laborieuse que le passage du 16 bits au 32 bits, puis aujourd’hui au 64 bits.

Ce changement de modèle entraine une complexification significative du développement. Des outils dédiés à ces nouvelles architectures sont en cours de développement chez Microsoft et Google mais il faudra des années pour que les programmeurs s’emparent de ces concepts et en exploitent pleinement les possibilités.

Ce qui précède ne revient pas à dire qu’une machine multi-cœurs est systématiquement moins performante qu’une machine mono-cœur. Dans la grande majorité des cas de figure, si vous avez plusieurs programmes indépendants s’exécutant à un moment donné, la performance globale de votre PC va grandement bénéficier d’une architecture multi-cœurs dans laquelle chaque cœur va pouvoir se consacrer à une tâche et l’exécuter en parallèle avec les autres applications.

Malgré tout, ces machines seront toujours moins performantes que des machines monoprocesseur pour l’exécution d’applications intensives et le resteront encore pour de nombreuses années.

Ce paradoxe représente une opportunité commerciale pour les éditeurs d’applications qui seront les premiers à tirer parti de ces nouvelles architectures en se différenciant nettement de leurs concurrents en termes de performance.

En attendant, faut-il se détourner des machines multi-cœurs pour les raisons mentionnées plus haut ?

A moins que vous ne deviez régulièrement lancer des simulations sur des volumes de données très important, la réponse est bien sûr non. Tout au plus est-il utile d’avoir en tête les raisons qui peuvent expliquer des performances parfois surprenantes à l’occasion d’un renouvellement de machine.

Advertisements

Discussion

Les commentaires sont fermés.

%d blogueurs aiment cette page :