WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Environnements de grappes de calcul intensif sur réseaux d'entreprise: déploiement, exploitation et performances

( Télécharger le fichier original )
par Franklin TCHAKOUNTE
Université de Ngaoundéré - Master en Systèmes et Logiciels en Environnements Distribués 2010
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Conclusion

Dans ce chapitre on a vu comment représenter des applications parallèles en utilisant des graphes de précédence et de flots de données. Un autre plus général que nous adopterons par la suite a été présenté : le graphe de tâches. Il contient les caractéristiques des deux graphes précédemment cités mais de manière plus fine. Après avoir présenté de manière succinte les modèles d'ordonnancement avec délai et sans délai de communications sur des graphes, nous avons décrit les modèles d'exécution les plus souvent employés qui donnent une prédiction sur le temps d'exécution parallèle. Les modèles sans délais de communication sont très loin de la réalité concernant les machines à mémoire distribuée alors que les modèles avec délai sont raisonnablement plus proches de la réalité bien qu'ils ne tiennent pas compte des paramètres comme le débit du processeur, la latence de communication entre des processeurs distants. Les modèles LogP et BSP par contre tiennent compte de ces paramètres en plus du nombre d'unités de calcul. Le second utilise également un synchroniseur général après les super-étapes de calcul.

Il ressort des modèles d'exécution qu'on obtient un temps optimal lorsque l'on néglige les temps de communication, mais on s'éloigne du temps optimal lorsque l'on tient compte des délais de communication. Le principe de la duplication de tâches est souvent employée pour réduire les temps d'inactivité des processeurs. Jusqu'ici, les modèles utilisés négligent des éléments importants comme la congestion du réseau pourtant présents dans une architecture MIMD à mémoire distribuée telle que les grappes

3Les communications sont cachées

hétérogènes dans la cadre de l'ordonnancement. Dans le chapitre suivant, nous proposons un modèle d'ordonnancement sous ces architectures.

Chapitre III

GRAPPES HETEROGENES et

ORDONNANCEMENT

N

otre travail a pour objectif de proposer un ordonnancement des tâches issues d'une application parallèle sur une grappe hétérogène en tenant compte de toutes les ressources informatiques présentes. En d'autres termes, étant donnés, l'application parallèle traduite en graphe de tâches et la grappe

hétérogène, il s'agira pour nous de trouver un bon placement des tâches.

Il convient donc de bien maîtriser d'une part notre architecture MIMD donc de cerner ses caractéristiques en termes de ressources logicielles( les bibliothèques de communication ) et matérielles ( le réseau d'interconnexion, les noeuds, les équipements réseaux etc.) et d'autre part le graphe de tâches (les précédences, les volumes de données etc..) pour répartir efficacement les tâches de notre application entre les différentes unités de traitement et de traiter chacune en parallèle.

1 Eléments de coût

Les grappes hétérogènes impliquent de prendre en compte plusieurs facteurs de coût pour une bonne exploitation. Parmi ces facteurs, on peut citer les stations de travail, les éléments d'interconnexion entre eux, la technologie du réseau utilisé et le système d'exploitation et la pile réseau.

1.1 Les stations de travail

Les machines constituants la grappe peuvent être des machines constituées de plusieurs processeurs ou des monoprocesseurs. Ces machines peuvent avoir des mémoires de capacités de stockage différentes(256 Mo, 128 Mo etc..).

1.2 Les équipements réseau

Les équipements permettant de faire transiter les données entre les stations de travail peuvent être :

- Les commutateurs

- Les routeurs

- Les concentrateurs

1.2.1 Les commutateurs

Ce sont des équipements de couche 2 du modèle OSI qui filtrent, acheminent et font circuler les trames ( figure III-1 ) en fonction de l'adresse de destination de chaque trame.

