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

Le Clustering Les réseaux hautes performances

Présentations similaires


Présentation au sujet: "Le Clustering Les réseaux hautes performances"— Transcription de la présentation:

1 Le Clustering Les réseaux hautes performances
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Le Clustering Architecture système Les réseaux hautes performances La multiprogrammation distribuée Ingéneiurs 2000 Professeurs: Mr Duris, Mr Revuz

2 Clustering VS Grid Computing
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Introduction Segments du marché Définition Clustering VS Grid Computing

3 Exposés NT / Réseaux 2006/2007 Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont
Les segments de marché Conception mécanique Science des matériaux Défense et sécurité Conception microélectronique Géo-sciences Visualisation

4 Qu’est ce qu’un cluster?
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Qu’est ce qu’un cluster? Grappe de serveurs ou de ferme de calcul Théorie apparue dans les années 70 : premier cluster fonctionnel dans le milieu des années 80 par Digital Equipment Corporation, sous le nom de VAXCluster Objectifs : faciliter la montée en charge augmenter la disponibilité permettre une répartition de la charge diminuer les temps de calculs réaliser opérations non réalisables sur un serveur réduire les coûts : prix / performance d’une grappe de PC est de 3 à 10 fois inférieur à celui des supercalculateurs traditionnels

5 Cluster vs Grid Computing
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Cluster vs Grid Computing Cluster Grid Computing Sécurité Isolé du réseau par un firewall Sécurité des clients difficiles à gérer Structure Le plus homogène possible Hétérogène Coût Très élevé Peu élevé Priorité Vitesse de calcul Volume de calcul Données Dépendantes Indépendantes Durée de calcul Déterminable Inconnue Localisation Un seul site Répartie

6 Architecture détaillée
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Architecture système Architecture Architecture détaillée Les systèmes

7 Exposés NT / Réseaux 2006/2007 Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont
Architecture Node : Poste client connecté au réseau et capable d’exécuter du code informatique sous l’ordre d’un serveur. Head Node : Serveur du cluster d’ordinateurs. Il est responsable de la répartition du travail entre les différents postes clients ainsi que de leur synchronisation. Il récupère également les erreurs et les résultats des calculs. On lui soumet les différents travaux qu’il gère à l’aide d’une file d’attente.

8 Architecture Détaillée
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Architecture Détaillée Modèle NUMA (Non Uniform Memory Access): Les processeurs peuvent opérer avec la mémoire de manière indépendante et être de types et de vitesses différentes Un système de cohérence de cache mais complexe

9 Architecture logicielle 1/2
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Architecture logicielle 1/2 BIOS : Basic Input/Output System. Système qui gère, sur une machine, l'entrée et la sortie des données et les échanges avec les périphériques. API : MPI/PVM cf. partie « La multiprogrammation distribuée réseau » pour cluster

10 Architecture logicielle 2/2
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Architecture logicielle 2/2 Operating System : Linux-Unix : Beowulf, Mosix, OpenMosix BSD : Mosix Mac OS : Xgrid Windows : windows 2003 cluster server R2 OS Nombre Répartition Linux 376 75.20 % Unix 86 17.20 % BSD Based 3 0.60 % Mac OS Mixed 32 6.40 %

11 Exposés NT / Réseaux 2006/2007 Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont
Exemple de systèmes Builder Computer Country CPU Processor Frequency Operating System IBM eServer Blue Gene USA 131072 PowerPC 440 700 CNK/SLES 9 Cray Inc. Sandia/ Cray Red Storm 26544 AMD x86_64 Opteron Dual Core 2400 UNICOS/SUSE Linux 40960 eServer pSeries 12208 POWER5 1900 AIX BladeCenter JS21 Spain 10240 PowerPC 970 2300 SuSE Linux Enterprise Server 9 Dell PowerEdge 9024 Intel EM64T Xeon EM64T 3600 Linux Bull SA NovaScale 5160 France 9968 Intel IA-64 Itanium 2 1600

12 Les réseaux hautes performances pour clusters
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Les réseaux hautes performances pour clusters Problématiques autour de TCP / IP Principes des réseaux hautes performances Les différentes technologies

