Le multitraitement symétrique (SMP) est une architecture largement utilisée pour les systèmes informatiques modernes, mais son histoire est rarement évoquée. L'idée de base de cette architecture est que plusieurs processeurs identiques sont connectés à une seule mémoire principale partagée et gérés par un seul système d'exploitation. Cette fonctionnalité collaborative permet à chaque processeur de traiter différentes tâches en parallèle, améliorant ainsi considérablement les performances globales du système. Cet article vous fera traverser l’histoire et explorera l’origine et l’évolution du SMP.
Les systèmes SMP se composent généralement de plusieurs processeurs similaires qui partagent une mémoire principale centrale et fonctionnent sous un seul système d'exploitation. Chaque processeur est équipé d'une mémoire cache dédiée pour accélérer l'accès à la mémoire principale et réduire le trafic du bus système. Dans les premiers systèmes SMP, la technologie était souvent limitée par la bande passante et la consommation d'énergie, et il y avait des problèmes de goulot d'étranglement dans la conception. Depuis lors, l’introduction de l’architecture en grille a amélioré les problèmes d’évolutivité, même si la complexité de la programmation doit être surmontée.
« Les systèmes SMP permettent à n’importe quel processeur d’exécuter n’importe quelle tâche, quel que soit l’emplacement des données de la tâche, à condition que la tâche ne soit pas exécutée par un autre processeur du système. »
Parmi les premiers systèmes multiprocesseurs, le Burroughs B5000 est devenu en 1961 le premier système de production, bien que son fonctionnement soit encore asymétrique. Avec l’introduction du Burroughs D825 en 1962, le concept de SMP a progressivement pris forme. La série d'ordinateurs System/360 d'IBM a également lancé un système informatique à double processeur, réalisant l'application de l'architecture SMP. À mesure que les grandes entreprises se sont lancées dans ce domaine, les systèmes SMP ont progressivement évolué et sont devenus courants.
SMP est largement utilisé dans les systèmes de partage de temps et de serveur, qui peuvent prendre en charge plusieurs processus exécutés en parallèle sans modifier l'application. Dans les ordinateurs personnels, l’utilité du SMP est réduite car de nombreuses applications n’ont pas encore été modifiées pour le multithreading. Afin de profiter du SMP, la programmation multithread devient une considération importante.
Les conceptions actuelles des systèmes SMP permettent de coupler étroitement plusieurs processeurs, mais cela pose également des défis en termes d’évolutivité et de performances. Bien que les systèmes multiprocesseurs puissent augmenter le débit, combler l’écart en matière d’optimisation des performances nécessitera un système d’exploitation soigneusement conçu et un support logiciel efficace pour maximiser l’utilisation du matériel.
« Dans un environnement SMP, lorsque plusieurs programmes sont exécutés simultanément, les performances du système sont nettement meilleures que celles d'un système à processeur unique. »
Les systèmes utilisant des SMP nécessitent des techniques de programmation différentes de celles des systèmes utilisant des monoprocesseurs pour obtenir des performances maximales. Parce que dans un système SMP, les programmes peuvent s’exécuter en utilisant plusieurs processeurs simultanément. Cela améliore non seulement les capacités multitâches, mais améliore également la fluidité du fonctionnement du programme. À mesure que le programme s’améliorera, il sera en mesure de mieux équilibrer la charge de travail.
À mesure que les exigences informatiques augmentent, de nouvelles architectures telles que NUMA (Non-Uniform Memory Access) émergent, qui permettent aux processeurs d'accéder plus rapidement à la mémoire locale et de réduire la dépendance à la mémoire partagée. Bien que NUMA puisse fournir un accès aux données plus efficace dans certains environnements, le coût du déplacement des données d’un processeur à un autre est relativement élevé lors de l’équilibrage de la charge de travail.
Des premiers systèmes informatiques modulaires aux architectures multiprocesseurs modernes qui visent l’efficacité, l’évolution du SMP constitue sans aucun doute un élément important du progrès technologique. À mesure que la technologie continue de progresser, quelles nouvelles technologies vont remettre en question et améliorer notre compréhension de la collaboration multiprocesseur à l’avenir ?