Les commutateurs utilisent des adresses MAC pour orienter les communications réseau via leur matrice de commutation vers le port approprié et en direction du noeudde destination. La matrice de commutation désigne les circuits intégrés et les éléments de programmation associés qui permettent de contrôler les chemins de données par le biais du commutateur. Pour qu'un commutateur puisse connaître les ports à utiliser en vue de la transmission d'une trame de monodiffusion, il doit avant tout savoir quels noeuds existent sur chacun de ses ports.

Un commutateur détermine le mode de gestion des trames de données entrantes à l'aide d'une table d'adresses MAC. Il crée sa table d'adresses MAC en enregistrant les adresses MAC des noeuds connectés à chacun de ses ports.

Dès que l'adresse MAC d'un noeudspécifique sur un port spécifique est enregistrée dans la table d'adresses, le commutateur peut alors envoyer le trafic destiné au noeudvers le port mappé à ce dernier pour les transmissions suivantes.

Lorsqu'un commutateur reçoit une trame de données entrantes et que l'adresse MAC de destination ne se trouve pas dans la table, il transmet la trame à l'ensemble des ports, à l'exception du port sur lequel elle a été reçue. Dès que le noeudde destination répond, le commutateur enregistre l'adresse MAC de ce dernier dans la table d'adresses à partir du champ d'adresse source de la trame. Dans le cadre de réseaux dotés de plusieurs commutateurs interconnectés, les tables d'adresses MAC enregistrent plusieurs adresses MAC pour les ports chargés de relier les commutateurs qui permettent de voir au-delà du noeud. En règle générale, les ports de commutateur utilisés pour connecter entre eux deux commutateurs disposent de plusieurs adresses MAC enregistrées dans la table d'adresses MAC.

Figure III.1 - Trame ethernet

Ils transmettent des trames Ethernet sur un réseau selon différents modes : commutation Store and Forward (stockage et retransmission) ou cut-through (direct).

Commutation store and forward. Lorsque le commutateur reçoit la trame, il stocke les données dans des mémoires tampons jusqu'à ce qu'il reçu l'intégralité de la trame. Au cours de ce processus de stockage, le commutateur recherche dans la trame des informations concernant sa destination. Dans le cadre de ce même processus, le commutateur procède à un contrôle d'erreur à l'aide du contrôle par redondance cyclique (CRC) de l'en-queue de la trame Ethernet. Le contrôle par redondance cyclique (CRC) a recours à une formule mathématique fondée sur le nombre de bits (de uns) dans la trame afin de déterminer si la trame reçue possède une erreur. Une fois l'intégrité de la trame confirmée, celle-ci est transférée via le port approprié vers la destination. En cas d'erreur détectée au sein de la trame, le commutateur ignore la trame. L'abandon des trames avec erreurs réduit le volume de bande passante

consommé par les données altérées.

Commutation cut-through. Dans le cas de la commutation cut-through, le commutateur agit sur les données à mesure qu'il les reçoit, même si la transmission n'est pas terminée. Le commutateur met une quantité juste suffisante de la trame en tampon afin de lire l'adresse MAC de destination et déterminer ainsi le port auquel les données sont à transmettre. L'adresse MAC de destination est située dans les six premiers octets de la trame à la suite du préambule. Le commutateur recherche l'adresse MAC de destination dans sa table de commutation, détermine le port d'interface de sortie et transmet la trame vers sa destination via le port de commutateur désigné. Le commutateur ne procède à aucun contrôle d'erreur dans la trame.

Il existe deux variantes de la commutation cut-through:

- Commutation fast-forward : ce mode de commutation offre le niveau de latence le plus faible. La commutation fast-forward transmet un paquet immédiatement après la lecture de l'adresse de destination. Du fait que le mode de commutation fast-forward entame la transmission avant la réception du paquet tout entier, il peut arriver que des paquets relayés comportent des erreurs. Cette situation est occasionnelle et la carte réseau de destination ignore le paquet défectueux lors de sa réception. En mode fast-forward, la latence est mesurée à partir du premier bit reçu jusqu'au premier bit transmis. La commutation fast-forward est la méthode de commutation cut-through classique.