13 Pourquoi TCP / IP n’est pas adapté ?
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Pourquoi TCP / IP n’est pas adapté ? Création fin des années 70, peu d’évolutions. Adapté à l’Internet et aux réseaux peu fiables, trop compliqué pour la haute performance. Primitives généralement bloquantes Copie des informations dans le socket buffer CPU et bus mémoire très sollicités (traitement protocolaires, checksums) Mal adapté aux nombreuses connexions malgré la recherche (threads, epoll) Importante latence due aux appels systèmes pour accéder a l’interface réseau Application Interface sockets TCP UDP IP Ethernet Emetteur données Récepteur données Copie Copie Socket Buffer Socket Buffer DMA DMA Carte Réseau Carte Réseau Lien

14 Message Passing Interface (MPI)
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Message Passing Interface (MPI) Interface dédié au calcul parallèle, économise le processeur Paradigme du rendez-vous, messages asynchrones. Communications zero-copy , l’interface copie directement de la mémoire vers le réseau sans utiliser le processeur central (pour large messages) OS Bypass, Communication direct entre les applications et la carte réseau sans effectuer d’interruptions couteuses (gain en latence) Chemin déterministe, optimisation de la commutation et du routage, gestion simple des congestions Send Req Rcv Req Transfert T E M P S Calculs Comm Send evt Rcv evt Hôte NIC NIC Hôte Emetteur données Récepteur données DMA DMA Carte Réseau Carte Réseau Lien

15 RDMA: Remote Direct Memory Access
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont RDMA: Remote Direct Memory Access Concurrent du paradigme rendez-vous Utilisé dans Infiniband, QsNet et SCI Obligation d’une attente active car pas de notification RDMA req Window T E M P S Calculs Transfert Comm RDMA evt Hôte NIC NIC Hôte

16 Les différentes technologies:
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Les différentes technologies: 10 Gigabit Ethernet Gigabit Ethernet InfinyBand Ethernet beowulf Myrinet Quadrics PVM SCI MPI 1980 1985 1990 1995 2000 2005

17 La topologie la plus utilisée:
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont La topologie la plus utilisée: Clos Network 1/3 Définie par Charles Clos en 1953 Un étage d’entrée, un étage intermé diaire et un étage de sortie.

18 Exposés NT / Réseaux 2006/2007 Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont
Clos network 2/3

19 Exposés NT / Réseaux 2006/2007 Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont
Clos network 3/3 Solution: Le nombre de p switches Doit être supérieur à 2n-1 n G switches P switches G switches

20 Scalable Cohérent Interface
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont SCI: Scalable Cohérent Interface Société Dolphin, début des années 90 Utilisation de RDMA Latence de 1.4 µs Débit théorique 700 Mo/s avec PCI Express Topologie anneau Recouvrement minim Mauvaise compatibilité avec MPI Pas de zéro copie

21 Exposés NT / Réseaux 2006/2007 Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont
Myrinet Société Myricom, 1995 Leader du marché Latence de 2 µs Débit théorique 1.2 Go/s unidirectionnel Émulation ethernet TCP/IP possible Connectique standard (RJ 45 et fibre) Bonne compatibilité avec MPI sur avec la version MX 795 $ 6 600 $ $

22 Exposés NT / Réseaux 2006/2007 Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont
QsNet Société Quadrics Traduction adresse virtuel / adresse physique par la carte grâce à une MMU (Memory Management Unit) Latence de 2 µs Débit théorique 900 Mo/s full duplex avec PCI-X Super Calculateur présent à Bruyère le Châtel (Essonne) de 60 teraflops Spécificités non ouvertes, travaux difficiles Bonne Compatibilité PMI malgrès RDMA

23 Exposés NT / Réseaux 2006/2007 Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont
Issue de deux projet: Futur I/O (Compaq, IBM et HP) et System I/O (Intel, Microsoft et Sun) A l’origine devait concevoir un nouveau bus, au final utilisation du PCI-express Grande efficacité 4/5 de la bande passante Plus proche d’IP, topologie non fixée, routage dans les commutateurs Interconnexion de serveurs mais aussi de baie de stockage (HCA et TCA) Adresses niveau 2 (LID) et niveau 3 (GID) single double quad 1X 2 Gbit/s 4 Gbit/s 8 Gbit/s 4X 16 Gbit/s 32 Gbit/s 12X 24 Gbit/s 48 Gbit/s 96 Gbit/s

