Classification des architectures parallèles

publicité
Chapitre I introduction générale
1. Introduction
Dans la plus parts des cas le calcule parallèle est considéré comme un moyen
de réduire le temps d’exécution des applications qui nécessitent une grande quantité de
calcul.
La conception et l’implémentation d’un algorithme parallèle est plus difficiles
que celle d'un algorithme séquentiel.
L'objectif du cours est de donner à l'étudiant le savoir et les techniques pour
concevoir un algorithme parallèle sur une architecture parallèle cible.
2. Motivations





Limites théoriques et réels des architectures traditionnelles.
Minimisation du temps d'exécution des applications.
Résoudre des nouveaux problèmes, des nouvelles instances des
problèmes.
Exploitation des plateformes déjà existant.
Accroitre la cohérence des systèmes.
3. Definitions
3.1.
Calcul parallèle
C’est l'utilisation simultanée des ressources multiples de calcul (processeurs)
pour résoudre un problème informatique.
3.2.
Un calculateur parallèle
Un ensemble des processeurs qui peuvent travailler d’une façon coopérative
pour résoudre un problème informatique. Cette définition est assez large pour inclure
les :

supers calculateurs machines avec unité centrale multiprocesseurs

Réseaux des postes de travail. Ensemble des ordinateurs relies avec
un lien spécialisé ou avec un simple réseau.
3.3.
Un programme parallèle
Est un programme qui s’exécute sur un calculateur parallèle. Un ensemble
des parties discrètes qui peuvent être exécutées concurremment. Chaque partie est
une série d'instructions.
4. Classification des architectures parallèles
Dans une architecture d’un ordinateur simple qui est proposée par VAN
NYOUMEN on trouve une mémoire et un processeur, le processeur exécute les
instructions situent à la mémoire d’une manière séquentiel l’une après l’autre. Mais
dans un contexte parallèle on trouve plusieurs pros et mémoires exécutants un ou
plusieurs programmes en parallèle sur un ou plusieurs blocs de données. Par
conséquent il existe différentes manières de classifier les ordinateurs parallèles.
4.1.
Classification de Flynn
Une des classifications plus employées couramment, en service depuis 1966,
La taxonomie de Flynn distingue des architectures d'ordinateur de multiprocesseur
selon la façon dont elles peuvent être classifiées le long des deux dimensions
indépendantes de l'instruction et des données. Chacune de ces dimensions peut avoir
seulement un de deux états possibles : Simple ou multiple, on trouve quatre calasses
SISD, SIMD, MISD et MIMD.
4.1.1. Les machines SISD
Cette classe représente les ordinateurs séquentiels (machine de VN). À
chaque cycle d’horloge une seule instruction est exécutée sur un seul flux de données ;
ce type est caractérisé par san déterminisme.
4.1.2. Les machines SIMD
Ce type représente une classe importante des architectures, parallèle où Tous
les processeurs exécutent la même instruction à n'importe quel cycle d’horloge et
chaque processeur peut traiter une donnée différente. Ce type d’architecture est adapté
aux problèmes ayant un degré élevé de régularité telle que le traitement d'image.
Cette architecture est caractérisée par son synchronisme et déterminisme.
4.1.3. Les machines MISD
Très peu de machines suivent cette architecture, elle peut être considérer lors
de la création d’un modèle adapté à une situation particulière, par exemple de multiples
transformations géométrique appliquée à un même polygone.
4.1.4. Les machines MIMD
Là chaque unité de traitement peut exécuter un flux déférant d’instruction sur
un flux déférant de données, ce type est le plus avancé et le plus répondu. La plus part
des machines parallèles actuelles suivent cette architecture.
Cette architecture elle peut être déterministe ou non déterministe. Elle peut
être synchrone ou asynchrone
4.2.
Classification des mémoires des machines parallèles
Une autre classification se base sur le type de la mémoire. On trouve
généralement deux classes des machines parallèles : les machines à mémoire
partagée et les machines à mémoire distribuée.
4.2.1. Mémoire partagée
Tous les processeurs ont la capacité à adresser l'espace mémoire entier en
tant qu'espace d’adresses globale. La communication entre les tâches est réalisée par
les opérations de lecture et écriture sur la mémoire partagée.
4.2.2. Mémoire distribuée
Chaque processeur a sa propre mémoire locale. Chaque processeur a le droit
et la capacité d’adresser uniquement sa mémoire locale, la communication entre les
processus qui sur différents processeurs est effectuée par des messages passés par la
communication réseau.
5. Modèles et outils de programmations parallèles
Il y a plusieurs modèles de programmation parallèle d'usage courant citant :
Le modèle de programmation a mémoire partagée
Le modèle de passage de message
Le modèle de Données parallèles
5.1.
Parallélisme De Données
Ce modèle de parallélisme est utilisé pour l'exploitation de la simultanéité qui
se produite de l'application du même flux d’instructions aux différents éléments d'une
structure de données. Par exemple, l’addition de 2 à tous les éléments d’une rangée, ou
l’incrémentation du salaire de tous les employés avec 5 ans de service.
Les programmes de parallélisme de données sont caractérisés par les
caractéristiques suivantes :

