La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Christine Morin Thierry Priol

Présentations similaires


Présentation au sujet: "Christine Morin Thierry Priol"— Transcription de la présentation:

1 Christine Morin Thierry Priol
Programmation des grappes de calculateurs pour le calcul haute performance (PGC) Christine Morin Thierry Priol

2 Calendrier Mardi 9 octobre (Christine Morin)
Mardi 6 novembre (Thierry Priol) Mardi 12 novembre (Christine Morin) Mardi 27 novembre (Thierry Priol) Mardi 4 décembre (Thierry Priol)

3 Etude bibliographique
Rédiger une synthèse et présenter les articles étudiés Choix des articles le 9 octobre Synthèse à rendre le 12 novembre Exposés le 12 novembre

4 Articles proposés Beowulf Glunix Mosix Genesis Nomad Gobelins SplitOS
SciOS/FS

5 NOW/Glunix/Beowulf A case for NOW (Networks of Workstations) Thomas E. Anderson, D. Culler, D. Patterson, and the NOW team. IEEE micro février 1995. GLUnix: a Global Layer Unix for a Network of Workstations - Douglas Ghormley, David Petrou, Steven Rodrigues, Amin Vahdat, Thomas Anderson, Software Practice and Experience, 1998. Beowulf: Harnessing the Power of Parallelism in a Pile-of-PCs, D. Ridge, D. Becker, P. Merkey, T. Sterling.

6 Migration de processus et équilibrage de charge (Mosix, Nomad)
Load Balancing and Unbalancing for Power and Performance in Cluster-Based Systems, Eduardo Pinheiro, Ricardo Bianchini, Enrique V. Carrera, Taliver Heath, Proceedings of the Workshop on Compilers and Operating Systems for Low Power, September (Longer version published as Technical Report DCS-TR-440, Department of Computer Science, Rutgers University, May 2001) Amnon Barak and Oren La'adan. The MOSIX Multicomputer Operating System for High Performance Cluster Computing. Journal of Future Generation Computer Systems, 13(4-5): ,March 1998. A. Barak, A. Braverman, memory Ushering in a Scalable Computing cluster, Proc. IEEE Third Int. Conf. On Algorithms and Architecture for Parallel Processing, decembre 97.

7 Migration de threads (Millipede, D-CVM, DSM-PM2)
Thread migration and its applications in distributed shared memory systems, Ayal Itzkovitz, Assaf Schuster, Lea Shalev, The journal of systems and software 42 (1998) pp Thread migration and communication minimization in DSM systems, Kritchalach Thitikamol, Pete Keleher, IEEE proceedings 1998. DSM-thread Gabriel Antoniu and Luc Bougé. DSM-PM2: A portable implementation platform for multithreaded DSM consistency protocols. In Proc. 6th International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS '01), volume 2026 of Lect. Notes in Comp. Science, pages 55–70, San Francisco, April Held in conjunction with IPDPS IEEE TCPP, Springer-Verlag.

8 Plan du cours Introduction Gestion globale de la mémoire
Systèmes de gestion de fichiers parallèles Gestion globale des processus Etude de cas : Gobelins

9 Plan Contexte Exemple de grappes Pourquoi les grappes ?
Pourquoi pas avant ? Définition d’une grappe Projets de recherche Axes de recherche

10 Contexte Work harder Work smarter Get help”
Pfister [In search of clusters,1998] “3 ways to improve performance : Work harder Work smarter Get help” Work harder : processeurs plus rapides Work smarter : algorithmique Get help : parallélisme/distribution

11 Exemple 1 Serveurs de fichiers Utilisateur Serveurs de calcul
IBM Watson Research Central Compute Cluster The farm Serveurs de fichiers LAN privé Utilisateur Maître Serveurs de calcul

12 Exemple 1 Grappe de 22 stations de travail haute performance
Grappe apparaît comme une seule machine connexion à la grappe (pas une machine individuelle) le maître choisit automatiquement le nœud de calcul le moins chargé

13 Exemple 1 Un programme peut s’exécuter sur un nœud quelconque
système de gestion de fichier distribué conventions de montage disque local d’un serveur de calcul système pagination /tmp

14 Exemple 1 Noeuds spécialisés Nœuds de calcul standard Un nœud maître
passerelle entre le réseau local d’entreprise et le réseau local privé de la grappe Deux nœuds serveurs de fichiers 15 Goctets de disque chacun Nœuds de calcul standard 512 Moctets de mémoire chacun

15 Exemple 1 Logiciel but : faciliter l’utilisation de la grappe comme une ressource de calcul unique serveur de terminaux système d’audit central pour le suivi quotidien de l’utilisation des ressources système d’ordonnancement X-window pour visualisation à distance

16 Exemple 1 Avantage L’ordinateur personnel des utilisateurs peut être de taille plus réduite du fait de l’existence de la grappe

17 Exemple 2 Illinois Fermi National Accelerator Laboratory
accélérateur de particules grappe de 400 stations de travail Silicon Graphics et IBM stations de travail “de petite taille” meilleur compromis coût/performance pour la principale application du Fermilab (analyse de particules)

18 Exemple 2 Indépendance des analyses de particules
analyse de particule = programme séquentiel idée : effectuer le plus grand nombre possible d’analyses en parallèle pas de contrainte de mémoire ou de stockage seul impératif : calculer vite

19 Exemple 2 Serveur de Paramètres de l’analyse données Entrée des
paramètres d’une analyse Code d’analyse Sortie des résultats de l’analyse CPS CPS Serveur de données Programme utilisateur (séquentiel) Résultats de l’analyse

20 Exemple 2 CPS “Cooperative Processes Software” programme parallèle
permet d’exécuter le programme d’analyse simultanément sur plusieurs machines lecture des données sur les bandes pour les fournir aux différentes instances du programme d’analyse collecte des résultats à l’issue de l’exécution et sauvegarde

21 SPPS “Serial Program Parallel System”
Système parallèle pour programme séquentiel usage courant des grappes (applications commerciales) usage implicite du parallélisme

22 Exemple 3 Exécution de programmes parallèles sur la grappe
parallélisme explicite communication par messages grappe alternative à une machine parallèle à mémoire distribuée besoin de bibliothèques de communication efficace communication par mémoire partagée grappe alternative à une machine SMP besoin d’une mémoire partagée répartie

23 Exemple 3 Environnement logiciel PVM, MPI DSM

24 Spectre d’utilisation
Multiprogrammation IBM Farm Parallélisme implicite (Fermilab) explicite Haute disponibilité

25 Réalité des grappes Des milliers de grappes installées
universités laboratoires de recherche industriels laboratoires publics Différentes configurations grappes assemblées à la main par l’utilisateur grappes vendues assemblées

26 Exemples de produits Produits sans matériel et logiciel spécifique
DEC Advantage Cluster 5000 grappe pour le calcul et la haute disponibilité HP Apollo 9000 grappe pour le calcul Sun SPARCcluster 1 serveur de fichiers NFS

27 Exemples de produits Produits spécifiques DEC OpenVMSCluster
Grappe à usage général Encore Infinity 90 Transactions en ligne et bases de données Sun SPARCcluster 1000 PDB Transactions en ligne et bases de données, haute disponibilité Tandem Cyclone, CLX, Integrity, Himalaya

28 Pourquoi les grappes ? Motivations habituelles
des architectures parallèles des systèmes distribués

29 Intérêt des grappes Performance Disponibilité Rapport coût/performance
Croissance incrémentale Extensibilité Remarque : le matériel offre des potentialités mais c’est au logiciel de les exploiter

30 Evolution de la vitesse des processeurs
Vitesse de l’Intel x86 multipliée par 450 entre 1978 et mi-94 HP, MIPS, IBM, SUN doublent les performances de leur système tous les 18 mois Technologies super-scalaire super-pipeline VLIW processeur multithreadé exécution dans le désordre Compilateurs sophistiqués Approche limitée

31 Evolution de la technologie

32 Systèmes de communication rapide standard
Fibre optique FCS (Fiber Channel Standard) ATM (Asynchronous Transmission Mode) SCI (Scalable Coherent Interface) 100 Mo/s … 1 Go/s dépassement de la vitesse des communications entre processeurs dans un SMP Myrinet GigabitEthernet

33 Des technologies d’interconnexion
Débit maximum (lien) Latence mesurée Bande passante mesurée Remarques GigabitEthernet 125 Mo/s 15 à 20 µs 60 à 90 Mo/s PCI 32 bits/33 MHz Myrinet 2000 250 Mo/s 3 à 10 µs Jusqu’à 250 Mo/s PCI 64 bits/66 MHz Dolphin SCI D330 666 Mo/s 1,5 µs Plus de 200 Mo/s Liens partagés (topologie en anneau) PCI 64 bits/66 MHz

34 Technologie Myrinet

35 Des systèmes de communication à haute performance
Plate-forme Latence (µs) Bande passante maximale (Mo/s) Linux sockets TCP/IP (3COM 3c905, 100 Base-T, PII 300MHz) 77.4 10.8 GAMMA (3COM 3c Base T, Pentium 133 MHz) 12.7 12.2 BIP (Myrinet, Ppro) 4.3 126.0

36 Débit de communication : SMP vs grappe

37 Débit de communication : SMP vs grappe
Commutateur

38 Pourquoi pas avant ? Pas de logiciel offrant l’image d ’une machine unique remplacer un super-calculateur par 20 machines a un impact sur l ’utilisation et l ’administration solutions propriétaires Digital Open VMS cluster Tandem clusters non propriétaires réservés à des sites experts

39 Pourquoi pas avant ? Difficulté de programmation
exécution parallèle sur les nœuds du cluster des sous-systèmes et des applications systèmes de batch et de login exception Oracle Parallel Server sur VMS cluster

40 En résumé Pourquoi les clusters Pourquoi pas potentialités du matériel
difficultés logicielles

41 Définition Une grappe (cluster) est une catégorie de système distribué ou parallèle qui consiste en une collection d ’ordinateurs indépendants interconnectés et qui est utilisé comme une seule ressource de calcul unifiée

42 Parallélisme/distribution
Machine parallèle (fortement couplée) Système distribué (faiblement couplé)

43 Grappe dédiée 3

44 Différentes catégories de grappes
Grappe Beowulf Composants standard à grande diffusion Grappe à haute performance Construite autour d’un réseau d’interconnexion rapide

45 Exemple de grappes Beowulf
Coral Aérospatiale, sciences de la terre et de l’espace 32 PII 400MHz 384 Mo RAM + 16 bi-PIII 500 MHz, 512 Mo RAM + 16 bi-PIII 800 MHz, 1 Go RAM Linux RedHat 6.2 Compilateurs Portland MPICH LAM 2 commutateurs Fast Ethernet reliés par des liens GigabitEthernet Genetic, recherche en génétique 500 bi-PII 350 MHz, 128 Mo RAM Linux RedHat 6.0 25 hubs FastEthernet reliés par 2 commutateurs FastEthernet Icluster, déploiement d’applications parallèles 216 PIII 700 MHz, 256 Mo RAM Linux andrake 7.1, PBS, LAM, MPI 5 commutateurs Fast Ethernet reliés par des liens Gigabit Ethernet

46 Icluster

47 Exemples de grappes à haute performance
Cornell 64 quadri-PIII Xeon 500 MHz, 4 Go RAM Windows NT4, MPI-pro, MPI Giganet VIA Cplant 592 Alpha MHz, 256 Mo RAM Linux RedHat 6.0, MPICH Myrinet 64 bit 33 MHz LANai 7

