Le calcul parallèle distribué est une forme de calcul dans laquelle une tâche informatique est divisée en plusieurs sous-tâches qui sont ensuite traitées en même temps, ou en parallèle, par un réseau informatique distribué. Le calcul parallèle est couramment utilisé pour les grandes tâches de calcul, où le traitement séquentiel de la tâche entière prendrait beaucoup de temps. Le calcul parallèle distribué est couramment utilisé dans la science moderne et dans d’autres domaines qui nécessitent de grandes quantités de puissance de traitement informatique.
Un réseau informatique distribué est un groupe d’ordinateurs, chacun avec sa propre mémoire et son propre processeur, qui sont connectés par un réseau qui leur permet de communiquer et de travailler ensemble. Les ordinateurs individuels du réseau sont communément appelés nœuds. Les ordinateurs d’un réseau distribué peuvent être physiquement séparés par de grandes distances, bien que ce ne soit pas toujours le cas. Le calcul effectué par un groupe d’ordinateurs au même emplacement peut également être appelé distribué si les nœuds individuels du réseau sont capables de fonctionner de manière autonome et que chaque nœud a sa propre mémoire, les processeurs individuels partageant des informations entre eux par transmission de messages plutôt que par à l’aide d’une seule mémoire partagée.
Un avantage du calcul parallèle distribué est qu’un réseau distribué peut incorporer un grand nombre d’ordinateurs individuels qui ne sont pas nécessairement au même endroit. Cela signifie que la quantité de puissance de traitement pouvant être utilisée pour une tâche importante lorsqu’un réseau entier en calcule différentes parties en parallèle peut être extrêmement élevée. Les réseaux distribués peuvent également être plus fiables qu’un système unique, car le réseau peut continuer à fonctionner même si certains de ses nœuds constitutifs cessent de fonctionner ; il n’y a pas de point de défaillance unique qui puisse faire tomber simultanément l’ensemble du réseau distribué. Un réseau distribué est également plus évolutif et plus facile à modifier pour répondre à l’évolution des besoins, car il est généralement plus facile d’ajouter ou de supprimer des nœuds individuels d’un réseau que d’apporter des modifications à un seul grand système.
Le calcul parallèle distribué est fréquemment utilisé pour le calcul scientifique avancé dans de nombreux domaines scientifiques modernes, tels que l’astrophysique et la météorologie. Ces domaines impliquent des calculs extrêmement vastes et complexes qui nécessitent une grande puissance de traitement pour être exécutés dans un délai raisonnable. Le calcul parallèle distribué est également fréquemment utilisé pour le rendu infographique, qui nécessite de grandes quantités de ressources de traitement et se prête très bien à être décomposé en de nombreuses tâches parallèles. Des images individuelles d’animation par ordinateur peuvent être attribuées à différents nœuds du réseau, par exemple.
Plusieurs types de calcul parallèle distribué existent. Le plus souvent, le terme est utilisé pour désigner un réseau d’ordinateurs travaillant sur un problème en parallèle tout en étant géographiquement séparés les uns des autres. Les ordinateurs individuels communiquent via Internet pour former un réseau lâche, souvent appelé une grille, et les composants du problème sur lequel la grille travaille sont affectés à des nœuds individuels et traités en parallèle.
Souvent, les nœuds individuels ne travaillent pas uniquement ou même principalement sur le problème traité par la grille. Au lieu de cela, les nœuds individuels utilisent une partie de leur puissance de traitement pour la grille tout en utilisant le reste indépendamment pour d’autres tâches non liées. Dans de nombreux cas, le traitement parallèle distribué fonctionne en tirant parti des moments où le processeur de l’ordinateur serait autrement inactif. Les cycles d’instructions qui auraient autrement été inutilisés – par exemple, pendant les périodes où l’ordinateur est allumé mais non utilisé ou pendant les moments où l’ordinateur attend une entrée de son utilisateur – sont plutôt utilisés pour les tâches assignées par la grille.
Les grilles peuvent varier considérablement en taille et en puissance, allant de petits groupes d’ordinateurs interconnectés contribuant à des cycles d’instructions de rechange à des tâches courantes dans un bureau d’affaires à des réseaux mondiaux avec une puissance de traitement rivalisant ou dépassant les supercalculateurs dédiés. Il existe un certain nombre de grands projets de traitement parallèle distribué basés sur la participation de volontaires qui permettent à leurs ordinateurs personnels de donner une puissance de traitement de réserve au projet, le plus souvent une forme de recherche scientifique à forte intensité de calcul. Un exemple populaire est Folding@home, qui exécute des simulations de molécules de protéines pour la recherche médicale sur des centaines de milliers d’ordinateurs individuels.
Le traitement parallèle distribué peut également faire référence à l’informatique en cluster. Contrairement à la connexion relativement lâche d’une grille informatique, l’informatique en cluster utilise un groupe de machines agissant en parallèle qui travaillent ensemble très étroitement, agissant à certains égards comme une seule unité. Les nœuds sont généralement au même endroit et connectés par un réseau local, mais chaque nœud d’un cluster d’ordinateurs a toujours sa propre mémoire séparée, même si le cluster n’est pas séparé géographiquement. Les ordinateurs individuels composant le cluster sont généralement identiques, car cela simplifie la répartition des tâches entre eux, bien que ce ne soit pas toujours le cas. Les clusters sont fréquemment utilisés pour le calcul scientifique, car ils peuvent fournir une puissance de traitement élevée en utilisant du matériel acheté en magasin relativement peu coûteux.