- Commutation fragment-free : en mode de commutation fragment-free, le commutateur stocke les 64 premiers octets de la trame avant la transmission. La commutation fragment-free peut être considérée comme un compromis entre la commutation store andforward et la commutation cut-through. La raison pour laquelle la commutation fragment-free stocke uniquement les 64 premiers octets de la trame est que la plupart des erreurs et des collisions sur le réseau surviennent pendant ces 64 premiers octets. La commutation fragment-free tente d'améliorer la commutation cut-through en procédant à un petit contrôle d'erreur sur les 64 premiers octets de la trame afin de s'assurer qu'aucune collision ne s'est produite lors de la transmission de la trame. La commutation fragment-free offre un compromis entre la latence élevée et la forte intégrité de la commutation store and forward; et la latence faible et l'intégrité réduite de la commutation cut-through.

La commutation cut-through est bien plus rapide que la commutation store and forward, puisque le commutateur n'a ni à attendre que la trame soit entièrement mise en mémoire tampon, ni besoin de réaliser un contrôle d'erreur. En revanche, du fait de l'absence d'un contrôle d'erreur, elle transmet les trames endommagées sur le réseau. Les trames qui ont été altérées consomment de la bande passante au cours de leur transmission. La carte de réseau de destination ignore ces trames au bout du compte.

De plus, les commutateurs peuvent être symétriques ou asymétriques. La commutation symétrique offre des connexions commutées entre les ports dotés de la même bande passante, notamment tous les ports 100Mbits/s ou 1000Mbits/s. Un commutateur de réseau local asymétrique assure des connexions commutées entre des ports associés à des bandes passantes différentes, par exemple entre une combinaison de ports de 10Mbits/s, 100Mbits/s et 1000Mbits/s.

Un commutateur asymétrique dispose donc de débit différents sur chacun de ses ports.

1.2.2 Les concentrateurs

Ce sont des équipements réseau d'interconnexion de couche 1 du protocole OSI qui contrairement aux switchs sont moins intelligents. Ils n'ont aucune fonction de commutation, de traitement de données. Lorsqu'ils reçoivent un signal (0 ou 1), ils ne savent à qui transmettre l'information; ils propagent l'information sur tous les ports y compris le port de réception.

1.2.3 Les routeurs

Cet équipement de couche 3 du protocole OSI maintient une table de routage contenant des routes de sortie vers d'autres réseaux. Lorsqu'il recoit message, son rôle est choisir le meilleur chemin pour parvenir au destinataire. Ce choix s'éffectue à l'aide des algorithmes de routage très complexes : la route la plus courte n'est pas forcément la meilleure. Ce qui importe en réalité, c'est la somme des temps de transit pour une destination donnée qui, elle même, est proportionnelle à l'importance du traffic et au nombre de messages qui attendent d'être transmis sur les différentes lignes.

1.3 Technologie réseau

Les communications dans un réseau local commuté surviennent sous trois formes : monodiffusion, diffusion et multidiffusion :

- Monodiffusion : communication dans laquelle une trame est transmise depuis un hôte vers une destination spécifique. Ce mode de transmission nécessite simplement un expéditeur et un récepteur. La transmission monodiffusion est la forme de transmission prédominante adoptée sur les réseaux locaux et sur Internet. HTTP, SMTP, FTP et Telnet sont des exemples de transmission monodiffusion.

- Diffusion : communication dans laquelle une trame est transmise d'une adresse vers toutes les autres adresses existantes. Un seul expéditeur intervient dans ce cas, mais les informations sont transmises à tous les récepteurs connectés. La transmission par diffusion est un incontournable si vous envoyez le même message à tous les périphériques sur le réseau local. Un exemple de diffusion est la requête de résolution d'adresse que le protocole ARP (Address Resolution Protocol) transmet à tous les ordinateurs sur un réseau local.

