Le calcul parallèle, également connu sous le nom de programmation parallèle, est un processus dans lequel les problèmes de calcul importants sont décomposés en problèmes plus petits qui peuvent être résolus simultanément par plusieurs processeurs.
Les processeurs communiquent à l’aide d’une mémoire partagée et leurs solutions sont combinées à l’aide d’un algorithme. Le calcul parallèle est nettement plus rapide que le calcul séquentiel, son prédécesseur qui utilise un seul processeur pour résoudre les problèmes en séquence.
Lorsque les ordinateurs ont été inventés à la fin des années 1940 et dans les années 1950, les logiciels étaient programmés pour résoudre les problèmes en séquence, ce qui limitait la vitesse de traitement. Pour résoudre les problèmes plus rapidement, les algorithmes devaient être créés et implémentés en suivant un ensemble d’instructions sur une unité centrale de traitement (CPU). Ce n’est qu’après l’exécution d’une instruction qu’une autre pouvait être résolue.
À partir des années 1950, le calcul parallèle a permis aux ordinateurs d’exécuter du code plus rapidement et plus efficacement en divisant les problèmes de calcul en problèmes similaires plus petits. Ces problèmes, connus sous le nom d’algorithmes parallèles, ont ensuite été répartis entre plusieurs processeurs.
Aujourd’hui, les systèmes parallèles ont évolué au point d’être utilisés dans de nombreux ordinateurs, ce qui rend les tâches quotidiennes telles que la vérification des e-mails ou l’envoi d’un SMS des centaines de fois plus rapides que si elles étaient effectuées à l’aide du calcul séquentiel. En plus d’alimenter les appareils personnels (ordinateurs portables, smartphones, etc.), les systèmes parallèles alimentent également les supercalculateurs les plus avancés et des technologies de pointe comme l’intelligence artificielle (IA) et l’Internet des objets (IdO).
Le calcul séquentiel est un type de calcul où les instructions pour résoudre les problèmes de calcul sont suivies une à la fois ou de manière séquentielle. Les principes fondamentaux du calcul séquentiel exigent que les systèmes n’utilisent qu’un seul processeur au lieu de répartir les problèmes entre plusieurs processeurs.
Avec le développement de l’informatique, le calcul parallèle a été mis au point, car la vitesse du calcul séquentiel était plutôt lente. Les systèmes d’exploitation qui utilisent la programmation parallèle permettent aux ordinateurs d’exécuter des processus et d’effectuer des calculs simultanément, une technique connue sous le nom de traitement parallèle.
Le traitement parallèle et le calcul parallèle sont des termes très similaires, mais certaines différences méritent d’être soulignées. Le traitement parallèle, ou parallélisme, sépare une tâche d’exécution en parties plus petites, qui doivent être effectuées indépendamment et simultanément en utilisant plusieurs processeurs. Un réseau informatique ou un ordinateur doté de plus d’un processeur est généralement nécessaire pour réassembler les données une fois que les équations ont été résolues sur plusieurs processeurs.
Bien que les termes « traitement parallèle » et « calcul parallèle » soient parfois utilisés de manière interchangeable, le traitement parallèle fait référence au nombre de cœurs et de processeurs qui fonctionnent à côté d’un ordinateur, tandis que le calcul parallèle fait référence à ce que le logiciel fait pour faciliter le processus.
Newsletter sectorielle
Restez au fait des tendances les plus étonnantes du secteur dans le domaine de l’IA, de l’automatisation, des données et bien d’autres avec la newsletter Think. Consultez la Déclaration de confidentialité d’IBM.
Vous recevrez votre abonnement en anglais. Vous trouverez un lien de désabonnement dans chaque newsletter. Vous pouvez gérer vos abonnements ou vous désabonner ici. Consultez la Déclaration de confidentialité d’IBM pour plus d’informations.
La vitesse et l’efficacité du calcul parallèle sont à l’origine de certaines des avancées technologiques les plus importantes du dernier demi-siècle, notamment les smartphones, le calcul haute performance (HPC), l’IA et le machine learning (ML). En permettant aux ordinateurs de résoudre plus rapidement et avec moins de ressources des problèmes plus complexes, le calcul parallèle est également un vecteur crucial de la transformation numérique pour de nombreuses entreprises.
L’intérêt pour le calcul parallèle s’est développé lorsque les programmeurs informatiques et les fabricants ont commencé à chercher des moyens de construire des processeurs plus économes en énergie. Dans les années 1950, 1960 et 1970, les pionniers de la science et de l’ingénierie ont créé des ordinateurs qui utilisaient de l’espace mémoire partagé et exécutaient pour la première fois des opérations parallèles sur des jeux de données.
Ces efforts ont abouti au projet révolutionnaire de calcul parallèle Caltech, qui a introduit un nouveau type de calcul parallèle dans les années 1980 en utilisant 64 processeurs Intel.
Dans les années 1990, le supercalculateur ASCI Red, qui utilisait des processeurs massivement parallèles (MPP), a réalisé un trillion d’opérations par seconde, ce qui a marqué le début d’une ère de domination du MPP pour la puissance de calcul.1 À la même époque, les clusters, un type de calcul parallèle qui relie des clusters d’ordinateurs ou des « nœuds » à un réseau commercial, ont été lancés sur le marché. Ils devaient par la suite remplacer les MPP pour de nombreuses applications.
Le calcul parallèle, en particulier les processeurs multicœurs et les unités de traitement graphique (GPU), reste une partie critique de l’informatique aujourd’hui. Les GPU sont souvent déployés en même temps que les CPU pour augmenter le débit des données et exécuter plus de calculs à la fois, ce qui permet d’accélérer de nombreuses applications modernes.
Avant le calcul parallèle, le calcul séquentiel obligeait les processeurs uniques à résoudre les problèmes complexes une étape à la fois, ce qui ajoutait des minutes et même des heures aux tâches que le calcul parallèle pouvait accomplir en quelques secondes. Par exemple, les premiers iPhones utilisaient le calcul séquentiel et pouvaient mettre une minute à ouvrir une application ou un e-mail. Aujourd’hui, le calcul parallèle, utilisé pour la première fois dans les iPhones en 2011, accélère considérablement ces tâches.
À mesure que l’informatique gagne en maturité et s’attaque à des problèmes plus complexes, les systèmes doivent effectuer des milliers, voire des millions, de tâches en un instant. Les modèles de ML d’aujourd’hui s’appuient fortement sur le calcul parallèle et utilisent des algorithmes très complexes déployés sur plusieurs processeurs. En utilisant le calcul séquentiel, les tâches de ML prendraient beaucoup plus de temps en raison des goulots d’étranglement causés par la contrainte de n’effectuer qu’un seul calcul à la fois sur un seul processeur.
Le calcul parallèle et le traitement parallèle accélèrent le calcul des nombres sur les grands jeux de données, ce qui permet les requêtes interactives derrière l’analyse des données. Avec plus d’un quintillion d’octets d’informations générés chaque jour, les entreprises peuvent avoir du mal à passer au crible les données numériques pour obtenir des informations pertinentes et utiles. Le traitement parallèle déploie des ordinateurs dotés de nombreux cœurs dans une structure de données et passe au crible les données beaucoup plus rapidement qu’un ordinateur séquentiel.
Grâce au calcul parallèle, les ordinateurs peuvent utiliser les ressources de manière beaucoup plus efficace que leurs équivalents qui fonctionnent en calcul séquentiel. Les systèmes informatiques les plus perfectionnés déploient plusieurs cœurs et processeurs, ce qui leur permet d’exécuter plusieurs programmes à la fois et d’effectuer davantage de tâches simultanément.
Le calcul parallèle alimente de nombreux types d’appareils et d’architectures informatiques, des supercalculateurs au smartphone dans votre poche. Dans sa forme la plus complexe, le calcul parallèle utilise des centaines de milliers de cœurs pour résoudre des problèmes tels que la recherche d’un nouveau médicament contre le cancer ou la recherche d’une intelligence extraterrestre (SETI). Dans sa forme la plus simple, le calcul parallèle vous permet d’envoyer un e-mail à partir de votre téléphone plus rapidement que si vous utilisiez un système informatique séquentiel.
D’une manière générale, trois architectures uniques sont utilisées dans le calcul parallèle : la mémoire partagée, la mémoire distribuée et la mémoire hybride. Chaque architecture fonctionne sur sa propre interface de passage de messages (MPI), une norme pour toutes les architectures de calcul parallèle. Le MPI définit des protocoles pour les programmes à passage de messages dans des langages de programmation tels que C++ et Fortran. Le MPI open source a joué un rôle clé dans le développement de nouvelles applications et de nouveaux logiciels qui reposent sur des capacités de calcul parallèle.
L’architecture à mémoire partagée est utilisée dans les applications courantes du calcul parallèle, comme les ordinateurs portables ou les smartphones. Dans une architecture à mémoire partagée, les ordinateurs parallèles s’appuient sur plusieurs processeurs pour contacter la même ressource de mémoire partagée.
La mémoire distribuée est utilisée dans les architectures de cloud computing, ce qui la rend courante dans de nombreuses applications d’entreprise. Dans un système distribué pour le calcul parallèle, plusieurs processeurs avec leurs propres ressources de mémoire sont liés sur un réseau.
Les superordinateurs d’aujourd’hui s’appuient sur des architectures de mémoire hybrides, un système de calcul parallèle qui combine des ordinateurs à mémoire partagée sur des réseaux de mémoire distribués. Les CPU connectés dans un environnement de mémoire hybride peuvent accéder à la mémoire partagée et aux tâches attribuées à d’autres unités sur le même réseau.
Outre les trois architectures principales, d’autres architectures d’ordinateurs parallèles, moins courantes, sont conçues pour résoudre des problèmes plus importants ou des tâches hautement spécialisées. Il s’agit notamment des processeurs vectoriels (pour les ensembles de données appelés « vecteurs ») et des processeurs pour les calculs à usage général sur des unités de traitement graphique (GPGCU). L’un d’eux, CUDA, une interface de programmation d’application propriétaire GPGCU développée par Nvidia, est critique pour l’apprentissage profond (DL), la technologie qui sous-tend la plupart des applications d’IA.
Il existe quatre types de calcul parallèle, chacun ayant ses propres objectifs :
Le parallélisme au niveau des bits repose sur une technique où la taille des mots du processeur est augmentée et le nombre d’instructions que le processeur doit exécuter pour résoudre un problème est réduit. Jusqu’en 1986, l’architecture informatique progressait en augmentant le parallélisme au niveau des bits, passant des processeurs 4 bits aux 8 bits, 16 bits, 32 bits et 64 bits, chaque génération étant plus performante que la précédente. L’exemple le plus célèbre d’une avancée en matière de parallélisme binaire est la Nintendo 64, la première fois qu’une application grand public utilisait le 64 bits.
Le parallélisme au niveau des instructions (ILP) est un type de calcul parallèle où le processeur choisit les instructions qu’il exécute. Dans l’ILP, les processeurs sont conçus pour effectuer certaines opérations simultanément afin d’améliorer l’optimisation des ressources et d’augmenter le débit.
Le parallélisme des tâches est un type de calcul parallèle qui met en parallèle le code sur plusieurs processeurs exécutant simultanément des tâches sur les mêmes données. Le parallélisme des tâches permet de réduire le temps d’exécution séquentielle en exécutant les tâches simultanément (dans le pipeline, par exemple, où une série de tâches est effectuée sur un seul ensemble de données).
Plus avancé que l’ILP, le parallélisme au niveau du supermot (SLP) est une tactique de vectorisation utilisée sur le code inline. La vectorisation est un processus de calcul parallèle utilisé pour effectuer plusieurs tâches similaires à la fois, qui permet d’économiser du temps et des ressources. Le SLP est utilisé pour identifier les instructions scalaires redondantes dans un bloc de code et les combiner en une seule opération de supermot.
Des blockchain aux smartphones, en passant par les consoles de jeu et les chatbots, le calcul parallèle est un élément essentiel de nombreuses technologies qui font évoluer notre monde. En voici quelques exemples :
De nombreux smartphones s’appuient sur le traitement parallèle pour accomplir leurs tâches plus rapidement et plus efficacement. Par exemple, l’iPhone 14 dispose d’un processeur 6 cœurs et d’un GPU 5 cœurs, qui lui permettent d’exécuter 17 milliards de tâches par seconde, un niveau de performance impensable en calcul séquentiel.
La technologie blockchain, qui est à la base des cryptomonnaies, des machines de vote, des soins de santé et de nombreuses autres applications avancées de technologie numérique, repose sur le calcul parallèle pour connecter plusieurs ordinateurs et valider les transactions et les entrées. Le calcul parallèle permet de traiter simultanément les transactions dans une blockchain au lieu d’une à la fois, ce qui augmente le débit et la rend hautement évolutive et efficace.
Aujourd’hui, les ordinateurs portables les plus puissants (MacBooks, ChromeBooks et ThinkPads) utilisent des puces avec plusieurs cœurs de traitement, une base du parallélisme. Parmi les processeurs multicœurs, citons Intel Core i5 et HP Z8, qui permettent aux utilisateurs de monter des vidéos en temps réel, d’exécuter des graphiques 3D et d’effectuer d’autres tâches complexes et gourmandes en ressources.
L’Internet des objets (IdO) repose sur les données collectées par des capteurs, qui sont connectés à l’Internet. Une fois ces données collectées, le calcul parallèle est nécessaire pour les analyser, en extraire des informations et aider les systèmes complexes à fonctionner (centrales électriques, barrages, systèmes de circulation, etc.). Le calcul séquentiel tel qu’on le connaît ne peut pas passer au crible les données assez rapidement pour que l’IdO fonctionne, ce qui rend le calcul parallèle crucial pour les progrès de la technologie IdO.
Le calcul parallèle joue un rôle critique dans la formation des modèles de ML pour les applications d’IA, comme la reconnaissance faciale et le traitement automatique du langage naturel (NLP). En effectuant des opérations simultanément, le calcul parallèle réduit considérablement le temps nécessaire pour entraîner des modèles de ML avec précision sur les données.
L’ordinateur qui gère la navette spatiale s’appuie sur cinq ordinateurs IBM® AP-101 qui fonctionnent en parallèle pour contrôler son avionique et surveiller les données en temps réel. Ces puissantes machines, qui sont également utilisées dans les avions de chasse, peuvent exécuter près de 500 000 instructions par seconde.
Les supercalculateurs s’appuient de façon si marquée sur le calcul parallèle qu’ils sont souvent appelés ordinateurs parallèles. Le supercalculateur American Summit, par exemple, traite 200 quadrillions d’opérations par seconde pour aider les humains à mieux comprendre la physique et l’environnement naturel.2
IBM Spectrum LSF Suites est une plateforme de gestion des workloads et un outil de planification de travaux pour les environnements de calcul haute performance (HPC) distribués.
Les solutions HPC en cloud hybride d’IBM aident à relever les défis à grande échelle et à forte intensité de calcul et à accélérer le temps de découverte de l’information.
Trouvez la solution d’infrastructure cloud adaptée aux besoins de votre entreprise et ajustez les ressources en fonction de la demande.