48 Ressources de calcul partagées : Processeurs, Mémoire, Disques
Grappe non dédiée Ressources de calcul partagées : Processeurs, Mémoire, Disques Interconnexion Garantie d’une station de travail par personne (active) Utilisation globale des ressources à certains moments 3

49

50 Machines parallèles Architectures à mémoire distribuée
MPP Architectures à mémoire partagée SMP pb bande passante du bus CC-NUMA

51 Distinction entre grappe et machine parallèle
SMP plusieurs processeurs se partagent les dispositifs d ’E/S et la mémoire dimensionnement en conséquence Machine à mémoire distribuée nœuds de calcul ont moins de ressources qu ’une machine individuelle système réduit sur les nœuds de calcul nœuds spécialisés pour les E/S

52 Systèmes distribués Réseau de stations de travail Internet
machines connectées sur un réseau local d’entreprise machines utilisées pour les tâches quotidiennes Internet nœuds géographiquement distribués gérés par des organismes différents réseau longue distance

53 Distinction entre grappe et système distribué
Dans un système distribué Lien entre localisation physique et fonction d’un site ordinateur d ’une agence bancaire station de travail individuelle/serveur Organisation client/serveur sur un réseau plat Dans une grappe nœuds anonymes pour l’extérieur nœuds banalisés non dédiés à une fonction (comme les processeurs d’un SMP)

54 Grappe Nœud de base Réseau à haut débit et faible latence
1 ou plusieurs processeurs périphériques d’E/S mémoire système d’exploitation Exemples : PC, station de travail, SMP Réseau à haut débit et faible latence Myrinet, SCI, ATM, GigabitEthernet, ...

55 Historique Projet NOW à Berkeley “The case for NOW” [1995] idée
utiliser des machines du marché pour construire une machine parallèle à faible coût

56 Berkeley NOW Communication à faible latence (Active Messages)
Transmission et réception réseau sans passer par le noyau système Gestion globale des ressources du réseau (GLUnix) couche logicielle au dessus de systèmes Unix non modifiés donner l’illusion d’un système d’exploitation global Gestion globale de la ressource disque (xFS) Système de gestion de fichiers sans serveur Système de gestion de fichier parallèle Traitement des défaillances (RAID5 distribué)

57 Historique Projet Beowulf (NASA, HPCC, début 1994) Octobre 1996
exploiter la puissance de calcul et le parallélisme potentiels d’une pile de PC pour l’exécution d’applications scientifiques adapter la configuration de ces systèmes à faible coût aux besoins de calcul de la Nasa Octobre 1996 1,25 Gflops sur une grappe de 16 machines standard valant moins de $50 K pour une application de simulation numérique

58 Beowulf PC Réseau standard Linux -> ExtremeLinux Ethernet
Système de communication par échange de messages : TCP/IP Linux -> ExtremeLinux

59 Machine à mémoire partagée
2100 G F L O P S 2100 Machine monoprocesseur Machine à mémoire partagée Grappe locale (cluster) Grappe globale (Grid)

60 Chaîne alimentaire informatique
Demise of Mainframes, Supercomputers, & MPPs 2

61 Applications Calcul scientifique Applications commerciales
simulation numérique applications séquentielles et parallèles Applications commerciales serveur Web base de données applications de gestion

62 Axes de recherche Système de communication rapide
Système à image unique Partage/équilibrage de charge Systèmes de fichiers parallèles Gestion globale de la mémoire Haute disponibilité Administration Passage à l’échelle Programmation Grappes et applications

63 Image de système unique (Single System Image)
Grappe Ensemble de ressources physiques (mémoire, disque, processeur) distribuées sur différents nœuds Mise en œuvre de ressources logiques (segment de mémoire virtuelle, fichier, processus) Transparence Partage Extensibilité Haute disponibilité

64 Transparence Méthode d’accès aux ressources logiques indépendante de leur localisation Exemple : accès aux fichiers locaux et distants Migration des ressources logiques sans modifier la méthode d’accès Exemple : migration d’un fichier sans changement de nom

65 Partage Partage logique Partage physique
Ressources logiques peuvent être partagées par des applications sans modifier la méthode d’accès Exemple : partage d’un fichier, partage d’un segment de mémoire virtuelle Partage physique Partage des ressources physiques des nœuds entre plusieurs applications Possibilité pour une application d’utiliser des ressources physiques situées sur différents nœuds

66 Extensibilité Extensibilité des performances
L’augmentation des ressources physiques conduit à une augmentation des performances globales du système Transparence à l’extensibilité Ajout de nouveaux nœuds Retrait (prévu) de nœuds Intégration ou suppression de ressources sans arrêt du système et sans perturbation pour les applications en cours d’exécution Gestion dynamique des ressources Reconfiguration du système

67 Haute disponibilité Haute disponibilité Reprise d’applications
Défaillance d’un nœud n’entraîne pas l’indisponibilité du système sur les autres nœuds Seules les applications utilisant les ressources physiques du nœud défaillant peuvent être perturbées. Il reste possible de lancer de nouvelles applications sur la grappe, privée du nœud défaillant Reconfiguration du système Reprise d’applications Pas de perte des ressources logiques Point de reprise d’applications

68 Gestion globale de la mémoire

69 Problématique Partage de mémoire à l ’échelle de la grappe
Mémoire partagée répartie illusion d’une mémoire partagée au dessus de modules mémoire physiquement distribués modèle de programmation simple pour les applications parallèles Exploitation de la ressource mémoire de la grappe Pagination en mémoire distante Caches coopératifs pour les systèmes de fichiers disparité croissante entre la vitesse des processeurs et celle des disques exploitation de la mémoire disponible des nœuds

70 Pagination en mémoire distante
Idée Tirer profit de la mémoire disponible des nœuds et de la faible latence du réseau haut débit pour réaliser un mécanisme de pagination efficace Exemples Global Memory Service (GMS) [H. Levy, Washington, 95] Remote Paging [Marcatos, Forth (Grèce), 99]

71 Comparaison des performances d’un disque dur et d’un réseau
Pour un accès aléatoire à une page mémoire Latence (µs) Débit de crête (Mo/s) Accès aléatoire à une page de 4 Ko (ms) Disque 10 000 12 11 Ethernet 100 10 1 Myrinet 4 160 0.2

72 GMS Gestion globale de la mémoire
Injection d’une page d’un nœud quelconque vers un nœud quelconque Pages de données d’un processus, pages des données du SGF Politique de remplacement globale Traitement de l’ajout et du retrait de nœuds

73 Principe de fonctionnement
Mémoire locale Mémoire globale Pages référencées localement Pages stockées localement à la demande d ’un nœud distant accès mémoire locale < accès mémoire globale < accès disque

74 Algorithme de remplacement
Pages privées ou partagées Exemple de page partagée : page d’un fichier partagé entre plusieurs processus Mémoire globale ne contient que des pages privées et propres Pas de problème en cas de défaillance d’un site distant

75 Algorithme de remplacement
Traitement d’un défaut de page du site P Cas 1 Page en défaut dans la mémoire globale du site Q Échange de la page en défaut avec une page quelconque de la mémoire globale de P Page en défaut devient locale sur P Proportion de pages locales et globales inchangée sur Q

76 Algorithme de remplacement
Cas 2 La page en défaut se trouve dans la mémoire globale de Q mais P ne dispose que de pages locales Échange de la page locale la plus ancienne de P avec la page en défaut de la mémoire globale de Q La proportion des pages locales et globales n’est pas modifiée sur P et Q

77 Algorithme de remplacement
Cas 3 La page en défaut se trouve sur un disque Elle est chargée dans la mémoire locale de P. GMS choisit la page la plus ancienne de la grappe (sur le nœud Q) pour l’éliminer de la mémoire (après recopie sur disque si besoin) Une page de la mémoire globale de P est envoyée sur Q Si P n’a pas de page globale, sa plus ancienne page locale est sélectionnée pour être envoyée sur Q.

78 Algorithme de remplacement
Cas 4 La page en défaut est une page partagée située en mémoire locale de Q. Duplication de la page dans la mémoire locale de P La page la plus ancienne de la grappe (sur le nœud R) est évincée (après recopie si nécessaire). Une page de la mémoire globale de P est déplacée vers la mémoire globale de R. Si P n’a pas de page globale, sa plus ancienne page locale est envoyée.

79 Propriétés Gestion dynamique des mémoires locales et globales
Si un nœud est très actif et consomme beaucoup de mémoire, sa mémoire locale se remplit et il envoie des pages sur des nœuds distants. Les nœuds inactifs hébergeant des pages anciennes évincent ces pages pour stocker des pages globales pour le compte de nœuds distants.

80 Gestion d’un algorithme LRU à l’échelle de la grappe
Problème Identifier la page la plus ancienne sans maintenir un état global complet du système. Gestion d’informations approximatives sur l’état des pages globales Notion d’époque Une époque a une durée maximale T. Au plus M remplacements de page dans la grappe au cours d’une époque. Les valeurs T et M varient d’une époque à l’autre en fonction de la charge de calcul et de l’état de la mémoire globale.

81 Algorithme LRU global Début d’une nouvelle époque
Quand l’époque courante a atteint sa durée maximale T. Quand M pages globales ont été remplacées. Quand des imprécisions importantes ont été détectées. Informations conservées sur chaque nœud Âge des pages locales et globales hébergées sur le nœud Envoi d’un résumé de cette information au début de chaque époque à un nœud initiateur.