24 La multiprogrammation distribuée réseau pour clusters
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont La multiprogrammation distribuée réseau pour clusters Conception MPI – PVM Exemple

25 Concevoir des programmes distribués
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Concevoir des programmes distribués Parallélisme Partitionnement Dépendances

26 Parallélisme manuel ou automatique ? (1)
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Parallélisme manuel ou automatique ? (1) Comprendre le problème et le programme Déterminer si une exécution parallèle de l’application peut apporter un gain de performance. Pour cela, il faut qu’il y ait une certaine indépendance dans le traitement des données. Soit le traitement sur une partie des données est indépendant du traitement des autres, soit il existe des tâches qui peuvent être traitées indépendamment des autres. 2 modes de parallélisme pour le programmeur : Automatisation totale Directive de programmation

27 Parallélisme manuel ou automatique ? (2)
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Parallélisme manuel ou automatique ? (2) Parallélisme automatique Le compilateur analyse le code source et identifie les opportunités du parallélisme. L'analyse inclut d’identifier le coût des améliorations à l’exécution. Les boucles (do, for) sont les plus fréquentes cibles du parallélisme automatique Parallélisme manuelle Utilise des directives de compilation explicitant le code pouvant être parallélisé

28 Parallélisme manuel ou automatique ? (3)
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Parallélisme manuel ou automatique ? (3) Automatique Avantages : convient aux débutants, dans le cas de restrictions de temps et/ou budgétaires Inconvénients : peut engendrer de faux résultats, des dégradations de performances, limité aux boucles du code, si le code est trop complexe peut ne pas être parallélisé, les meilleurs outils sont pour le Fortran Manuelle Avantages : flexible, décomposition prend en compte l’ensemble du problème, plusieurs degrés de parallélisme, indépendant des outils de programmation et compilation, parallélisme explicite, gestion des communications et E/S par le programmeur Inconvénients : nécessite des programmeurs expérimentés, peut engendrer de faux résultats, travail plus important du programmeur en amont

29 Partitionnement – Décomposition (1)
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Partitionnement – Décomposition (1) Première étape d’écriture d’un programme parallèle Consiste à découper le problème, soit en terme de données indépendantes, soit en terme de fonctionnalités Va dépendre du gain apporté par la mise en parallèle du calcul 2 types de partitionnement : Décomposition par domaine Décomposition par fonction

30 Partitionnement – Décomposition (2)
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Partitionnement – Décomposition (2) Décomposition par domaine La donnée associée au problème est décomposée. Chaque tâche travaille sur une portion de donnée.

31 Partitionnement – Décomposition (3)
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Partitionnement – Décomposition (3) Décomposition par fonction Dans cette approche, l’objectif est fixé sur le calcul qui doit être effectué plutôt que les données manipulées par le calcul. Le problème est décomposé suivant le travail devant être effectué. Chaque tâche effectue une portion du calcul total.

32 Dépendances de données
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Dépendances de données Définition Une dépendance existe entre des instructions d’un programme lorsque l’ordre d’exécution de ces instructions affecte le résultat. Une dépendance de données résulte de l’utilisation du même espace mémoire par différentes tâches. Les dépendances sont un des points clefs de la programmation parallèle parce qu’elles sont le principal inhibiteur au parallélisme.

33 Développer des programmes distribués
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Développer des programmes distribués L’API MPI L’API PVM

34 Programmation par transmission de messages
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Programmation par transmission de messages Message Passing Interface (MPI) Il s’agit d’un environnement dans lequel une application MPI est un ensemble de processus autonomes exécutant chacun leur propre code et communiquant via des appels à des routines de la bibliothèque MPI Implémentations MPI (domaine public) : MPICH : http :// LAM : http ://

35 MPI – Manipulation de l’environnement
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont MPI – Manipulation de l’environnement Première instruction du main(int argc, char **argv) : MPI_Init(&argc,&argv); Dernière instruction MPI du programme : MPI_Finalize(); Pour connaître le nombre de processus lancés MPI_Comm_size(MPI_COMM_WORLD,&NbPE); Pour connaître le numéro du processus MPI_Comm_rank(MPI_COMM_WORLD,&Me); MPI_COMM_WORLD

