Convergence des architectures parallèles

Des machines parallèles ont été développées avec plusieurs architectures distinctes. Dans cette section, nous aborderons différentes architectures informatiques parallèles et la nature de leur convergence.

Architecture de communication

L'architecture parallèle améliore les concepts conventionnels de l'architecture informatique avec l'architecture de communication. L'architecture informatique définit les abstractions critiques (comme la limite utilisateur-système et la limite matériel-logiciel) et la structure organisationnelle, tandis que l'architecture de communication définit les opérations de base de communication et de synchronisation. Il aborde également la structure organisationnelle.

Le modèle de programmation est la couche supérieure. Les applications sont écrites dans un modèle de programmation. Les modèles de programmation parallèle incluent -

  • Espace d'adressage partagé
  • Message passant
  • Programmation parallèle de données

Shared addressla programmation est comme l'utilisation d'un babillard électronique, où l'on peut communiquer avec une ou plusieurs personnes en affichant des informations à un endroit particulier, qui est partagé par toutes les autres personnes. L'activité individuelle est coordonnée en notant qui fait quelle tâche.

Message passing est comme un appel téléphonique ou des lettres où un destinataire spécifique reçoit des informations d'un expéditeur spécifique.

Data parallella programmation est une forme organisée de coopération. Ici, plusieurs personnes effectuent une action sur des éléments séparés d'un ensemble de données simultanément et partagent des informations à l'échelle mondiale.

La memoire partagée

Les multiprocesseurs à mémoire partagée sont l'une des classes les plus importantes de machines parallèles. Il offre un meilleur débit sur les charges de travail multiprogrammées et prend en charge les programmes parallèles.

Dans ce cas, tous les systèmes informatiques permettent à un processeur et à un ensemble de contrôleurs d'E / S d'accéder à un ensemble de modules de mémoire par une certaine interconnexion matérielle. La capacité de mémoire est augmentée en ajoutant des modules de mémoire et la capacité d'E / S est augmentée en ajoutant des périphériques au contrôleur d'E / S ou en ajoutant un contrôleur d'E / S supplémentaire. La capacité de traitement peut être augmentée en attendant qu'un processeur plus rapide soit disponible ou en ajoutant plus de processeurs.

Toutes les ressources sont organisées autour d'un bus mémoire central. Grâce au mécanisme d'accès au bus, n'importe quel processeur peut accéder à n'importe quelle adresse physique du système. Comme tous les processeurs sont équidistants de tous les emplacements mémoire, le temps d'accès ou la latence de tous les processeurs est le même sur un emplacement mémoire. C'est appelésymmetric multiprocessor.

Architecture de transmission de messages

L'architecture de passage de messages est également une classe importante de machines parallèles. Il assure la communication entre les processeurs sous forme d'opérations d'E / S explicites. Dans ce cas, la communication est combinée au niveau des E / S, au lieu du système de mémoire.

Dans l'architecture de passage de messages, la communication utilisateur est exécutée à l'aide d'appels de système d'exploitation ou de bibliothèque qui effectuent de nombreuses actions de niveau inférieur, qui incluent l'opération de communication réelle. Il en résulte une distance entre le modèle de programmation et les opérations de communication au niveau matériel physique.

Send et receiveest les opérations de communication de niveau utilisateur les plus courantes dans le système de transmission de messages. Envoyer spécifie un tampon de données local (qui doit être transmis) et un processeur distant de réception. Receive spécifie un processus d'envoi et un tampon de données local dans lequel les données transmises seront placées. Dans l'opération d'envoi, unidentifier ou un tag est attaché au message et l'opération de réception spécifie la règle de correspondance comme une étiquette spécifique d'un processeur spécifique ou n'importe quelle étiquette de n'importe quel processeur.

La combinaison d'un envoi et d'une réception correspondante complète une copie de mémoire à mémoire. Chaque extrémité spécifie son adresse de données locale et un événement de synchronisation par paire.

Convergence

Le développement du matériel et des logiciels a effacé la frontière claire entre la mémoire partagée et les camps de transmission de messages. Le passage de messages et un espace d'adressage partagé représentent deux modèles de programmation distincts; chacun donne un paradigme transparent pour le partage, la synchronisation et la communication. Cependant, les structures de base de la machine ont convergé vers une organisation commune.

Traitement parallèle des données

Une autre classe importante de machines parallèles est appelée de manière variée: matrices de processeurs, architecture parallèle de données et machines à instruction multiple à instruction unique. La principale caractéristique du modèle de programmation est que les opérations peuvent être exécutées en parallèle sur chaque élément d'une grande structure de données régulière (comme un tableau ou une matrice).

Les langages de programmation parallèles de données sont généralement appliqués en visualisant l'espace d'adressage local d'un groupe de processus, un par processeur, formant un espace global explicite. Comme tous les processeurs communiquent ensemble et qu'il existe une vue globale de toutes les opérations, un espace d'adressage partagé ou un passage de messages peuvent être utilisés.

Problèmes de conception fondamentaux

Le développement d'un modèle de programmation ne peut à lui seul augmenter l'efficacité de l'ordinateur, ni le développement du matériel à lui seul. Cependant, le développement de l'architecture informatique peut faire la différence dans les performances de l'ordinateur. Nous pouvons comprendre le problème de conception en nous concentrant sur la manière dont les programmes utilisent une machine et sur les technologies de base fournies.

Dans cette section, nous discuterons de l'abstraction de la communication et des exigences de base du modèle de programmation.

Abstraction de la communication

L'abstraction de la communication est la principale interface entre le modèle de programmation et l'implémentation du système. C'est comme le jeu d'instructions qui fournit une plate-forme pour que le même programme puisse s'exécuter correctement sur de nombreuses implémentations. Les opérations à ce niveau doivent être simples.

L'abstraction de la communication est comme un contrat entre le matériel et le logiciel, qui permet à l'autre la flexibilité de s'améliorer sans affecter le travail.

Exigences du modèle de programmation

Un programme parallèle a un ou plusieurs threads fonctionnant sur des données. Un modèle de programmation parallèle définit quelles données les threads peuventname, lequel operations peut être effectuée sur les données nommées, et quel ordre est suivi par les opérations.

Pour confirmer que les dépendances entre les programmes sont appliquées, un programme parallèle doit coordonner l'activité de ses threads.