82 Algorithme LRU global Initiateur Reçoit les informations des nœuds
Calcule un âge minimum de remplacement MinAge permettant de remplacer M pages pendant la prochaine époque Calcule un poids wi associé à chaque nœud i (nombre de pages libres ou anciennes (âge supérieur à MinAge) dont il dispose proportionnellement aux autres nœuds Plus un nœud dispose de pages libres, plus son poids est élevé Envoie la liste des poids wi et MinAge à tous les nœuds Le nœud de poids le plus élevé est désigné comme initiateur pour la prochaine époque

83 Algorithme LRU global Déroulement d’une époque Approximation du LRU
Eviction d’une page par nœud P Vérifie si l’âge de la page est supérieur à MinAge Si oui, destruction de la page Si non, envoi de la page au nœud i choisi avec une probabilité proportionnelle à wi La page la plus ancienne de i est détruite et la page évincée par P devient globale sur i Approximation du LRU Si M pages détruites globalement, ce sont les M plus anciennes de la grappe Quand le nœud initiateur a reçu wi pages, il déclare la fin de l’époque en cours

84 Eléments de mise en œuvre
GMS mis en œuvre dans OSF 1 Système de gestion de mémoire virtuelle et cache de fichiers unifié contenant pages des fichiers projetés en mémoire virtuelle et pages des fichiers accédés par l’interface standard Noyau modifié pour détourner les fonctions d’ajout et de retrait de pages dans le cache de fichiers et les fonctions de remplacement du système de mémoire virtuelle

85 Eléments de mise en œuvre
Toutes les pages gérées par GMS sont associées à un fichier sur disque Pages identifiées de manière unique par un uid Adresse IP du nœud hébergeant le fichier associé Numéro de la partition contenant le fichier I-nœud du fichier Offset dans le fichier Etat possible d’une page Présente et privée en mémoire locale Présente et partagée en mémoire locale sur plusieurs nœuds Présente en mémoire globale Non présente en mémoire

86 Eléments de mise en œuvre
Localisation d’une page dans la grappe Gestionnaire de cadre de pages sur chaque nœud Liste des pages locales et globales présentes dans la mémoire physique locale Gestionnaire de cache global Structure de données distribuée à travers le réseau Localisation du nœud hébergeant une page donnée

87 Systèmes de gestion de fichiers parallèles

88 Introduction Grand nombre de ressources mémoire et disque dans une grappe Mais ressources d ’un nœud non accessibles depuis tous les nœuds seuls les processus locaux ont accès aux ressources locales accès aux fichiers distants FTP (non transparent, pas simple) NFS (montage, convention de désignation)

89 Ce qu’on veut dans une grappe
Ressources accessibles facilement depuis n’importe quel nœud de façon transparente aux applications Illusion d’un seul système de fichiers (analogie avec les machines parallèles) Utiliser tous les disques de la grappe Exploiter la mémoire de la grappe comme cache des blocs de fichiers

90 Besoin des applications en terme d’entrée/sortie
Entrée, mise au point, point de reprise, sortie, accès à des structures de données out-of-core Exemple : applications scientifiques Lecture, écriture ou lecture/écriture de gros volumes de données

91 Différents types de problèmes
Problèmes réguliers Modèle SPMD : un seul programme exécuté en parallèle sur des ensembles de données disjoints, espace de désignation unique, synchronisation lâche Les schémas d’accès aux données peuvent être déterminés à la compilation Problèmes irréguliers Les patrons d’accès aux données ne peuvent pas être déterminés avant l’exécution Structures de contrôle irrégulières (conditionnelles) Structures de données irrégulières (arbres, graphes) Schémas de communication irréguliers Problèmes out-of core Les structures de données ne tiennent pas en mémoire (va et vient entre mémoire et disque à la demande, calcul en plusieurs phases (chargement en mémoire, calcul, sauvegarde sur disque))

92 Besoins des applications
Même type d ’applications que sur les machines parallèles Besoin d ’un système d’entrée/sortie à haute performance manipulation de gros ensembles de données qui ne tiennent pas en mémoire (out-of-core) accès rapide en lecture et en écriture opérations coopératives d ’accès aux fichiers pour les applications parallèles

93 En résumé Système de fichiers à haute performance
Système de fichiers qui simplifie la coopération entre les processus Système de fichiers qui utilise toutes les ressources disponibles efficacement et de manière transparente

94 Trois niveaux dans l’architecture d’un système d’entrée/sortie
Définition Du schéma d’ accès aux données par les processus de l’application Fichier Répartition des données sur les disques

95 Plan Gestion de la transparence Gestion des données sur disque
RAID Système à journalisation des écritures Gestion des caches Gestion du préchargement Interface

96 Gestion de la transparence
Gérer les systèmes de fichiers distants comme s’ils étaient locaux interconnexion à la demande des espaces des noms de chaque site en établissant des références (montage logique) analogue du montage dans le système Unix on crée un lien entre une entrée dans un catalogue et une arborescence sur une machine distante. Structure potentiellement complexe qui n’est pas une arborescence si des règles simplificatrices ne sont pas utilisées exemple : monter partout le catalogue complet d ’une machine sous le nom symbolique attribué à cette machine, même environnement sur toutes les machines

97 Exemple : NFS Machine mimosa Machine maya Machine paravec / / / usr
bin christine eric prog fich

98 Gestion de la transparence
Accès à un fichier distant requête transmise au nœud possédant le système de fichier correspondant qui répond transparence pour l’utilisateur Conservation de l’information sur les montages sur les nœuds clients (SUN NFS) tous les clients ne voient pas forcément la structure de la même façon sur les nœuds serveurs (Sprite) même structure globale du système de fichiers sur tous les nœuds

99 Résolution des noms Localiser un répertoire ou un fichier d’après son nom Approche centralisée un serveur de désignation responsable de la table de localisation informé lors de chaque création d ’un fichier ou répertoire traite les requêtes d ’accès des clients Inconvénient défaillance du serveur de désignation empêche tout accès au système de fichiers goulot d’étranglement

100 Résolution des noms Approche distribuée
Avec plusieurs espaces des noms (NFS) chaque système connaît les systèmes de fichiers qu’il a monté et les nœuds propriétaires permet de localiser les fichiers et répertoires inconvénient migration du système de fichiers (disque changé de nœud) => remontage

101 Résolution des noms Avec un seul espace des noms
arborescence divisée en domaines, chaque serveur est responsable d’un domaine plusieurs serveurs de noms peuvent être contactés pour résoudre un nom à partir de la racine possibilité d’utiliser des caches de noms avantage si un disque est déplacé, un seul serveur de noms doit être averti

102 Tirer profit d’une grappe pour des E/S à haute performance
Utilisation possible des disques en parallèle pour augmenter le débit disque Utilisation de la grande quantité de mémoire pour construire de grands caches de fichiers pour découpler la performance du système de fichiers de la performance des disques utilisation de nœuds distants pour stocker un bloc de cache qui ne tient pas dans le cache local regroupement de requêtes d ’E/S pour augmenter leur taille

103 Fragmentation des données sur plusieurs disques
Dans le but d’utiliser les disques des différents nœuds pour augmenter le débit des accès disques Déjà fait par matériel dans les disques RAID (Redundant Arrays of Inexpensive Disks) plusieurs disques connectés à un seul contrôleur pour obtenir un débit supérieur au débit d’un seul disque

104 RAID Pourquoi la haute performance ?
Obtention de données sur chaque disque en même temps augmentation de la bande passante disque Opération « seek » effectuée en parallèle sur chaque disque diminution du temps nécessaire à cette opération éléments mécaniques des disques ralentissent les opérations usuelles déplacement de la tête de lecture rotation du disque Dans certains RAID, traitement de plusieurs requêtes en parallèle

105 Entrelacement des données sur disque
Grain fin unité de données de petite taille tous les disques sont accédés en parallèle pour chaque requête avantage débit de transfert inconvénients 1 seule requête logique à la fois disques perdent du temps à positionner la tête de lecture

106 Entrelacement des données sur disque
Gros grain unités de données de grande taille accès à quelques disques pour les requêtes de petite taille accès à tous les disques pour les requêtes de grande taille avantages plusieurs requêtes de petite taille servies en parallèle haut débit pour les requêtes de grande taille parallélisme des opérations de « seek » quand plusieurs requêtes de petite taille sont traitées en parallèle

107 RAID et tolérance aux fautes
Plusieurs disques probabilité de défaillance d’un disque élevée Redondance de données et mécanismes de tolérance aux fautes ne pas perdre d ’information si un disque est défaillant 5 niveaux de RAID selon l ’organisation des données sur les disques (RAID-0 : pas de redondance)

108 RAID-0 Fragmentation mais pas de redondance

109 RAID-1 Disques miroirs (unité de fragmentation = bloc)
Écriture d ’une donnée sur 2 disques Lecture sur un disque Solution coûteuse en espace disque

110 Gain en espace disque par rapport à RAID-1
Unité de fragmentation = bit Parité = code de Hamming (ECC mémoire) Disques de données Disques de parité Gain en espace disque par rapport à RAID-1

111 RAID-3 Unité de fragmentation = bit 1 disque de parité (ou exclusif)
Lecture de tous les disques de données Ecriture => accès au disque de parité Inconvénient : une seule requête de lecture à la fois

112 RAID-4 Unité de fragmentation = bloc 1 disque de parité
Plusieurs requêtes de lecture en parallèle Accès en écriture séquentiels à cause des accès au disque de parité

113 RAID-5 Unité de fragmentation = bloc Pas de spécialisation des disques
Avantage par rapport à RAID-4 : suppression du goulot d ’étranglement du disque de parité en répartissant les blocs de parité sur différents disques Schéma qui offre les meilleures performances sauf pour les petites écritures

114 Traitement des petites écritures
Approche lecture-modification-écriture 1 XOR 2

115 Traitement des petites écritures
Approche régénération - écriture 1 XOR 2

116 Autres niveaux de RAID RAID-10 RAID-53 combinaison de RAID-0 et RAID-1
RAID-0 dans lequel les fragments sont des RAID-1 même niveau de tolérance aux fautes que RAID1 meilleur taux de transfert RAID-53 fragmentation des données sur des RAID-3

117 RAID logique Même idée que RAID matériel mais disques ne sont pas connectés au même contrôleur Système de fichiers est responsable de la distribution des données et de la gestion de la redondance Mêmes problèmes et mêmes avantages que RAID matériels mais solutions différentes système distribué

118 Distribution des données
d = nombre de disques disponibles Distribution étendue fichier découpé en d fragments Chaque fragment sur un disque différent Distribution cyclique fichier découpé en fragments de taille fixe placement des fragments cycliquement sur différents disques fragment n sur disque n modulo d

119 Groupes de fragmentation
Grand nombre de disques dans une grappe difficile de réaliser des écritures sur tous les disques donc beaucoup de petites écritures (inefficaces en RAID-5) parité ne permet pas de tolérer la défaillance de plus d’un disque Un nœud qui réalise une lecture n’a pas forcément le débit réseau nécessaire pour lire tous les disques en parallèle performance en pratique = fraction de la performance théorique Solution : fragmentation des fichiers sur un sous-ensemble des disques

120 Groupes de fragmentation
Avantages Plusieurs clients peuvent accéder en parallèle à des groupes différents Plusieurs disques peuvent être défaillants en même temps s ’ils appartiennent à un groupe différent Inconvénient (mineur) besoin de plus d ’espace de stockage car 1 disque de parité par groupe

121 Système de fichiers à journalisation des écritures
Solution pour augmenter la vitesse des disques résout le problème des écritures de petite taille n ’a pas été conçu au départ pour les grappes Idées de base excellent taux de succès en lecture des caches donc trafic disque dominé par les écritures améliorer les écritures même si les lectures sont légèrement pénalisées écritures séquentielles évitent les « seeks » qui sont des opérations coûteuses donc augmente les performances disque système de fichiers dans lequel la plupart des écritures sont effectuées séquentiellement

122 Journalisation des écritures
Les anciennes données ne sont jamais réécrites Quand un bloc est modifié, il n’est pas réécrit à la même place mais juste après le dernier bloc modifié. Recouvrement aisé car les blocs ne sont pas écrasés

123 Comparaison Unix et LFS
répertoire répertoire répertoire Fichier 1 Fichier 2 Fichier 1 Fichier 1 Fichier 1 Fichier 2 Bloc d’inode Bloc de répertoire Bloc de fichier Bloc libre

124 Accès rapide aux données
Table de localisation des i-nodes indique quel bloc disque contient la dernière version d ’un i-nœud conservée en mémoire Contiguïté des blocs récupération des blocs devenus obsolètes compactage

125 Traitement des petites écritures
Solution pour un système de fichier distribué parallèle dans une grappe Combinaison d’un système de fichiers à journalisation des écritures et d’un RAID logiciel Chaque nœud client journalise les modifications effectuées par ses processus en mémoire Quand le journal atteint une taille suffisante pour utiliser tous les disques, calcul de la parité dans un tampon Envoi du journal du client et du bloc de parité sur les disques de la grappe Disques mis à jour selon la technique de journalisation des écritures

126 Périphériques attachés au réseau
Débit disque d’un nœud ayant un disque ou serveur de fichier limité par le débit mémoire du serveur Solution : périphériques à haute performance connectés non seulement à un nœud hôte mais aussi directement sur un réseau à très haut débit les nœuds clients peuvent adresser leurs requêtes directement au périphérique sans passer par le nœud hôte

127 Serveur de fichier RAID-2
Exemple : RAID 2 Client Client Client Client Ethernet 100 Mb/s Réseau haut débit 100 Mo/s VME Station hôte Serveur de fichier RAID-2

128 Gestion des caches Idée ancienne Principe Gain
cache pour pallier la lenteur des disques buffer cache du système de fichiers Principe conservation des blocs utilisés par les applications dans des tampons en mémoire (localité temporelle) premier accès : accès au disque accès suivants servis par le cache Gain amélioration des performances en lecture amélioration des performances en écriture modifications conservées en cache

129 Caches de fichiers Dans un réseau cache serveur
Pour pallier la latence des accès aux disques caches clients mémoire disque local Pour limiter les accès au serveur

130 Caches coopératifs Certains nœuds ont un cache vide alors que d ’autres nœuds n’ont pas assez de place dans leur cache Quand un nœud a besoin d’un bloc, le bloc se trouve souvent dans le cache d’un autre nœud Caches coopératifs Définition : service pour assurer le partage et la coordination des blocs présents dans les caches de fichiers d’un ensemble de nœuds évitent des accès disque => amélioration performances augmentation de la vitesse réseau => efficacité de la coopération entre les nœuds

131 Différentes stratégies de caches coopératifs
Cache coopératif privé Mémoire des nœuds distants considérée comme une extension du cache local Un nœud actif évince les blocs de son cache dans la mémoire d’un nœud distant inactif Le nœud actif a accès aux blocs de son cache local et dans son cache privé distant Lorsque le nœud inactif redevient actif, il vide de sa mémoire les blocs du cache coopératif Inconvénients un nœud actif ne bénéficie pas des blocs situés dans les caches locaux des nœuds distants Un nœud ne peut pas utiliser les blocs injectés par un autre nœud dans sa mémoire locale

132 Cache coopératif glouton
L’ensemble des caches locaux des nœuds est géré comme un seul gros cache. Chaque nœud place les blocs dans son cache local sans coordination avec les autres nœuds. Sur un défaut de cache du nœud P Envoi d’une requête au serveur de fichier Si le serveur de fichier possède le bloc dans son cache, il l’envoie au nœud P Sinon, le serveur de fichiers consulte un répertoire indiquant le contenu des caches clients Si un client possède le bloc demandé, la requête lui est transmise Sinon lecture du bloc sur le disque, envoi du bloc à P et mémorisation du fait que P possède une copie du bloc.

133 Cache coopératif glouton
Inconvénients Serveur = goulot d’étranglement Duplication des blocs dans différents caches (gaspillage de la ressource mémoire)

134 Cache coopératif statique
Gestion globale des caches locaux sous forme d’un cache associatif par ensemble Il y a autant d’ensemble que de nœuds Chaque ensemble est de la taille du cache local d’un nœud Placement/recherche d’un bloc en cache Détermination de l’ensemble dans lequel le bloc doit se trouver par une fonction de hachage Les blocs ne sont pas répliqués dans le cache global Intérêts une seule copie pas besoin de cohérence augmentation des performances des écritures tous les blocs dans le cache sont différents meilleure efficacité du cache (pas de gaspillage de mémoire)

135 Cache coopératif statique
Intérêts (suite) amélioration de la localité quand cela ne coûte rien remplacement d’un bloc (appartenant aux 5% blocs LRU) dans le cache du nœud chargeant un nouveau bloc au lieu du bloc LRU dans le cache global Inconvénients Chaque accès à un bloc donné nécessite de contacter le nœud hébergeant le bloc Augmentation du trafic réseau Mauvaise exploitation de la localité spatiale et temporelle PAFS (Toni Cortès, Université polytechnique de Catalogne)

136 Cache coopératif centralisé
Intermédiaire entre le cache coopératif glouton et le cache coopératif privé Le cache de chaque client est divisé en 2 parties Cache local géré par le nœud Cache global utilisé comme extension du cache disque du serveur Sur défaut dans le cache local d’un nœud P Envoi d’une requête au serveur Si bloc présent dans le cache local du serveur, il est retourné à P Sinon, vérification de la présence du bloc dans l’extension du cache du serveur sur les nœuds distants Si un nœud distant héberge le bloc, la requête lui est transmise Sinon, donnée lue sur le disque, transmise à P et placée dans le cache local du serveur

137 Cache coopératif centralisé
En cas de saturation du cache local du serveur Le bloc le plus ancien (selon LRU) est injecté dans le cache global sur un nœud distant Avantages Taux de succès dans le cache global élevé Taille restreinte des caches locaux diminue le taux de succès local Charge importante du serveur pour la coordination centralisée du cache

138 Cache coopératif distribué
Variante du mécanisme de coopération gloutonne Singleton = bloc présent dans le cache d’un seul client à travers la grappe Limitation du nombre de copies d’un bloc Eviction des singletons évitée ou retardée Mis en œuvre dans le système XFS

139 Exemple XFS 3 objectifs Cache d’un nœud divisé en 2 parties
contenu des caches clients accessibles par tous les nœuds singletons conservés en cache le plus longtemps possible un bloc est caché dans un nœud qui a une forte probabilité de le référencer (localité physique privilégiée) Cache d’un nœud divisé en 2 parties cache local : blocs accédés par des processus locaux cache global : blocs conservés pour le compte de processus distants

140 Exemple XFS Algorithme de remplacement
Entrée d ’un bloc dans le cache local élimination du cache local du bloc LRU ayant des copies distantes s ’il n ’y a que des singletons, le bloc LRU est envoyé à distance dans un nœud choisi arbitrairement si le nœud distant n’a pas de place, il remplace un bloc ayant des copies multiples s ’il ne peut pas, élimination du bloc reçu Elimination des blocs inutiles quand un bloc a été transmis plus de N fois sans être utilisé, il est éliminé N= 0 : cache coopératif glouton

141 Exemple XFS Requête d ’accès à un bloc distant
bloc copié dans le cache local du nœud demandeur réplication pour augmenter la localité physique

142 XFS Inconvénients de l ’approche XFS mécanisme de cohérence complexe
réplication => sous-utilisation du cache qui se comporte comme un cache plus petit gain de performance obtenu grâce à la localité physique contrebalancé par les messages échangés

143 Cohérence des caches Multiples caches => problème de cohérence des données répliquées dans les caches Deux approches relâcher la sémantique Unix « un bloc modifié est immédiatement vu par toutes les applications » recherche d ’efficacité dans la mise en œuvre des algorithmes de cohérence

144 Sémantique session Modification du fichier Fermeture du fichier
Seuls les processus situés sur le même nœud que l ’écrivain observent les modifications Les processus des autres nœuds ayant ouvert le fichier ne voient pas les modifications Fermeture du fichier Toutes les modifications deviennent visibles par les applications qui ont ouvert le fichier après qu’il ait été fermé par le processus écrivain Exemple : Andrew File System (AFS)

145 Autres sémantiques Transactions Fichiers non modifiables
systèmes de fichiers pour bases de données modifications encadrées par begin_transaction/end_transaction exemple : Cambridge Fichiers non modifiables nouvelle version du fichier lors de chaque modification

146 Sémantique Unix Solution simple : ne pas mettre en cache les écritures
Sprite (écritures lentes) Utilisation de jetons un client doit posséder le jeton d ’écriture pour modifier le fichier aucun autre client ne peut utiliser le fichier quand un client détient jeton en écriture invalidation des caches des clients quand un client demande le jeton en écriture

147 Sémantique Unix Perte ou monopolisation du jeton
en cas de défaillance ou coupure réseau Solution : jeton à date d ’expiration Granularité de partage fichier bloc de fichier (XFS) région dans un fichier (ParFiSys)

148 Fichiers accessibles en écriture seulement
Les modifications d’un client sont datées dans son cache Quand son cache est plein, un client vide ses blocs modifiés et initialise une opération de vidage tous les autres nœuds vident leur cache le serveur de fichier reçoit tous les blocs datés et sélectionne le plus récent pour effectuer l ’écriture disque pas besoin de mécanisme de cohérence besoin d ’horloges synchronisées

149 Pré-chargement Cache n ’est d’aucune utilité pour le premier chargement d ’un bloc dans la grappe lecture sur disque nécessaire Pré-chargement lecture de blocs sur disque avant qu’ils ne soient demandés par l ’utilisateur utilisation des structures de données du cache + prédicteur des accès

150 Pré-chargement parallèle
Chaque nœud précharge ses données indépendamment des autres nœuds utilisation des algorithmes classiques pré-chargement un bloc en avant adapté aux accès séquentiels algorithmes prenant en compte les accès par pas taille des pas obtenue par analyse des requêtes

151 Pré-chargement informé
L ’utilisateur indique de quelle façon un fichier est accédé pré-chargement agressif sans mauvaise prédiction dans l ’ordre spécifié Avantage permet de profiter du parallélisme dans la grappe pour les applications séquentielles et parallèles

152 Pré-chargement Compromis Ne pas pré-charger trop de données
Ne pas pré-charger trop tôt élimination de blocs du cache Ne pas pré-charger trop tard attente des données par l ’application

153 Interface Interface traditionnelle Limitations open (fichier)
un pointeur de fichier par open close (fichier) read (fichier, &tampon, taille) write (fichier, &tampon, taille) seek () Limitations pas de pointeur partagé entre plusieurs processus (impossible de créer un processus fils sur un noeud distant) plusieurs opérations pour lire des portions non contiguës d’un fichier (gestion de l’atomicité par le programmeur)

154 Besoins Application indique comment les données seront utilisées
permet au système de placer les données pour profiter du parallélisme potentiel du matériel algorithme de remplacement Coordination des opérations d ’E/S dans les applications parallèles données partagées

155 Pointeur de fichier partagé
Pointeur global partagé Plusieurs processus partagent le même pointeur de fichier nouvelle position du pointeur observée par tous les processus après des opérations read, write, seek difficile à mettre en œuvre efficacement dans un système distribué

156 Pointeur de fichier partagé
Approche pour des accès en tourniquet (round robin) Les processus se donnent le tour pour les accès au fichier Facile à mettre en œuvre l ’état du pointeur doit seulement être transmis au processus suivant seul le processus ayant le pointeur peut faire des requêtes d ’E/S

157 Pointeur de fichier partagé
Idée pointeur distribué partagé pour éviter que deux processus accèdent à un même portion du fichier Le système de fichier attribue un disque à chaque processus en tourniquet Quand un disque D est attribué à un processus P P lit/écrit tous les blocs du fichier F situés sur le disque D changement de disque selon un algorithme de tourniquet même comportement pour P avec le nouveau disque Terminaison quand tous les disques sur lesquels se trouvent des blocs du fichier F ont été attribués à un processus

158 Exemples MPI-IO SPIFFI Ouverture du fichier par plusieurs processus
un pointeur local par processus un pointeur partagé Utilisation du pointeur local MPI_FILE_READ MPI_FILE_WRITE Utilisation du pointeur partagé MPI_FILE_READ_SHARED MPI_FILE_WRITE_SHARED SPIFFI plusieurs types de pointeur partagé au choix de l ’application

159 Méthodes d ’accès Galley (1) Accès par pas (2) Accès par pas imbriqué
(3) Accès défini par une liste d ’accès de type 1 ou 2

160 Lecture de n segments de m octets espacés de p octets
Méthodes d ’accès Accès par pas simple Lecture de n segments de m octets espacés de p octets n = 3 m = 2Ko p = 5Ko

161 Méthodes d ’accès Accès par pas imbriqué 1er niveau ...
Struct gfs_stride vec[2] // pas interne vec[0].f_stride = 2048 ; // p = 2Ko vec[0].m_stride = 1024 ; // m= 1Ko vec[0].quantity = 3 ; // n = 3 // pas externe vec[1].f_stride = 7168 ; // p = 7Ko vec[1].m_stride = 3 * 1024 ; // quantité de données lues au 2eme niveau vec[1].quantity = 3 ; // n = 3 fois 2eme niveau // opération par pas imbriqué b = gfs_read_nested (file_id, buffer, file_offset, size_to_read, vec, 2)

162 MPI-IO Interface utilisateur permet de spécifier la distribution des blocs de fichier dans l ’espace utilisateur distribution des données sur les disques à la charge du système de fichier sous-jacent Conçu pour les applications scientifiques favorise les patrons d ’accès usuels orienté performance (pas fonctionnalité)

163 MPI-IO Partitionnement des données en 3 étapes
étape 1 : définition de l ’élément de base permet de construire les patrons des phases 2 et 3 étape 2 : dans l ’opération open spécification de la partie du fichier ouvert utilisée pour constituer un sous-fichier indique quel processus va utiliser quelle partie du fichier étape 3 : dans les opérations read/write spécification de l ’emplacement des éléments d ’un sous-fichier dans le tampon utilisateur

164 MPI-IO Fichier 1 2 3 4 5 6 7 8 9 10 11 12 etype filetype 4 5 9 10
subfile buftype 4 5 9 10 buffer

165 MPI-IO : lecture d ’un fichier d ’entiers selon une distribution cyclique par blocs
// type de base entier etype = MPI_INT ; // Création d ’un filetype qui distribue les données cycliquement MPI_Type_hpf_cyclic (…, &filetype) ; // Vue du fichier pour ce processus MPI_File_set_view (fh, offset, etype, filetype, …) ; //Création du buftype pour les emplacements dans le tampon MPI_Type_vector (…, &buftype) ; //Opération de lecture MPI_File_Read (fh, buffer, count, buftype,&status) ;

166 Vesta Interface pour Notion de fichier à bi-dimensionnels
spécifier comment les données sont accédées par l ’application spécifier comment les données sont distribuées sur les disques Notion de fichier à bi-dimensionnels fichier = ensemble de cellules cellule = ensemble de fragments (basic striping units)

167 Vesta Cellule Chaque cellule peut être sur un disque différent
portion contiguë du fichier définie à la création du fichier nombre constant Chaque cellule peut être sur un disque différent nombre de cellules = niveau de parallélisme maximum pour les accès placement par le système sans interaction avec l ’utilisateur (indications seulement) Cellule + fragment vision d ’un fichier sous forme d ’un tableau 2D l ’utilisateur peut répartir les fragments (style HPF)

168 Vesta cellule Fragment Disque 1 Disque 2 Disque 3

169 Gestion des processeurs

170 Modes d’usage des grappes
Réseau de stations de travail (NOW) vol des cycles perdus les applications haute performance s’exécutent en arrière plan et exclusivement sur les stations de travail inutilisées par leur propriétaire création de processus à distance et migration de processus Machine parallèle du pauvre grappe dédiée à l ’exécution d’applications haute performance exécution de tâches en batch (mode d’utilisation habituel des machines parallèles) contrôle d ’admission

171 Différents types de tâches
Tâches parallèles fixes applications parallèles fortement synchronisées avec un nombre de processus fixe les processus doivent s’exécuter simultanément sur des processeurs distincts pour optimiser les performances Allocation d’un sous-ensemble de la grappe à la tâche partage de l ’espace contrôle d ’admission Ordonnancement par gang partage de temps ordonnancement global sur la grappe

172 Différents types de tâches
Tâches à nombre de processus variable application parallèle = pile de travaux indépendants pool de processus pour exécuter les travaux de nouveaux travaux peuvent être créés dynamiquement des processus peuvent être créés dynamiquement répartition de charge migration de processus

173 Migration de processus
Motivation répartition de charge déplacement d ’un processus d’un site chargé vers un site moins chargé en vue d’améliorer le temps de réponse des processus exemples : Charlotte, Mosix performance tirer profit de la puissance d’un réseau de stations de travail utilisation des machines inactives exemples : Condor

174 Migration de processus
Réduction du trafic sur le réseau dans des applications utilisant de gros volumes de données migrer un processus de petite taille vers un site détenant une grande quantité d ’information rapprocher des processus communiquant intensivement Fiabilité et tolérance aux fautes utilisation de points de reprise pour migrer un processus sur un site opérationnel suite à une défaillance exemple : Condor

175 Migration de processus
Motivations Accès à des ressources spécifiques utilisation par un processus de ressources matérielles non accessibles à distance (co-processeur, processeur de signal, …)

176 Modèle de système Etat d’un processus
Espace d ’adressage (mémoire virtuelle) Registres et pile d’exécution Données contenues dans les tables internes du système (fichiers ouverts, files de messages, …)

177 Politique de décision Quand migrer un processus ?
Quel processus migrer ? Vers quel site migrer ?

178 Quand migrer un processus ?
À la demande du processus accès à une ressource spécifiques En cas de défaillance A la demande du système décision complexe en fonction d’indices de charge

179 Quel processus migrer ? Certains processus ne peuvent pas migrer
Sprite pas de migration de processus utilisant un périphérique directement mappé en mémoire Répartition de charge prise en compte des communications inter-processus

180 Vers quel site migrer ? Vers un site disposant des ressources nécessaires au processus migré Choix complexe dans le cas de la répartition de charge collecte de statistiques de charge pour les nœuds du système sélection du site de destination en fonction de la charge globale calculée

181 Mécanisme de migration
Trois phases Gel du processus sur le site d’origine Transfert du processus Reprise du processus sur le site de destination

182 Gel du processus Obtention d’un état cohérent du processus vis à vis du système le processus ne doit pas être interrompu alors qu ’il effectue un appel système qui modifie l’état du noyau thread_abort dans le micro-noyau Mach attendre la fin d ’une communication synchrone avant de geler le processus Charlotte, Mosix, Sprite

183 Gel du processus Etat du processus gelé doit être exploitable sur le site de destination références (adresse, index dans une table du noyau) qui doivent être modifiées pour permettre l ’exécution du processus sur un site distant mécanisme d ’encapsulation spécifique à chaque système

184 Transfert Objectif Approches
minimiser le temps de migration qui est dominé par le temps de transfert exploitation des avantages de la mémoire virtuelle paginée Approches Transfert en masse Pré-copie de l’espace d ’adressage Copie à la demande

185 Transfert en masse Transfert en une fois de l’état du processus
Inconvénient temps de gel élevé et proportionnel à la taille de l ’espace d ’adressage

186 Transfert en masse Source Destination
Exemples : Locus, Charlotte, Demos-MP, Mosix

187 Pré-copie de l’espace d’adressage
Transfert des pages du processus commence avant l’arrêt du processus première copie de toutes les pages une fois itération sur la recopie de toutes les pages qui ont été modifiées pendant le transfert jusqu’à un seuil fixé gel du processus transfert des pages restantes et du contexte

188 Pré-copie de l’espace d’adressage
Avantage minimisation du temps de gel (transfert du contexte plus quelques pages) Inconvénient une page peut être transférée plusieurs fois

189 Pré-copie Source Destination Exemple : V-system

190 Copie à la demande Méthode paresseuse Avantage Inconvénient
seul le contexte du processus est transféré pages restent dans la mémoire du site d’origine transfert des pages quand le processus les utilise Avantage élimine la source de variation du temps de transfert Inconvénient site d’origine toujours sollicité après migration

191 Copie à la demande Source Destination Exemple : Accent

192 Compromis entre transfert en masse et copie à la demande
Le contexte du processus est transféré sur le site de destination L’espace d ’adressage du processus est transféré sur un serveur de fichier Avantage évite sollicitation du site d ’origine après migration

193 Compromis entre transfert en masse et copie à la demande
Serveur de fichier Source Destination Exemple : Sprite

194 Compromis entre pré-copie et copie à la demande
A chaque page est associée une probabilité d ’être référencée prochainement dont dépend la politique de transfert page de l’espace de travail (forte probabilité d ’être référencée) copiée en même temps que le contexte page ayant une assez grande probabilité d’être référencée pré-copiée autres pages post-transfert + copie à la demande

195 Compromis entre pré-copie et copie à la demande
Source Destination Exemple : Galaxy

196 Réveil du processus Reprise de l’exécution du processus sur site destinataire si ressources nécessaires disponibles Site d’origine conserve l’état du processus jusqu’à ce qu’il ait la certitude que la migration s ’est correctement déroulée acquittement envoyé par le site destinataire au site source si erreur, poursuite de l’exécution sur site d’origine

197 Exécution du processus migré
La migration d’un processus sur un nouveau site est-elle transparente ? accès mémoire communications entrées/sorties gestion des processus événements asynchrones accès au temps Sollicitation du site d’origine dans certains cas dépendances résiduelles

198 Gestion des accès mémoire
Gérés par le mécanisme de mémoire virtuelle Le site d ’origine n’est sollicité que s’il possède encore les pages référencées par le processus migré. Pas de dépendance résiduelle en cas de copie en masse ou pré-copie Copie à la demande : intervention du site d ’origine Partage de mémoire entre processus complexe pas mis en œuvre

199 Gestion des communications
Saturation des files de messages pendant le gel du processus processus gelé ne consomme pas ses messages Augmentation de la taille des files de messages en attente pendant la migration mis en œuvre pour ports du micro-noyau Mach Elimination des messages en attente non acquittés conservation des messages non acquittés par l ’émetteur et politique de retransmission Intérêt de minimiser le temps de gel

200 Gestion des communications
Acheminement des messages migration ne doit pas entraîner la perte de messages Conservation d’un lien sur le site source pour chaque canal de communication entre le processus migré et un autre processus chaîne d ’accès permettant d ’acheminer les messages au processus migré mise à jour des liens avec le dernier site connu lorsque le canal est utilisé liens sur tous les anciens sites de résidence du processus tant que le canal n ’est pas utilisé délai d’acheminement des messages pour un processus migré plusieurs fois

201 Gestion des communications
Ordre de remise des messages destinés à un processus Problème certains messages transmis au site source S du processus et d’autres au site de destination D Solution (Charlotte) stockage des messages sur S et D transmission des messages de S à D et classement des messages reçus sur S avant ceux reçus sur D avant le réveil du processus

202 Gestion des entrées/sorties
Système de désignation uniforme des fichiers chaque site peut traiter les opérations d’entrées/sorties Processus ombre sur le site d ’origine redirection des requêtes d’entrées/sorties vers le site d ’origine traitement par le processus ombre qui envoie le résultat au processus migré mise en œuvre par modification de la bibliothèque C (Charlotte) pas de modification des applications et du système Transfert de l’état du fichier ouvert sur le site de destination évite dépendance résiduelle sur le site source (Sprite)

203 Gestion des processus Problème Solution (Sprite)
appel système dépendant du pid du processus pid différent sur les sites source et destination d ’un processus migré exemples : fork, exec, wait, kill Solution (Sprite) traitement de ces appels système sur le site de création du processus les processus fils d’un processus héritent du site de création du processus père

204 Gestion des événements asynchrones
Signaux, interruptions peuvent dépendre des ressources matérielles du site d ’origine du processus Condor interdit de migrer un processus utilisant les signaux Galaxy transfert sous forme de messages des événements asynchrones entre le site d’origine et le site de destination

205 Gestion des accès au temps
Les horloges des sites ne sont pas synchronisées Sprite toute demande de lecture de l ’heure est redirigée vers le site de création du processus

206 Dépendances résiduelles
Intérêt contribution à la transparence Défauts performance diminution des performance d’un site sollicité à cause des dépendances résiduelles qu’il héberge indirection augmente le temps de traitement des requêtes reposant sur les dépendances résiduelles fiabilité un processus peut être affecté par la défaillance d’un site sur lequel il ne réside pas complexité données d’un processus réparties dans le système

207 Niveau de mise en oeuvre
Dans le noyau du système d ’exploitation exemples modification du noyau Unix : Locus, Mosix noyau spécifique : Demos-MP, Sprite avantage efficacité accès direct aux structures de données internes du noyau inconvénient complexité

208 Niveau de mise en oeuvre
Au dessus du système d ’exploitation Condor au dessus d ’Unix migration + point de reprise fichier core : extraction du contenu de la pile, des registres, informations internes et ajout du code avantage portabilité car aucune modification du noyau inconvénient temps de gel important utilisation d’un espace disque important nombreuses restrictions processus simple pas de signaux, pas de communication inter-processus

209 Niveau de mise en oeuvre
Approche intermédiaire 2 aspects dans la migration de processus mécanisme de migration intérêt de l’implanter dans le système (interaction avec l’ordonnancement, communication inter-processus …) politique de migration différentes politiques de collecte de statistique, de décision intérêt d ’une implantation au dessus du système (flexibilité) exemple : Charlotte

210 Métrique pour l’évaluation d’un mécanisme de migration
Coût du transfert Degré d’attachement d’un processus à son site de création

211 Mise en œuvre d’une politique de répartition de charge
Besoin de mesurer les paramètres locaux permettant de déterminer la charge d ’un site taille de la file d ’attente des processus prêts occupation de la mémoire etc … Besoin de disséminer les informations locales vue globale du système compromis entre le coût de la diffusion des informations et la qualité de l’information détenue par un site concernant l’état des autres sites

212 Etude de cas : PVM Parallel Virtual Machine Mise en œuvre
logiciel permettant d’exécuter des applications parallèles sur un réseau de stations de travail opérations de communication et de synchronisation contrôle de la configuration (création d’une machine virtuelle) gestion dynamique des processus Mise en œuvre processus daemon sur chaque site de la machine virtuelle communication entre les processus via le processus daemon

213 Etude de cas : PVM PVMD PVMD PVMD

214 Migration dans PVM Migratable PVM et Dynamic PVM Migratable PVM
ordonnanceur global prend la décision de migrer d ’après des informations de charge 4 étapes ordonnanceur prévient le daemon PVM concerné qu’un de ses processus doit migrer le daemon PVM prévient les autres de la migration en attente (plus de message envoyé au processus à migrer) Après réception des acquittements, transfert de l ’état du processus vers le site de destination où un nouveau processus est créé Connexion du nouveau processus au daemon PVM local et notification de reprise des communications

215 Mosix Mosix : Multicomputer Operating System for unIX
noyau Unix mécanisme de migration de processus ajouté au noyau mécanisme de dissémination de l’information de charge passant à l ’échelle système distribué symétrique Ce que ne fait pas Mosix contrôle d ’admission gestion d’une grappe de type réseau de stations de travail (avec la notion de propriétaire d’une machine)

216 Mosix (2) Équilibrage de la charge de toutes les machines
Mécanisme pour éviter de dépasser la capacité mémoire des machines Distribution de l’information de charge algorithme probabiliste chaque machine tient à jour un vecteur de petite taille contenant de l’information sur sa charge et celle de quelques autres machines Périodiquement, le vecteur est envoyé à une autre machine choisie aléatoirement Chaque machine a une forte probabilité d’être choisie par une autre machine et met à jour son vecteur lorsqu’elle reçoit de l ’information

217 Mosix (3) Quand une machine détecte une grande différence de charge avec une autre machine migration d ’un processus Mécanisme de migration le « home node » d’un processus est la station de travail de son propriétaire processus qui migre est découpé en deux parties corps (migre) contexte utilisateur, contexte noyau indépendant du site mandataire (reste sur le home node) contexte noyau dépendant du site lien de communication entre le corps et le mandataire

218 Mosix (4) Appel système dépendant du site de création mandataire corps
Retour des résultats, signaux Site sur-chargé Site sous-chargé

219 Contrôle d’admission Système de batch et gestion de files d ’attente
Exécution au dessus du système d ’exploitation Objectif équilibrage de charge utilisation des cycles CPU inutilisés fourniture de mécanismes de tolérance aux fautes gestion des accès à la grappe optimiser l ’usage de la grappe

220 Fonctionnement Pour exécuter une tâche dans un système de batch
fichier de description des ressources nom de la tâche temps d ’exécution maximum plate-forme d ’exécution le fichier est transmis par la machine cliente à l ’ordonnanceur principal ordonnanceur principal connaît les ressources disponibles dans la grappe files d ’attente, charge des machines informé régulièrement par les machines de la grappe de leur charge

221 Fonctionnement (2) Ordonnanceur principal
lorsqu’une nouvelle tâche est soumise, il assure ressources disponibles correspondent aux ressources demandées équilibrage de la charge des ressources utilisées surveille l’exécution des tâches jusqu’à leur terminaison si terminaison anormale indépendante de l ’application, relance l ’exécution Gestion de multiples files d ’attente une file par type de tâche tâches parallèles tâches de calcul intensif configuration des files selon le système

222 Fonctionnalités Environnement d ’exécution Support aux applications
prise en compte ou pas de grappes hétérogènes type de plate-forme matérielle type de système d ’exploitation dépendances avec d ’autres logiciels par exemple, un système de fichier particulier Support aux applications possibilité de soumission en batch possibilité d ’exécuter des tâches interactives possibilité d ’exécuter des tâches parallèles (PVM, MPI, HPF) type de files d ’attente (multiples, configurables)

223 Fonctionnalités (2) Ordonnancement des tâches et politique d ’allocation politique de placement prise en compte de la charge de la grappe, des ressources disponibles (type de processeur, charge de calcul, mémoire, espace disque), … impact du système sur le propriétaire d ’une station de travail prise en compte des grappes de type réseaux de stations de travail équilibrage de charge points de reprise

224 Fonctionnalités (3) migration de processus équilibrage de charge
retour du propriétaire surveillance des tâches et re-exécution détection de la terminaison anormale d ’une tâche suspension et reprise ultérieure des tâches utile en cas de problème majeur ou pour minimiser l ’impact de la reprise d ’une station de travail par son propriétaire

225 Fonctionnalités (4) Degrés de configuration
Administration des ressources contrôle de type « qui accède à quelles ressources » ressources utilisées (charge CPU, espace disque, mémoire) Limitation du temps d ’exécution des tâches Gestion des processus fils créés par les applications Gestion des processus ressources partagées ou ressources dédiées à une tâche contrôle du nombre de processus s ’exécutant sur une machine, de la priorité des tâches s ’exécutant sur une station de travail

226 Fonctionnalités (5) Contrôle de l ’ordonnancement des tâches Interface
l ’utilisateur et/ou l ’administrateur doivent pouvoir programmer quand une tâche sera exécutée. Interface graphique ou ligne de commande Facilité d ’utilisation Suivi de l ’exécution d ’une tâche par l ’utilisateur en attente, en cours d ’exécution, temps restant avant terminaison Statistiques sur les tâches exécutées pour l ’administrateur ou les utilisateurs

227 Fonctionnalités (6) Gestion dynamique des ressources
reconfiguration en cours d ’exécution files d ’attente, ressources disponibles variation du nombre de machines en cours d ’exécution ajout, retrait de machines existence ou pas d ’un point unique de défaillance que se passe-t-il en cas de défaillance de l ’ordonnanceur principal ? Existence d ’un ordonnanceur de secours surveillance de l ’ordonnanceur principal par les opérateurs

228 Fonctionnalités (7) Tolérance aux fautes Sécurité
est ce que l ’ordonnanceur vérifie que les ressources sont disponibles avant de leur soumettre des tâches ? Est ce qu ’une tâche est ré-exécutée quand une machine a été victime d ’une défaillance ? Quand la machine qui gère une file d ’attente ou exécute l ’ordonnanceur est défaillante, le système doit pouvoir effectuer son recouvrement. Sécurité au moins les mécanismes de sécurité Unix peut tirer profit de NIS

229 Exemples de systèmes Systèmes commercialisés Prototypes de recherche
Codine Computing in Distributed Network Environment (Genias, Allemagne) -> sun engine LSF Load Sharing Facility (Platform computing, Canada) Prototypes de recherche Condor (Wisconsin State University, USA) DQS Distributed Queuing System (Florida State University, USA) PBS Portable Batch System (NASA, USA)

230 Ordonnancement temps partagé partitionnement de l ’espace
multiprocesseurs les processus partagent la ressource processeur. Allocation de tranches de temps aux processus partitionnement de l ’espace mainframe Un ensemble de processeurs est alloué à une application pour la durée de son exécution (pas de préemption de la ressource processeur) approche intermédaire placement dans l ’espace et le temps tourniquet entre les multiprocesseurs virtuels

231 Ordonnancement de groupes
Contraintes de synchronisation des applications parallèle producteur/consommateur, verrous, processus communiquant ordonnancement simultané des processus d ’une application parallèle ou de processus communiquant souhaitable gain de performance moins de changements de contexte moins de stockage de messages

232 Ordonnancement de groupes dans une grappe
Besoin d ’un mécanisme de diffusion efficace Préemption réseau tranche de temps allouée à un processus n ’est pas décidée localement mais par un ordonnanceur global envoi d ’une requête sur le réseau changement de contexte à la réception de la requête réseau

233 Ordonnandement de groupe à gros grain
Ordonnanceur global diffuse périodiquement la liste des groupes de processus à exécuter Chaque site exécute localement les processus dans l ’ordre spécifié par l ’ordonnanceur global Synchronisation des sites à l ’occasion des diffusions

234 Co-ordonnancement Ordonnancement de groupe Co-ordonnancement
groupes de processus connus à l ’avance Co-ordonnancement groupes de processus déterminés dynamiquement à l ’exécution Co-ordonnancement à la demande décision d ’ordonnancement d ’un processus dépend de l ’observation des communications coopération du système de communication qui doit avertir l ’ordonnanceur des événements de communication

235 Co-ordonnancement à la demande
Surveillance de la destination des messages entrants Adaptation de la priorité des processus destinataires Envoi d ’un message à un processus entraîne son ordonnancement

236 Problèmes Détournement du mécanisme par les programmeurs
envoi de messages juste pour augmenter la priorité des processus Mauvais comportement dans certains cas A1 A2 B1 B2 Nœud 2 Noeud 1

237 Solution Utilisation de numéros d’époque
Chaque nœud gère un numéro d ’époque local Incrémentation du numéro d ’époque local lors des changements de contexte spontanés Numéro d ’époque local inclus dans chaque message émis Réception d’un message comparaison numéro d ’époque reçu avec numéro d ’époque local changement de contexte si numéro reçu > numéro local et numéro local := numéro reçu

238 Haute disponibilité dans les grappes de calculateurs

239 Introduction « Un système informatique réparti est un système où la défaillance d’une machine dont vous ignoriez jusqu’à l’existence peut rendre votre propre machine inutilisable » L. Lamport

240 Plan Sûreté de fonctionnement Tolérance aux fautes
Récupération arrière Système de mémoire virtuelle partagée recouvrable Icare

241 Sûreté de fonctionnement
Un système est sûr de fonctionnement s’il permet à ses utilisateurs de placer une confiance justifiée dans les services qu’il délivre. Critères d ’appréciation fiabilité (reliability) : le système est prêt à fournir le service disponibilité (availability) : fraction du temps durant laquelle le système fournit le service sécurité (safety) : un mauvais fonctionnement du système n ’a pas de conséquence catastrophique sur l ’environnement sécurité (security) : le système préserve l’intégrité et la confidentialité des informations

242 Exemples Système embarqué : fiabilité / disponibilité
Commutateur téléphonique : disponibilité Serveur de fichiers : disponibilité / sécurité (security) SGBD : sécurité (security) Système de freinage du RER : sécurité (safety)

243 Appréciation du comportement du système
Spécification description du service rendu par le système permet de distinguer les bons comportements des mauvais Défaillance service rendu n ’est pas conforme à sa spécification Liens entre sûreté de fonctionnement et défaillance sûreté de fonctionnement directement reliée au nombre de défaillances (taux, intervalle, …) caractérisation précise de la sûreté de défaillance par l’analyse des défaillances du système (MTTF, MTBF, …) prédiction de la sûreté de fonctionnement par modélisation des défaillances

244 Faute  Erreur  Défaillance
Terminologie Défaillance comportement erroné (non conforme à la spécification) Erreur partie de l ’état du système pouvant entraîner une défaillance Faute cause de l’erreur Faute  Erreur  Défaillance

245 Terminologie Faute Erreur produit une erreur quand elle est activée
manifestation de la faute quand la partie fautive du système est utilisée latente détectée par un mécanisme de détection d ’erreur par la défaillance du système risque de propagation d ’erreur

246 Faute interne / externe
Dans un système constitué d ’un ensemble de composants Défaillance d’un composant faute interne pour le système englobant faute externe pour les autres composants Exemples faute logicielle court circuit sur une carte perturbation électromagnétique

247 Obtention de la sûreté de fonctionnement
par construction prévention des fautes par évaluation prévision des fautes par vérification élimination des fautes par redondance tolérance aux fautes utilisation combinée de ces méthodes en pratique

248 Tolérance aux fautes Objectif Mise en œuvre
permettre au système de continuer à fournir le service malgré l ’occurrence de fautes Mise en œuvre détection d ’erreur point de départ de la tolérance aux fautes traitement d ’erreur éviter que l ’erreur ne conduise à une défaillance traitement de faute éviter la réactivation de la faute réparation du système (remplacement du composant défectueux) reconfiguration (transfert de la charge du service sur les composants valides)

249 Détection d’erreur Objectif Paramètres
prévenir l’occurrence d ’une défaillance éviter la propagation de l ’erreur à d ’autres composants faciliter l’identification ultérieure de la faute Paramètres latence de détection taux de couverture influence directe sur la sûreté de fonctionnement

250 Détection d’erreur Technique
comparaison des résultats fournis par des composants dupliqués latence faible taux de couverture élevé nécessité d ’indépendance des condition de création et d’activation des fautes contrôle de vraisemblance coût peu élevé large spectre de détection taux de couverture souvent faible

251 Traitement d ’erreur Compensation d’erreur Recouvrement d’erreur
continuer à fournir le service malgré l ’erreur masquage réplication matérielle ou logicielle détection puis compensation Recouvrement d’erreur remplacer l ’état erroné par un état sain reprise : substitution d ’un état préalablement sauvegardé poursuite : transformation de l ’état erroné

252 Masquage Tandem Integrity/S2 CPU1 CPU2 CPU3 Voteur

253 Détection et compensation d’erreur
Exemple : code correcteur d ’erreur état testé à chaque accès correction si une erreur est détectée

254 Compensation d ’erreur
Avantages traitement d’erreur rapide masquage des fautes pour les autres composants Inconvénients redondance élevée Tandem Integrity/S2 : x3 Stratus : x4

255 Recouvrement d ’erreur par reprise
Principe le système est ramené dans un état qu’il occupait avant l ’occurrence de l ’erreur (retour arrière) cet état doit préalablement avoir été sauvegardé dans un point de reprise Temps P0 P1 Défaillance

256 Support stable Les points de reprise doivent être sauvegardés sur un support stable accessibilité il existe un chemin permettant d ’accéder aux données en dépit des défaillances non altération les défaillances n’altèrent pas les données atomicité des mises à jour propriété du tout ou rien

257 Influence des communications
Système réparti = ensemble de processus communicants P1 P2 Incohérence car P2 a lu un message qui n’a jamais été émis P2 doit effectuer un retour arrière quand P1 est défaillant.

258 Restauration d’un état global cohérent
Un ensemble de points de reprise dont la restauration ramène le système dans un état global cohérent constitue une ligne de récupération Etat global cohérent [CHANDY 85] coupure cohérente C a  C et b  a  b  C P1 P2 P3 P4 C C ’

259 Techniques de reprise Approche optimiste (non planifiée) Avantage
Les sites sauvegardent leurs points de récupération indépendamment les uns des autres La ligne de récupération est calculée au moment du retour arrière Avantage Sauvegarde efficace (ne concerne qu’un site) Inconvénients Sauvegarde de plusieurs points de reprise par processus Effet domino [RANDELL75] Nécessité d’enregistrer les communications

260 L’état initial est le seul état global cohérent.
Effet domino P1 C11 C12 C13 P2 C21 C22 L’état initial est le seul état global cohérent.

261 Techniques de reprise Approche pessimiste (planifiée) Avantages
Lorsqu’un point de reprise est sauvegardé, le protocole garantit que tous les points de reprise forment un état global cohérent. Avantages Un seul point de récupération par processus Retour arrière limité au dernier point de reprise sauvegardé Inconvénients Synchronisation des processus pour l’établissement des points de reprise

262 Synchronisation Synchronisation globale
tous les processus établissent un point de reprise au même moment. Retour arrière de tous les processus en cas de défaillance Synchronisation des points de reprise et des communications sauvegarde d ’un point de reprise lors de chaque communication pour empêcher la formation de dépendances entre les processus Avantages retour arrière d’un seul processus en cas de défaillance Inconvénients fréquence de sauvegarde des points de reprise dépend des applications Exemples : Sequoia, CARER, Gothic

263 Synchronisation Coordination dynamique solution intermédiaire
prise en compte des communications entre processus pour définir dynamiquement l’ensemble des processus concernés par la sauvegarde d ’un point de reprise Exemples FASST [KOO & TOUEG87]

264 Système à mémoire virtuelle partagée recouvrable
Communication par partage de mémoire beaucoup de messages sous-jacents => précautions à prendre dans la mise en œuvre des stratégies de retour arrière dans les systèmes à mémoire virtuelle partagée performance espace de stockage messages de grande taille contiennent des pages communications implicites

265 RDSM Technique de reprise Gestion des structures de données de la DSM
Support de stockage stable

266 Un exemple de mémoire virtuelle partagée recouvrable : Icare
Système à mémoire partagée recouvrable pour une grappe de calculateurs concilier haute disponibilité et efficacité gestion de la réplication des données dans la grappe pour l ’efficacité et la redondance nécéssaire à la mise en œuvre d ’une stratégie de retour arrière idée d ’abord étudiée dans le domaine des architectures extensibles à mémoire partagée (COMA) Prototype développé à l ’IRISA 1993/1996 grappe de PCs sous micro-noyau Chorus interconnectés par un réseau ATM

267 Objectifs Tolérer la défaillance d ’un composant de la grappe
continuité de service sur la grappe privée du nœud défaillant Exploiter les mécanismes utilisés pour les besoins de la tolérance aux fautes pour améliorer l ’efficacité en fonctionnement normal et après la reprise Passage à l ’échelle Pas de matériel spécifique

268 Hypothèses de tolérance aux fautes
Nœuds (processeur + mémoire) à silence sur défaillance Réseau d’interconnexion fiable Unité de défaillance = nœud Point de reprise global coordonné et incrémental tous les nœuds impliqués dans la sauvegarde d ’un point de reprise seules les données modifiées sont répliquées Tolérer des fautes transitoires multiples et une faute permanente simple

269 Modèle de système Mémoires locales des nœuds = caches de l ’espace virtuel partagé Page = unité de cohérence et de transfert Protocole de cohérence à invalidation sur écriture Berkeley mis en oeuvre à base de répertoires statiquement distribués Invalide (I), Partagé (P), Exclusif (E), Non-exclusif (NE) Le nœud gestionnaire d ’une page pointe sur le propriétaire de la page (copie E ou NE) Le nœud propriétaire détient la copie la plus à jour de la page et gère la liste des copies de la page

270 Gestion des données de récupération partagées
Stockage des données de récupération dans les mémoires standard Les données de récupération sont équivalentes à des données actives entre deux points de reprise tant que la page n ’est pas modifiée Extension du protocole de cohérence de la MVP Partagé-PR (P_PR) : données de récupération accessibles en lecture Invalide-PR (I-PR) : données de récupération non accessible en fonctionnement normal Une copie P_PR est transformée en I_PR à la première modification de la page

271 Création d ’un point de reprise
Protocole de validation à 2 phases initiée par le coordonnateur Phase 1 : création de nouvelles données de récupération Phase 2 : validation du nouveau point de reprise et élimination des anciennes données de récupération

272 Création d ’un point de reprise
Pour chaque page dont il est propriétaire, un nœud crée deux copies des données de récupération Exemplaire unique transformation de la copie locale en P_PR1 création d ’une copie P_PR2 sur un noeud distant (ex: voisin) Exemplaires multiples exploitation d ’une copie P existante sur un nœud distant qui passe dans l ’état P_PR2 Pas de changement pour les données P_PR qui appartiennent aux deux points de reprise

273 Les deux phases Phase de création Phase de validation
E -> PRE_COMMIT1 NE -> PRE_COMMIT1 P -> PRE_COMMIT2 si elle est choisie Phase de validation PRE_COMMIT1 -> P_PR1 PRE_COMMIT2 -> P_PR2

274 Retour arrière Invalidation des données actives
P, NE, E -> I Restauration du dernier point de reprise P_PR I_PR -> P_PR

275 Faute permanente d ’un nœud
Perte d ’un nœud dans son intégralité perte du contenu d ’un module mémoire perte d ’un gestionnaire pour certaines pages perte d ’un propriétaire pour certaines pages identité du nœud défaillant diffusée à tous les autres nœuds Reconfiguration Attribution d ’un nouveau gestionnaire à chaque page mise à jour des informations du gestionnaire Pour chaque page, vérification de l ’existence de deux copies régénération d ’une copie en cas de perte mise à jour du propriétaire si besoin

276 Avantages du protocole de cohérence étendu
Pas de matériel spécifique Création efficace de points de reprise exploitation des données existantes transfert de données entre les mémoires à travers le réseau d ’interconnexion Faible perturbation du comportement des mémoires les données de récupération d ’une page non modifiée sont consultables par les processeurs Reconfiguration aisée de l ’architecture ré-allocation des pages perdues dans une mémoire quelconque

277 Evaluation Prototype Applications parallèle Splash Mesures effectuées
dégradation de performance par rapport à une architecture standard modification du comportement de la mémoire extensibilité

278 Analyse de la dégradation de performance
Comparaison entre un système à mémoire virtuelle partagée avec un protocole de cohérence standard et un système implantant le protocole de cohérence étendu Deux sources de dégradation sauvegarde des points de reprise création (surcoût le plus important), validation efficacité de la réplication de données surcoût dépend de la fréquence des points de reprise présence des données de récupération en mémoire

279 Modification du comportement de la mémoire
Echelle des coûts Etat compatible avec l ’accès coût succès Augmentation de droits d ’accès défaut Etat incompatible l ’accès Page non présente

280 Augmentation de droits d ’accès
Résultats Icare Lecture sur page P_PR2 coût succès Augmentation de droits d ’accès défaut Ecriture sur page P_PR2 Mais effet négatif des écritures sur des pages P_PR1

281 Optimisation Quand le programmeur connaît le comportement de son application Pour éviter l ’effet négatif dû au changement d ’état E -> P_PR1 création des données de récupération directement dans l ’état I_PR pas de modification de l ’état de la page active qui reste accessible en écriture

282 Leçons Exploitation de la réplication existante jusqu ’à 50 %
Temps d ’exécution avec la version tolérante aux faute inférieur à la version standard dans plusieurs cas Utilisation pour le calcul des données répliquées dans le cadre du retour arrière jusqu ’à 85% des défauts évités idée : intervention au niveau de la politique de réplication pour une amélioration des performances

283 Affinité mémoire Définition: Il existe de l ’affinité mémoire entre un module mémoire M et un processus p d ’un nœud N si M contient au moins une page que p utilise pour s ’exécuter Concept issu de celui d ’affinité de cache différences affinité créée dans Icare/mesurée dans le cas de caches migration de données dans Icare/migration de processus dans un multiprocesseur exploitation de la localité spatiale et temporelle des applications parallèles

284 Efficacité en fonctionnement normal
Anticipation dynamique des défauts de page Contrôle de la réplication des seconds exemplaires de récupération (P_PR2) Enregistrement de l ’historique de l ’utilisation d ’une page dans le champ liste_histo Liste_histoi(p) = Liste_répliquesj(p) + j si i référence une page p en écriture dont j est propriétaire Mécanisme très peu coûteux à mettre en oeuvre

285 Contrôle de la réplication des données
Création de la seconde copie de récupération effectuée par un nœud N exemplaires multiples : exploitation d ’une copie existante exemplaires uniques si Liste_histoi(p) !={} : réplication sur Liste_histoi(p).premier sinon : réplication sur le nœud voisin (N+1) mod nb_noeuds

286 Faute permanente Reconfiguration de la mémoire
Reconfiguration de l ’application : reprise des processus sur des nœuds sains Fonction gestionnaire de secours Objectif : restaurer le système dans un état le plus proche possible de celui dans lequel il se trouvait avant la défaillance

287 Efficacité à la reprise : éviter un déséquilibrage de la charge
Distribuer la charge des processus du nœud défaillant à tous les autres nœuds Deux types de données données partagées données privées Etablissement d ’un point de récupération pour les données privées sauvegarde locale de la première copie sauvegarde de la seconde copie distribuée utilisation d ’une table de localisation

288 Reconfiguration par affinité
Contrôle de la réplication à l ’établissement d ’un point de récupération stockage de l ’identité du processus à l ’origine du chargement de la page en mémoire réplication de cette page sur le nœud qui aura la charge de la reprise du processus en cas de défaillance : consultation de la table de localisation éviter l ’éparpillement des pages accédées par un même processus dans tout le système éviter la période transitoire de regarnissage des mémoires à la reprise

289 Résumé Page partagée multiple : l ’un des exemplaires est exploité
évite la création d ’une page à l ’établissement d ’un point de récupération Page privée (unique) soumise à l ’algo de contrôle de la réplication équilibre après la reprise évite l ’éparpillement des pages relatives à un même processus Page partagée unique disposant d ’un historique : soumise à l ’algo de contrôle de la reprise reposant sur l ’historique anticipe les défauts de page en fonctionnement normal Page partagée unique sans historique : soumise à l ’algo de contrôle de la réplication lié aux données privées évite la période transitoire de regarnissage des mémoires

290 Le système Gobelins : un multiprocesseur virtuel sur un cluster de PCs
Etude de cas Le système Gobelins : un multiprocesseur virtuel sur un cluster de PCs

291 Plan Le système Gobelins Gestion de la hiérarchie mémoire
Haute disponibilité Mise en œuvre Conclusion

292 Le système Gobelins Exécution d ’applications à haute performance sur des grappes de PCs Haute performance Haute disponibilité Simplicité de programmation

293 Modèle de programmation
CPU Mémoire Bus Disque Multiprocesseur à mémoire partagée

294 Modèle de programmation
Ordonnanceur Processus CPU CPU CPU CPU DSM Mémoire Mémoire SGFP Grappe de calculateurs

295 Gestion globale des ressources
Mémoire mémoire partagée répartie Disque système de gestion de fichiers parallèle Processeur ordonnancement global migration de thread

296 Ordonnancement global
Ordonnancement prend en compte : synchronisation Exécution simultanée des tâches d’une même application Ordonnancement prioritaire d’une tâche qui détient un verrou partage de données Corrélation entre tâches

297 Gestion de la hiérarchie mémoire
Container Système d’exploitation virtuelle Système de fichiers SGFP

298 Le container Entité virtuelle : ensemble de pages
accessible par tous les nœuds de la grappe cohérence séquentielle des données garantie en présence de partage Base pour la mise en œuvre de la gestion globale des ressources

299 Principes de fonctionnement
Mémoire physique considérée comme un cache des pages d’un container page référencée par un nœud est placée dans sa mémoire physique gestion des copies multiples protocole de cohérence à invalidation sur écriture remplacement injection en mémoire distante

300 Types de containers Volatile partage de mémoire entre threads
partage de segment de mémoire entre processus mémoire virtuelle partagée

301 Types de containers Fichier Lié projection de fichiers
projection de fichiers parallèles en mémoire virtuelle partagée système de caches coopératifs de fichiers Lié Accès transparent aux périphériques distants

302 Noyau Pile Fichier projeté Données Code Mémoire virtuelle Cache fichiers physique Lié Volatile

303 Avantages Gestion uniforme de la hiérarchie mémoire
Support à la migration de thread Mise à l ’échelle de la grappe des services systèmes traditionnels

304 Haute disponibilité Objectifs
Tolérer l’arrêt ou la défaillance d’un nœud du cluster nœuds à silence sur défaillance système de communication fiable Tolérer les coupures de courant Minimiser la dégradation de performance

305 Contexte de l ’étude First prototype of Gobelins
Implementation on top of Linux Shared Virtual Memory System (SVM) as DSM Simple PFS Single Level Store system (SLS) Parallel file mapping in shared virtual memory

306 Single Level Store Virtual memory File system
swapping Virtual memory File system Two addressing mechanisms in traditional systems Virtual memory Uniform addressing in a SLS

307 SLS in a cluster Support for the execution of parallel applications based on the shared memory programming model in a cluster Distributed Shared Virtual Memory Illusion of a shared memory on top of physically distributed memory modules Remote paging Parallel File System Files are fragmented on several disks in different nodes Higher disk bandwidth by reading in parallel file fragments on different disks

308 Distributed Shared Virtual Memory
SLS in a cluster Parallel File System File mapping Distributed Shared Virtual Memory

309 SLS Functioning Data loading Data replacement page loaded from the PFS
First cluster wide page fault on a page p page loaded from the PFS Subsequent page faults on p page retrieved from a remote node holding a copy of p Data replacement For a given shared page, the number of copies in the cluster is decreased Injection of the last copy of a page if possible a modified page is flushed to the PFS a read-only page is simply discarded

310 SLS DSM Virtual memory Physical memory Mapped page Volatile page

311 Gestion efficace des données de récupération
Sauvegarde des données de récupération en mémoire [Icare] Redondance Exploitation de la réplication de données existante pour la création des points de reprise Exploitation des données de récupération pour l’efficacité du calcul

312 Limitations de Icare Pas de gestion du remplacement de données en mémoire utilisation d’un quart de la mémoire disponible Point de reprise exclusivement en mémoire ne tolère pas les coupures de courant affectant le cluster

313 Checkpointing Approach
Permanent checkpoint Time Memory Checkpoint

314 Memory Checkpoint Protocol
Combining data replication needed for high performance and data replication needed for high availability Creation of new recovery data for each page modified since the last checkpoint 2 recovery copies in 2 distinct node memories exploitation of existing copies Checkpoint creation ME MNE Node 1 Node 2 Node 3

315 Current Checkpoint Composition
(1) Recovery data in memory (2) Disk copies of PFS data for which no recovery data exists in memory Node 1 Node 2 Node 3

316 Issues (1) How to guarantee checkpoint consistency in a SLS?
Data transfers between memory and disk (2) How to ensure that a checkpoint can be saved at any time? There may not be enough memory available to create a new memory checkpoint (3) How to manage permanent checkpoints? (4) How to manage the replacement of recovery data?

317 Cleaner Checkpointing Algorithm
Optimistic approach for managing write operation into PFS disks SLS philosophy: injection to delay copying of data into disk disks writes not permitted between 2 checkpoints (issue 1) Cleaner Checkpointing Algorithm to avoid a deadlock a checkpoint is created on disk rather than in memory if no memory available (issue 2) or if a permanent checkpoint is requested (issue 3) memories are cleaned up to avoid deadlock

318 Cleaner Checkpointing Algorithm
Checkpoint type memory checkpoint permanent checkpoint maybe forced by the system if not enough memory available to store a memory checkpoint Cleaning policy Two extremes no cleaning: standard checkpoint total cleaning: to be avoided ! Various intermediate policies depending on page copy states

319 Performance Measurement
Cluster of 4 dual processor PCs interconnected with SCI technology User level implementation of the SLS on top of Linux operating system (2.2.13) Shared Virtual Memory System 4 KB pages write invalidate coherence protocol coherence information shared by all nodes Parallel File System cyclic distribution of pages Preliminary measurements: MGS

320 Cleaner Checkpointing Algorithm

321 Performance Analysis

322 Recovery Data Replacement
Pure recovery data used only if a failure occurs highest replacement priority copied to a local system disk in a dedicated area which is emptied each time a new checkpoint is saved Active recovery data may be referenced same treatment as modified pages careful injection to avoid that the two recovery copies of the same page are located in the same node

323 Mise en œuvre du système Gobelins Plate-forme d ’expérimentation
Cluster de 28 PCs bi-processeurs Réseaux Fast Ethernet GigabitEthernet SCI Système Linux Version

324 Mise en œuvre de Gobelins
Système d ’exploitation distribué Single System Image grappe transparente à l’utilisateur multiprocesseur à mémoire partagée Connaissance des paramètres d’utilisation des ressources physiques définition de politiques adaptées au comportement des applications Extension du noyau Linux par des modules minimisation des modifications du noyau détournement de fonctions de bas niveau

325 Mise en œuvre des containers
6 fonctions du noyau détournées 150 lignes de code ajoutées ou modifiées dans le noyau Containers : 2000 lignes

326 Conclusion et perspectives
Gobelins : un OS conçu pour faire d’un cluster un multiprocesseur virtuel Travaux en cours mise en œuvre des containers et de la migration de threads étude des mécanismes de haute disponibilité

327 Perspectives Gestion de la hiérarchie mémoire
Optimisation des accès aux disques Détection automatique des patrons d’accès aux données Gestion des processeurs Politiques d’ordonnancement global Haute disponibilité intégration des mécanismes étudiés dans le cadre du SLS Expérimentation avec des applications de grande taille out of core Serveur de données pour Internet adaptation de Gobelins à l’exécution de bases de données et serveurs Web


Télécharger ppt "Christine Morin Thierry Priol"

Présentations similaires


Annonces Google