36 MPI – Communications point à point
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont MPI – Communications point à point Instructions de communication point à point : MPI_SEND(); MPI_RECV(); Les données échangées sont typées : Entiers, réels, etc. Types personnels.

37 MPI – Communications collectives
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont MPI – Communications collectives Communications collectives : permettent de faire en une seule opération une série de communications point-à-point. Type de routines : Assure les synchronisations globales : MPI_BARRIER(). Transfert des données : MPI_BCAST(), MPI_SCATTER(), MPI_GATHER(), MPI_ALLGATHER(), MPI_ALLTOALL().

38 Machine virtuelle parallèle
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Machine virtuelle parallèle Parallel Virtual Machine PVM permet à un ensemble de machines informatiques (Pc, Mac, Amiga, Cray...) connectées sur un réseau local de se conduire comme une seule et même ressource permettant d'effectuer des opérations de calculs parallèles.

39 PVM - Caractéristiques
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont PVM - Caractéristiques Composition de PVM un démon ; une console ; des bibliothèques pour la programmation : échange de messages. Caractéristiques Simple (cache les problèmes à l’utilisateur) Portable : tourne sur Linux, FreeBSD, SunOS, Mips, SG IRIS ... Hétérogène : machines, architectures, OS, réseaux. La machine virtuelle peut être composée de machines séquentielles et parallèles

40 Exposés NT / Réseaux 2006/2007 Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont
PVM - Fonctionnement Constitution de la machine virtuelle (MV) : les démons pvm (pvm3d) sont lancés par le démon maître sur les machines distantes grâce à rsh/ssh Connexion des tâches à la MV Création ou lancement de nouvelles tâches Échange de messages entre les tâches Task2 Task1 Task3 Task4 Task2 Task1 Task3 Task4

41 PVM – Exemple « Esclave »
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont PVM – Exemple « Esclave » #include "/opt3/PVM3/pvm3/include/pvm3.h" int main(int argc, char** argv) { int ptid; char buf[100]; int mytid; mytid = pvm_mytid(); ptid = pvm_parent(); strcpy(buf, "hello from "); gethostname(buf + strlen(buf), 64); pvm_initsend(PvmDataDefault); pvm_pkstr(buf); pvm_send(ptid, 1); pvm_exit(); exit(0); }

42 Exposés NT / Réseaux 2006/2007 Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont
PVM – Exemple « Maître » #include "/opt3/PVM3/pvm3/include/pvm3.h" int main(int argc, char** argv) { int cc, tid; char buf[100]; printf("I am t%x\n", pvm_mytid()); cc = pvm_spawn("/root/PVM/HELLO/hello_toto", (char**)0, 0, "", 1, &tid); if (cc == 1) { cc = pvm_recv(-1, -1); pvm_bufinfo(cc, (int*)0, (int*)0, &tid); pvm_upkstr(buf); printf("from t%x: %s\n", tid, buf); } else printf(“coin ! hello_toto kapout\n"); pvm_exit(); exit(0);

43 Comparaison PVM – MPI (1)
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Comparaison PVM – MPI (1) PVM (Parallel Virtual Machine) standard de fait grand nombre d’architecture supportées beaucoup d’outils développé pour l’environnement de programmation MPI (Message Passing Interface) mise en commun des avantages existant volonté de normaliser : sémantique précise, sans choix d’implantation objectifs : portabilité, puissance d’expression et bonnes performances

44 Comparaison PVM – MPI (2)
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Comparaison PVM – MPI (2) Les petits plus de MPI Construction de types... Description sophistiquée (types personnels, structure, réordonnancement à la volée) Efficacité et lisibilité Définition de topologie virtuelle Topologie en grille ou graphe en vue d’une répartition efficace des processus

45 Comparaison PVM – MPI (2)
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Comparaison PVM – MPI (2) Les petits plus de PVM Documentation (livre, web) Interface Graphique (xpvm) Architecture Matérielle: PVM supporte mieux les clusters hétérogène

46 Exemple de programme distribué
Exposés NT / Réseaux 2006/ Aurélien Piaszczynski, Mathieu Brunet, Romain Bachimont Exemple de programme distribué Le ray tracer POVRAY en mode distribué: PVMPOV


Télécharger ppt "Le Clustering Les réseaux hautes performances"

Présentations similaires


Annonces Google