Calcul parallèle

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir parallèle.

En informatique, le calcul parallèle consiste en l'exécution d'un traitement pouvant être partitionné en tâches élémentaires adaptées afin de pouvoir être réparties entre plusieurs (cores de) processeur(s) opérant simultanément en vue de traiter plus rapidement que dans une exécution séquentielle des problèmes plus grands (à technologie constante).

Sommaire

[modifier] Intérêt

La réalisation de ces objectifs se traduit par des économies dans presque tous les domaines du calcul, incluant: la dynamique des fluides, les prédictions météorologique, la modélisation et simulation de problèmes de dimensions plus grandes, le traitement de l'information et l'exploration de données, le traitement d'images ou la fabrication d'images de synthèse, tels que le lancer de rayon, (avec les fermes de rendu), l'intelligence artificielle et la fabrication automatisée.

Elle permet aussi de traiter des problèmes nouveaux, d'apporter des solutions globales à des problèmes qui étaient abordés plus partiellement auparavant.

[modifier] Ordinateur parallèle

Le terme ordinateur parallèle est parfois utilisé en référence à un ordinateur qui possède plus d'une unité centrale de traitement et qui peut effectuer un traitement parallèle.

Il existe plusieurs types d'ordinateurs (ou de processeurs) parallèles, caractérisés, principalement, par différents modèles d'interconnexions entre les processeurs et entre les processeurs et la mémoire. La classification la plus populaire est la taxonomie de Flynn, qui catégorise les ordinateurs parallèles (et sériels) selon le type d'organisation du flot de données et du flot d'instructions. Elle distingue ainsi les machines SIMD (à flot d'instructions unique agissant sur des données multiples) et les machines MIMD (à flot d'instructions et de données multiples).

Bien qu'un système de n processeurs en parallèle ne soit pas plus efficace qu'un seul processeur ayant n fois la vitesse de l'un d'eux, le système parallèle est souvent moins coûteux à réaliser. Le calcul parallèle est, donc, une excellente solution pour des tâches exigeantes en calcul et/ou ayant des contraintes temporelles critiques (cf. Systèmes en temps réel). En fait, la plupart des systèmes de calcul de haute performance (aussi appelés superordinateurs ou supercalculateurs) qui ont été conçus au cours des dernières années ont une architecture parallèle.

[modifier] Technologie

Trois facteurs principaux ont contribué à la forte tendance actuelle en faveur du traitement parallèle.

[modifier] Coût du matériel

Il a décru de manière constante, de sorte qu'il est aujourd'hui possible de construire des systèmes à multiprocesseurs à moindre coût.

[modifier] Intégration à très grande échelle

La technologie des circuits a progressé à un tel point qu'il est devenu possible de fabriquer des systèmes complexes nécessitant des millions de transistors sur une seule puce.

On peut alors doubler ou tripler, voire davantage, quelques circuits de calcul sur cette même puce en la munissant de circuits de contrôle veillant à répartir les calculs entre eux, ainsi qu'à éviter les collisions que pourrait impliquer ce parallélisme.

[modifier] Vitesse de traitement des ordinateurs

La vitesse des traitements séquentiels traditionnels, basés sur le modèle de von Neumann, semble s'approcher de la limite physique au-delà de laquelle il n'est plus possible d'accélérer. On peut en revanche disposer de :

  • plusieurs processeurs dans la même puce,
  • plusieurs puces sur la même carte mère,
  • plusieurs cartes mères dans le même châssis.

C'est sur ce principe qu'est construit l'ordinateur le plus puissant du moment (2004) : Blue gene.

[modifier] Gains quantitatifs dus au calcul parallèle

Ils sont donnés par la loi d'Amdahl, qui procède d'une simple règle de trois sur des données simplifiées. Voir cet article.

[modifier] Autres considérations plus nébuleuses

La thèse du calcul parallèle s'énonce comme suit: Tout problème pouvant être résolu sur un ordinateur séquentiel raisonnable en utilisant un espace de taille polynomiale peut être résolu en temps polynomial par un ordinateur parallèle raisonnable et vice versa.

La thèse de l'invariance est une thèse complémentaire qui supporte, du moins de façon approximative, la définition d'une notion d'ordinateur raisonnable. Elle s'énonce comme suit: Des machines raisonnables peuvent se simuler entre elles avec au plus un accroissement polynomial en temps et une multiplication constante de l'espace. Une manière de construire des modèles raisonnables est de considérer la classe des machines raisonnables incluant la machine de Turing.

[modifier] Sujets apparentés

[modifier] Sujets généraux

[modifier] Langages de programmation

[modifier] Bibliothèque de programmation

[modifier] Liens externes