- Multidiffusion : communication dans laquelle une trame est transmise à un groupe spécifique de périphériques ou de clients. Les clients de transmission multidiffusion doivent être membres d'un groupe de multidiffusion logique pour recevoir les informations. Les transmissions vidéo et vocales employées lors de réunions professionnelles collaboratives en réseau sont des exemples de transmission multidiffusion.

Selon chacune des formes, les liens peuvent être de latence et débit différents. Typiquement, si on a trois machines M1 , M2 , M3 reliées via un commutateur S1, le temps de transmission de M1 à M2 peut être différent du temps de M1 à M3 par exemple. Cela peut être dû aux congestions intervenues sur chaque liaison ou même aux performances des machines.

1.4 Système d'exploitation et pile réseau

Les ordinateurs constituants la grappe peuvent avoir des systèmes d'exploitation différents avec une version précise.Comme exemple, Ubuntu 9.04, Windows Vista, Solaris 9 etc.. Ces systèmes sont constitués de module de gestion des communications. Dans la suite nous donnons une description générale de la pile réseau utilisée pour les communications entre deux hôtes.

Dans un système monoprocesseur, la plupart des communications inter-processus supposent l'existence d'une mémoire partagée. Dans le cas d'une grappe, le mémoire est distribuée et les communications se font par échange de messages. Quand le processus A veut communiquer avec le processus B, il commence par élaborer un message dans son propre espace d'adressage. Il exécute ensuite un appel système qui va prendre le message et l'envoyer à B via le réseau. L'émetteur et le récepteur doivent être en accord sur de nombreuses choses; depuis les détails de bas niveau de la transmission des bits jusqu'à ceux de plus haut niveau de la représentation des données. Pour résoudre plus facilement ces problèmes, l'ISO (organisation internationale de Normalisation) a défini un modèle de référence qui identifie clairement les différents niveaux d'une communication. Ce modèle est le modèle OSI (Open Systems Interconnection) qui comporte sept couches:

1. la couche physique : c'est la couche la plus basse. Elle est concernée par la normalisation des interfaces électriques et mécaniques et des signaux.

2. la couche liaison : Son rôle primordial est de détecter et traiter les erreurs dans les réseaux de communication.

3. la couche réseau : Son rôle est de choisir le meilleur chemin pour faire transiter un message.

4. la couche transport : Son rôle est de gérer le service de connexion fiable entre l'expéditeur et le destinataire.

5. la couche session: C'est une version enrichie de la couche transport. Elle fournit des dialogues de contrôle pour mémoriser les connexions en cours ainsi que des mécanismes de synchronisation.

6. la couche présentation : Elle s'occupe de la signification des bits.

7. la couche application: c'est la couche la plus haute. Elle comporte un ensemble de protocoles divers pour gérer des applications utilisateurs comme le transfert de fichiers.

Dans ce modèle, la communication est partagée en ces sept couches. L'ensemble des protocoles utilisés est appelé suite de protocoles ou pile de protocoles. Quand le processus A de la machine 1 veut communiquer avec le processus B de la machine 2, il élabore un message et passe ce message à la couche application de la machine 1. Le logiciel de la couche application ajoute une en-tête au début du message et passe le message qui en résulte à la couche présentation au travers de l'interface des couches 6/7. La couche présentation rajoute son en-tête et passe le résultat à la couche session et ainsi de suite. Certaines couches ne se contentent pas d'ajouter des informations en début du message, elles en ajoutent également à la fin. Quand le message arrive en bas de la pile, la couche physique transmet le message qui ressemble alors à ce qui est décrit à la figure III.2.

Quand le message arrive sur la machine 2, il remonte les couches et chacune de celles-ci prend et examine l'en-tête qui lui correspond. Le message finit par arriver au récepteur, c'est à dire que la machine 2 peut alors répondre en suivant le chemin inverse.

