Processeur parallèle ou série
Le traitement parallèle et série décrit si un système informatique peut séparer les tâches de calcul pour utiliser plusieurs processeurs ou cœurs simultanément ou s'il dépend de l'exécution de tâches avec un seul cœur de processeur. Tous les processeurs d'ordinateurs grand public individuels étaient des processeurs série avant la mi-2005, date à laquelle Intel a introduit le premier processeur double cœur grand public. Plusieurs processeurs à cœur unique peuvent fonctionner ensemble pour gérer le traitement en série via des grappes d'ordinateurs parallèles en réseau ou exécuter plusieurs processeurs sur une carte mère.
Les ordinateurs sont des machines multitâches
Un ordinateur moderne typique exécute des dizaines à des centaines de tâches à tout moment; cependant, chaque noyau ne travaille que sur un processus à la fois. Le processeur saute constamment entre les différents "threads" ou "flux d'instructions" de traitement pour exécuter plusieurs programmes simultanés sous une illusion en temps réel appelée simultanéité. L'ordinateur finit par gaspiller des cycles de processeur lors du passage d'une tâche à l'autre et ne fonctionne pas avec une efficacité optimale en mode multitâche.
Exécuter des tâches en parallèle
Un environnement de traitement parallèle peut traiter les tâches plus rapidement lorsque les programmes sont conçus pour utiliser le traitement parallèle. Les programmes série alignent toutes les instructions dans un arrangement série et s'interfacent avec le processeur à l'aide d'un seul thread. Les programmes parallèles fonctionnent en divisant les tâches en parties individuelles qui peuvent être divisées entre plusieurs cœurs de processeur et réassemblées en tant que tâches terminées. Les processeurs parallèles peuvent multiplier la puissance de traitement des processeurs série cadencés de manière similaire avec un code correctement écrit. Cependant, un processeur série avec une vitesse d'horloge plus élevée peut surpasser les processeurs parallèles lorsqu'il travaille avec un seul thread.
Traitement en série en action
Les programmes écrits pour le traitement en série n'utilisent qu'un seul cœur à la fois et traitent les tâches dans un ordre séquentiel. Un processeur en série fonctionne un peu comme avoir une douzaine de voies de paiement ouvertes dans une épicerie avec un caissier courant entre les différentes voies, vérifiant tout le monde en même temps. Le caissier, ou CPU, saute de voie en voie en vérifiant quelques articles à la fois avant de passer au suivant dans le but de terminer toutes les commandes en même temps.
Traitement parallèle en action
L'idée derrière les processeurs parallèles est que plus de cœurs qui fonctionnent ensemble conduiront à de meilleures performances. Un processeur parallèle se comporte comme si plusieurs caissiers exploitaient une douzaine de caisses. Si un programme est mis en place pour profiter du traitement parallèle, le "client" pourrait diviser sa commande en plus petits groupes et utiliser plusieurs caisses à la fois.
Les processeurs parallèles élargissent les possibilités
En 2007, Nvidia a utilisé pour la première fois le traitement parallèle pour faire progresser la technologie graphique. Les unités de traitement graphique utilisent un traitement parallèle à un niveau qui fait exploser les performances de traitement en série lors de petits calculs. Alors que les processeurs ont tendance à avoir un nombre facilement dénombrable de cœurs, les GPU peuvent avoir des milliers de cœurs moins puissants qui sont mieux adaptés pour exécuter des calculs simultanés plus simples. Les GPU sont couramment utilisés pour les graphiques, mais peuvent effectuer d'autres calculs pour des choses comme le tri et l'algèbre matricielle.