s
19 708 Pages

en informatique la calcul parallèle est le 'exécution simultané code source d'un ou plusieurs programmes (Divisé et spécifiquement adapté) sur multiple microprocesseurs ou plus noyau le même processeur en vue d'augmenter les performances de calcul du Système de traitement.

Systèmes parallèles

Parfois, pour indiquer l'ordinateur avec plus CPU, utilisables pour le calcul parallèle, nous utilisons le terme processeur parallèle. Les ordinateurs avec des milliers de microprocesseurs sont appelés massivement parallèle.

Il existe de nombreux types d'ordinateurs parallèles (ou processeurs parallèles), qui se distinguent par le type de connexion entre les différents processeurs (appelés « PE », des éléments de traitement) Et entre ces derniers et la mémoire. la taxonomie de Flynn Des catalogues ordinateurs dans le cas du parallèle et série, dans lequel les processeurs exécutent en même temps la même instruction (SIMD, une seule instruction multiple données) Ou des instructions différentes (MIMD, de multiples instructions de données multiples). Les systèmes parallèles sont également classés comme symétrique ou asymétrique en fonction des compétences possédées ou aux tâches attribuées à l'unité centrale (capacité de tourner autour du code du système d'exploitation, ou seulement une partie, l'accès à la mémoire, aux dispositifs d'entrée / sortie, etc.). .

En dépit d'un système avec un nombre n des processeurs est moins efficace qu'un système avec une seule vitesse du processeur n fois plus souvent un système parallèle est moins cher. Pour les applications avec une grande quantité de calcul, et en particulier pour ceux qui sont divisibles en n fil distinct, le calcul parallèle est une excellente solution. En fait, la plupart des super-ordinateur Récentes sont basées sur une architecture parallèle.

Le chiffrement

Le calcul parallèle, ainsi que dans les différentes branches de mathématiques (Théorie des nombres), Le physique (QCD treillis) Et de la science en général, il est largement utilisé dans cryptanalyse, à savoir l'analyse des textes crypté par Procédé de force brute. Une idée fausse très courante, même parmi les analystes de systèmes, est qu'un ordinateur parallèle est équivalent à la performance comme un ordinateur de série coût égal. En fait, un ordinateur avec 232 circuits AES Il pourrait être des milliards de fois plus vite qu'un ordinateur de série de la même charge. Dans la pratique, la Mémoire de temps trade-off est beaucoup moins pratique temps processeur compromis.

algorithmes

Il ne faut pas penser que vous pouvez obtenir un calcul parallèle efficace mettant simplement côté plus de processeurs à côte et en les reliant à une vitesse suffisante. Dans la pratique, il est très difficile d'obtenir un speedup linéaire, à savoir la performance directement proportionnel au nombre de processeurs dans le système: c'est parce que de nombreux algorithmes sont séquentiels (le La loi d'Amdahl États cette façon plus formelle).

Jusqu'à un certain point, certains calculs peuvent être effectués avec avantage en exploitant la pipeline logiciel lorsque vous ajoutez plusieurs processeurs. Cette méthode divise le travail que dans une ligne d'assemblage: si le calcul peut être divisé en n différentes étapes et importantes, elles peuvent être utilisées avec efficacité n processeurs. Toutefois, si un stade est plus lent que les autres, cela va ralentir le système.

La plupart des algorithmes doivent être réécrites pour tirer profit du 'matériel parallèle. Un programme qui est effectué correctement par une seule CPU pourrait poser des problèmes si elle est effectuée en parallèle: plusieurs copies du même peuvent interférer les uns avec les autres, par exemple en accédant à la même adresse mémoire en même temps. De là, la nécessité d'une planification minutieuse de tirer parti de ce type de systèmes.

'surlinéaire Speedup ': La question d'une machine avec un numéro n meilleure performance des processeurs avec plus de n fois par rapport à une machine avec un seul processeur d'une vitesse similaire était parfois controversée (et a seulement conduit à d'autres tests avec référence), Mais il peut être obtenu à partir d'une machine non seulement n fois plus puissant, mais aussi avec plus de mémoire cachette et le système, l'aplatissement de la hiérarchie cache-mémoire sur disque, avec une meilleure gestion de la mémoire par chaque processeur, et avec d'autres dispositifs. Cependant, la qualité de la performance dépend essentiellement de la tâche à accomplir et la possibilité de le diviser entre l'unité de calcul.

liens fil

Les calculateurs parallèles sont structurés comme théorie PRAM (machine à accès aléatoire parallèle). Ce modèle ne tient pas compte des problèmes posés par les connexions entre les unités, mais il est très utile pour obtenir des performances supérieures dans de nombreux cas de calcul parallèle. En fait, la connexion entre l'unité a un rôle très important.

Les processeurs peuvent communiquer entre eux pour résoudre un problème ou fonctionner de manière coordonnée de manière totalement indépendante, parfois sous le contrôle d'un processeur qui leur fournit les données, et il reprend les résultats. Les modes de communication peuvent être: une mémoire partagée, un élément qui agit comme un « standard », un bus partagé ou d'un réseau de différents types et technologies. Les systèmes basés sur des réseaux interconnectés nécessitent une routeur à communiquer des éléments non liés directement; Parfois, il y a une hiérarchie entre l'unité de calcul. la mémoire peut être individuelle pour le processeur partagé localement ou globalement.

Logiciel parallèle

de nombreux logiciels ont été développés pour programmer des ordinateurs parallèles, à la fois en le système d'exploitation et au niveau de langage de programmation. Ces systèmes doivent contenir les mécanismes nécessaires pour diviser le calcul entre les unités. Ceux-ci peuvent supporter un parallélisme implicite (Le système divise le problème et fournit des processeurs automatiquement) ou explicite (Le programmeur doit entrer dans l'index pour diviser votre code). La plupart du logiciel actuel permet un parallélisme « de monolivellare », alors que le parallélisme « multi-niveaux » (ou encore « imbriquées ») permet de diviser en outre un code déjà exécuté en parallèle. Il est courant d'utiliser les variables pour permettre le calcul parallèle d'éviter les conflits entre les unités.

Avec la charge de travail d'équilibrage essayant de garder tous les processeurs occupés à déplacer les emplois occupés occupés par un CPU à un libre.

langues

  • Unifiée parallèle C
  • Handel-C
  • Occam
  • High Performance Fortran
  • étoilezézayer (ConnectionMachine / symbolics)

API et bibliothèques

bibliographie

Articles connexes

D'autres projets

liens externes