Si on examine encore notre cas de tout à l'heure entre la machine 1 et la machine 2, l'existence des en-têtes implique une perte d'éfficacité considérable. Chaque fois qu'un message est envoyé, il doit être traité par une demi douzaines de couches. Chacune d'entre elles génère et ajoute un en-tête dans le chemin descendant ou bien retire et traite dans le chemin ascendant. Tout ce travail prend du temps. La perte d'éfficacité due à la gestion de la pile de protocoles n'est pas négligeable pour un système qui utilise un réseau local. On perd réellement de temps UC1 pour cette gestion que le débit effectif est souvent une fraction de la capacité nominale du réseau.

Cette description est variable selon des systèmes d'exploitation.

'Unité centrale

Figure III.2 - Un message classique tel qu'il transite sur le réseau

Nous voyons donc que chacun des éléments de coût ci-haut sont non uniformes et complexes dans leur fonctionnement. Chacun d'eux induit des surcoûts considérables.

Les modèles d'ordonnancement traditionnels présentés au chapitre précédent ne sont pas réellement adaptés aux grappes hétérogènes puisqu'ils ne tiennent pas compte d'un grand nombre de paramètres cités ci-haut. Notamment, le coût de gestion de la pile de protocoles est toujours considéré comme négligeable, la congestion du réseau est négligée (ces modèles supposent généralement que le réseau est parfait). Ils nécessitent par conséquent d'être plus affinés. Nous développons dans la suite un modèle plus fin de placement des tâches sur les ressources de calcul sur notre architecture. Nous donnons également une modélisation de cette dernière.

2 Proposition d'un modèle d'ordonnancement sur les grappes hétérogènes

Notre système d'ordonnancement comprend : le graphe de tâches, la grappe hétérogène et l'ordonnancement proprement dit dans lequel des critères de performance et de validité seront détaillés. Ces composantes sont présentées plus formellement.

2.1 Modélisation de l'architecture hétérogène

Notre environnement hétérogène peut donc être modélisé par un graphe Gr = (Vr, Er) que nous appellons graphe de la grappe. Vr = {P1, P2, ..., Pm} est l'ensemble des unités de calcul. Er est l'ensemble des liens de communication entre les noeuds.

1. m noeuds Pi, 1 < i < m caractérisés par: - Leur puissance Si,

- Leur capacité mémoire Mi,

- L'impact du protocole réseau Ri.

2. Chaque arc (i, j) de Er connectant deux noeuds Pi et Pj de Vr est caractérisé par: - Sa latence lij,

- Son débit dij.

2.2 Graphe de tâches.

Les caractéristiques de notre application parallèle sont définis comme les 4-uplets (T,<,D,A) ainsi qu'il suit :

- T=t1,...,tn qui est l'ensemble des tâches à exécuter.

- < est l'ordre partiel défini sur T qui spécifie les contraintes sur l'ordre de précédence entre les tâches. C'est à dire ti < tj veut dire que ti doit être complètement exécutée avant que tj ne débute son exécution.

- D est une matrice n x n de données communiquées entre les tâches, où dataij ~ 0 est le volume des données réquis à transmettre de la tâche ti à la tâche tj, 1 < ti, tj < n.

- A un vecteur de taille n qui représente l'ensemble des coûts des chaque tâche. C'est à dire, cij > 0 est le coût en calcul de la tâche ti sur le processeur Pj, 1 ti, tj n.

Le graphe de tâche (T,E) est acyclique où E est l'ensemble des arcs.

Un arc (ti,tj) entre deux tâches ti et tj spécifie la relation de précédence entre ti et tj. A chaque sommet ti est associé son temps de calcul qui représente le nombre d'instructions ou d'opérations présentes dans la dite tâche. A Chaque arc (ti,tj) connectant les tâches ti et tj est associé la taille des données dataij, c'est à dire la taille du message de ti à tj.