chaque opération sur chaque élément d'informations peut être considérée
comme une tâche indépendante.

La granularité normale d'un calcul donnée-parallèle est petite.

Le concept de localité des données ne manifeste pas naturellement.
Noté que les compilateurs de parallélisme de données exigent souvent du
programmeur de fournir des informations au sujet de la façon dont les données doivent
être réparties sur les processeurs, c.-à-d. de la façon dont les données doivent être
divisées sur les tâches. Après le compilateur peut traduire le programme de données
parallèles
sous
forme
de
SIMD,
et
produire
un
code
de
communication
automatiquement.
5.2.
Mémoire Partagée
Dans le modèle de programmation a Mémoire Partagée les tâches partagent
un espace d’adressage commun. Chaque tache (processus) peut exécuter les
opérations de lecture ou d’écriture d’une manière asynchrone. Le control d’accès à la
mémoire partagée est assuré avec les mécanismes d’exclusion mutuelle tels que les
verrous et les sémaphores.
L’avantage de ce modèle est que pour le programmeur il n'y a aucun besoin
d'indiquer explicitement comment faire communiquer les données des producteurs aux
consommateurs, ceci est à cause de l’absence de la notion de l’ownership de données.
Cependant la compréhension et le maintien de la localité des données est plus difficile,
par conséquent il est plus difficile d'écrire des programmes déterministes.
Dans un environnement avec mémoire distribuée on trouve une autre variété
c’est le modèle de la mémoire virtuelle partagée (Virtual Shared Memory VSM).
La mémoire distribuée partagée (DSM) est une extension du modèle de
programmation a mémoire partagée sur les systèmes qu’ils n’ont pas une mémoire
physiquement partagée. L’accès se fait à laide des opérations de lecture et écriture
habituelles.
Contrairement au passage de message, dans un système de DSM un
processus qui veut effectuer des opérations sur quelques données n'a pas besoin de
connaître son endroit ; le système les cherchera et trouvera automatiquement.
Dans la plupart des systèmes de DSM, des données partagées peuvent être
repliées pour augmenter le parallélisme et l'efficacité des applications.
Tandis que les machines parallèles scalable sont la plupart du temps basées
sur la mémoire distribuée, beaucoup d'utilisateurs trouvent que plus facile d'écrire des
programmes parallèles en utilisant un modèle de programmation de shared-mémoire.
Ceci fait à DSM un modèle très prometteur, s’il est mis en application avec efficacité.
5.3.
Passage de message
Le
modèle
de
programmation
parallèle
passage
de
message
est
probablement le modèle aujourd'hui le plus répandu de programmation parallèle.
Les programmes Message-passing créent des tâches multiples, chaque
tâche encapsule ses données locales et chaque tâche est identifiée par un nom unique,
et les tâches agissent l'un sur l’autre en envoyant et en recevant des messages à et des
tâches appelées.
Théoriquement ce modèle permet la création dynamique des tâches,
l'exécution des plusieurs tâches par un processeur, ou l'exécution de différents
programmes par différentes tâches. Cependant, dans la pratique la plupart des
systèmes passage de message créent un nombre fixe de tâches identiques au
démarrage de programme et ne permettent pas aux tâches d’être créées ou détruites
pendant l'exécution du programme, P2PMPI est un exemple typique.
On dit que ces systèmes mettent en application un modèle de programmation
programme simple données multiples (SPMD) parce que chaque tâche exécute le
même programme sur des données différentes. Ce modèle est suffisant pour un
éventail
des
problèmes
de
programmation
parallèle
mais
gêne
quelques
développements d’algorithme parallèles.
De point de vu programmation ce modèle immerge ce forme des bibliothèques
des sous programmes. Ces bibliothèques fournissent des routines pour l’initialisation et
la configuration de l'environnement de transmission de messages aussi bien que l’envoi
et la réception des paquets des données.
Actuellement, deux bibliothèques de passage de message de haut niveau
sont les plus populaires pour les applications scientifiques et industrielles :

Les PVM (machine virtuelle parallèle) du laboratoire national d'Oak Ridge

MPI (message passant l'interface) définis par le forum de MPI.
Téléchargement