Ordonnancer les tâches revient donc à répartir les tâches sur la grappe en respectant les contraintes de précédence entre elles.

2.3 L'ordonnancement.

Un ordonnancement f prend en entrée: - Le graphe de grappe Gr = (Vr,Er),

- Le graphe de tâches G = (V, E) Plus formellement,

- f : V -? Vr X [0,00) Ti -? (Pj,s)

f(Ti) = (Pj, t) signifie que la tâche Ti sera traitée par le processeur Pj au temps t.

- F inTim est le temps de fin d'exécution de la tâche Ti sur le processeur Pm.F inTim = sim + cim sim est son temps de début d'exécution sur le processeur Pm.

2.4 Modéle des communications

Une tâche est considérée comme prête si tous ses prédécesseurs ont terminé leur éxécution et que toutes les données utiles calculées par ses prédécesseurs ont été acheminées dans la mémoire locale du processeur où vont avoir lieu les calculs.

Deux tâches d'un arc du graphe peuvent être allouées au même processeur ou non. Lorsque nous sommes dans le premier cas, cela veut dire que le coût de communication de données est identique à celui d'un accès à la mémoire locale puisque les données nécéssaires à l'exécution des tâches sont présentes. Ce coût est négligeable et est considéré égal à zéro. Lorsque nous sommes dans le deuxième cas, le coût de communication de données est le temps de transfert des données nécessaires à la tâche seconde pour débuter son exécution.

Plus formellement, Si une tâche Ti ( ordonnançée sur Pm ) doit communiquer les données à l'un de ses successeurs Tj ( ordonnançée sur Pn ), le coût est modéliser par :

1

0 si Pm = Pn

C(Tim, Tjn) = lmn + dataij × 1

dmn sinon.

La date de début d'exécution de Tj est donc sjn = F inTim + C(Tim, Tjn).

Les problèmes NP-complet sont des problèmes qui sont très difficilement solubles en temps polynomial. Il ya un bon nombre de problèmes qui sont équivalents en complexité et forment la classe des problèmes NP-complets. Cette classe inclut plusieurs problèmes classiques de combinatoire, de théorie de graphe, et d'informatique comme le problème du voyageur de commerce, le problème du circuit hamiltonien, le problème d'affectation etc. Les meilleurs algorithmes connus pour ces problèmes peuvent avoir une complexité exponentielle avec certaines entrées. La complexité exacte de ces problèmes NP-complets reste un problème ouvert en informatique théorique. Soit tous ces problèmes ont des solutions en temps polynomial ou aucun d'entre eux n'a une telle solution.

Il a été prouvé que le problème d'ordonnancement[6] d'un ensemble de m tâches sur n processeurs identiques est NP-Complet en tenant compte des communications entre les processeurs. Nous avons choisi d'aller vers une solution heuristique permettant d'avoir un bon ordonnancement.

2.5 Idée Générale

Les points suivants constituent l'idée générale à appliquer lorsque l'on doit effectuer une instance d'ordonnancement f comme décrit précédemment.

1. Exécuter les tâches les plus longues sur les processeurs les plus rapides.

2. Exécuter les tâches qui communiquent beaucoup sur les processeurs disponibles les plus proches.2

3. Exécuter les tâches qui communiquent un gros volume de données sur des processeurs connectés sur des gros réseaux.

4. On exécute Ti sur Pj si :

- le temps de transfert des données de Ti sur Pj est minimal

- Pj est libre à cet instant

- cij est «acceptable »

La décision d'exécuter une tâche ti sur un processeur Pj à un instant donné est donc motivée par: - L'ensemble des tâches prêtes

- Le coût des tâches cij

- Le surcoût des communications

- L'état des processeurs

Le chapitre suivant illustrera sur un exemple cette heuristique.

2Les processeurs interconnectés par des liens de latence faible

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"L'ignorant affirme, le savant doute, le sage réfléchit"   Aristote