SMPI : Simulation d applications MPI dans SimGrid

Documents pareils
Réseau longue distance et application distribuée dans les grilles de calcul : étude et propositions pour une interaction efficace

Limitations of the Playstation 3 for High Performance Cluster Computing

Communications performantes par passage de message entre machines virtuelles co-hébergées

Contributions à l expérimentation sur les systèmes distribués de grande taille

CORBA haute performance

Rapport d activité. Mathieu Souchaud Juin 2007

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales

Agrégation de liens xdsl sur un réseau radio

Thomas Loubrieu (Ifremer) Small to Big Data Novembre 2013, Ifremer, Brest

THÈSE. pour obtenir le grade de. Spécialité : "Informatique : Systèmes et Communications"

Cluster High Performance Computing. Dr. Andreas Koch, Cluster Specialist

Votre Réseau est-il prêt?

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Portage d applications sur le Cloud IaaS Portage d application

Conseils et astuces pour un déploiement réussi de la solution VMware Mirage

Métrologie réseaux GABI LYDIA GORGO GAEL

Dimensionnement Introduction

Détection d'intrusions en environnement haute performance

Programmation C. Apprendre à développer des programmes simples dans le langage C

Parallélisme et Répartition

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Cisco Certified Voice Professional. Comprendre la QoS

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Programmation parallèle et distribuée

CH.3 SYSTÈMES D'EXPLOITATION

Analyse de la bande passante

Gestion de clusters de calcul avec Rocks

HPC by OVH.COM. Le bon calcul pour l innovation OVH.COM

Technologie de déduplication de Barracuda Backup. Livre blanc

Surveillance et corrélation de flux réseaux via sondes applicatives embarquées

Accélérer l agilité de votre site de e-commerce. Cas client

Protocoles réseaux. Abréviation de Binary Digit. C'est la plus petite unité d'information (0, 1).

Projet IGGI. Infrastructure pour Grappe, Grille et Intranet. Fabrice Dupros. CASCIMODOT - Novembre Systèmes et Technologies de l Information

Administration réseau Firewall

Maîtriser les technologies Big Data pour obtenir des résultats en quasi-temps réel

4 Exemples de problèmes MapReduce incrémentaux

Réseaux grande distance

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Chapitre 5 : Flot maximal dans un graphe

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Présentation et portée du cours : CCNA Exploration v4.0

Résumé CONCEPTEUR, INTEGRATEUR, OPERATEUR DE SYSTEMES CRITIQUES

Architecture des calculateurs

Tests de SlipStream sur les plateformes et : vers la. Vers la fédération du Cloud computing

Stockage des machines virtuelles d un système ESXi jose.tavares@hesge.ch & gerald.litzistorf@hesge.ch

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Ordonnancement contrôlé de migrations à chaud

ITIL Gestion de la capacité

Prototype de canal caché dans le DNS

Infrastructures Parallèles de Calcul

Disponibilité et fiabilité des services et des systèmes

Tests de performance du matériel

Programmation parallèle et distribuée

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Reproductibilité des expériences de l article "Analyse et réduction du chemin critique dans l exécution d une application"

Ebauche Rapport finale

Introduction aux Technologies de l Internet

Le turbo met les gaz. Les turbines en équation

Protection des données avec les solutions de stockage NETGEAR

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

Our experience in using Apache Giraph for computing the diameter of large graphs. Paul Bertot - Flavian Jacquot

Installation et configuration du CWAS dans une architecture à 2 pare-feux

Architecture des ordinateurs

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

4D v11 SQL Release 5 (11.5) ADDENDUM

Les clusters de calcul

TCP/IP, NAT/PAT et Firewall

Cours n 12. Technologies WAN 2nd partie

Algorithmique des Systèmes Répartis Protocoles de Communications

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

MB Led. Benjamin Bonny Cédric Le Ninivin Guillaume Normand

Consolidation Stockage.

Graphes de trafic et Statistiques utilisant MRTG

Mise en oeuvre TSM 6.1

Profitez de tous les avantages de votre réseau, comme vos clients Remédiez à la coupure du service

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Sécurité des réseaux Firewalls

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

MANUEL D INSTALLATION

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

Chapitre 7. Le Protocole SNMP 7.1 INTRODUCTION COMPOSANTES POUR L UTILISATION FONCTIONNEMENT LE PAQUET SNMPV1...

IRL : Simulation distribuée pour les systèmes embarqués

Efficacité énergétique des réseaux de cœur et d accès

RESEAUX TCP/IP: NOTIONS AVANCEES. Preparé par Alberto EscuderoPascual

Manuel de l Administrateur

Retour d expérience RATP. Intégrer le test de performance au cœur du processus de développement agile. Challenges, techniques, résultats.

Solutions de stockage réseau

L effet régulateur des moteurs de recherche. MICHEL Laurent

Qualité du logiciel: Méthodes de test

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

ACQUISITION DE MATERIEL INFORMATIQUE

Ordonnancement sous contraintes de Qualité de Service dans les Clouds

Figure 1a. Réseau intranet avec pare feu et NAT.

Contrôle Non Destructif : Implantation d'algorithmes sur GPU et multi-coeurs. Gilles Rougeron CEA/LIST Département Imagerie Simulation et Contrôle

ACQUISITION. Traitement de l image. Classement. Préparation. Ouverture. Performance

Introduction. Adresses

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Transcription:

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss Université de Nancy, Équipe AlGorille 17 février 2011 SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 1/ 26

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 2/ 26 Plan Introduction Précision Scalabilité Vitesse Conclusion et perspectives

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 3/ 26 Plan Introduction Motivations Approches Description de SMPI Précision Scalabilité Vitesse Conclusion et perspectives

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 4/ 26 Motivations : pourquoi utiliser la simulation? Prédiction de performance (hypothèses scénaristiques) Spécification de plateforme Adaptation matérielle Paramétrage applicatif Apprentissage (programmation parallèle, calcul haute-performance) Pas de recours nécessaire à des plateformes réelles Environnement local, pas d interférences Défis à relever Précision : la simulation reflète-t-elle la réalité? Scalabilité : quelle taille d application simuler? sur quelles plateformes? Vitesse : la simulation est-elle plus rapide que l exécution réelle? Reproductibilité : les résultats sont-ils stables et réutilisables?

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 5/ 26 Approches : comment faire une simulation? Simulation off-line Acquisition et rejeu de traces Liée à un jeu de paramètres applicatifs Besoin d une taille minimale de plateforme Impossibilité de simuler des applications sensibles au réseau LogGOPSim, PSiNS Simulation on-line Exécution directe du code Simulation des temps de communication Une seule machine nécessaire MPI-NetSim, SMPI

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 6/ 26 Simulation on-line dans SMPI Implémentation partielle de MPI au-dessus de SimGrid Pas ou peu de modification du code (C ou Fortran) Exécution réelle du code sur une machine hôte Report des temps d exécution dans la simulation Modèle CPU : ratio de puissance Simulation des communications Modèle réseau par flux (ethernet) Validité des modèles pour les applications MPI Repliement d une application répartie dans un seul processus système Sérialisation des calculs Espace d adressage unique Nécessité de réduire l emprunte mémoire (scalabilité) et CPU (vitesse)

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 7/ 26 Modèles réseaux existants dans SimGrid Caractéristiques des liens : latence (L) et bande-passante (B) Simulation par flux Simulation rapide Calcul de contention simple Modèle simple : T (S) = L + S B Modèle valide pour S 10 Mo S min(β B, 2 L) γ α permet de modéliser le slow-start de TCP β permet de modéliser le surcoût des en-têtes TCP/IP γ permet de modéliser les effets de la fenêtre TCP Modèle amélioré : T (S) = α L + Modèle valide pour S 100 Ko, trop gros pour des applications MPI Besoin d un nouveau modèle réseau

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 8/ 26 Validation expérimentale : mesure de l erreur Comparer un temps réel R et un temps simulé S Différence : Err = S R R = 10 ms S = 9 ms Err = 1 ms R = 1 s S = 1.001 s Err = 1 ms

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 8/ 26 Validation expérimentale : mesure de l erreur Comparer un temps réel R et un temps simulé S Erreur relative : Err = S R R R = 10 ms S = 9 ms Err = 0.1 (-10 %) R = 1 s S = 1.001 s Err = 0.001 (0.1 %)

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 8/ 26 Validation expérimentale : mesure de l erreur Comparer un temps réel R et un temps simulé S Erreur relative : Err = S R R R = 1 s S = 0.5 s Err = 0.5 (-50 %) R = 1 s S = 2 s Err = 1 (100 %)

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 8/ 26 Validation expérimentale : mesure de l erreur Comparer un temps réel R et un temps simulé S Erreur logarithme : Err = ln(s) ln(r) = ln(r) ln(s) R = 1 s S = 0.5 s Err = 0.69 (100 %) R = 1 s S = 2 s Err = 0.69 (100 %)

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 9/ 26 Plan Introduction Précision Opérations point-à-point Opérations collectives Scalabilité Vitesse Conclusion et perspectives

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 10/ 26 Communications point-à-point : Griffon 100000 Temps de communication (en µs) 10000 1000 100 1 10 100 1000 10000 100000 1e+06 1e+07 Taille des messages (en octets) Mesures expérimentales avec SKaMPI Modèle linéaire par défaut, 32.1% d erreur

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 10/ 26 Communications point-à-point : Griffon 100000 Temps de communication (en µs) 10000 1000 100 1 10 100 1000 10000 100000 1e+06 1e+07 Taille des messages (en octets) Mesures expérimentales avec SKaMPI Modèle linéaire optimal, 18.5% d erreur

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 10/ 26 Communications point-à-point : Griffon 100000 Temps de communication (en µs) 10000 1000 100 1 10 100 1000 10000 100000 1e+06 1e+07 Taille des messages (en octets) Mesures expérimentales avec SKaMPI Découpage en morceaux

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 10/ 26 Communications point-à-point : Griffon 100000 Temps de communication (en µs) 10000 1000 100 1 10 100 1000 10000 100000 1e+06 1e+07 Taille des messages (en octets) Mesures expérimentales avec SKaMPI Nouveau modèle linéaire par morceaux, 8.63% d erreur

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 11/ 26 Instantiation du modèle linéaire par morceaux 9 paramètres au lieu de 3 pour le modèle précédent 2 limites de segments 2 facteurs α et β par segment 1 facteur γ global SMPI est fournit avec un script d instantiation qui utilise 1 fichier de données au format SKaMPI Le nombre de liens traversés lors du ping-pong La valeur de L et B pour les liens Les limites des segments

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 12/ 26 Collectives : choix des algorithmes Différents algorithmes optimaux dans différentes situations Monde réel (OpenMPI, MPICH2) Sélection dynamique des algorithmes Fonction du nombre de processus et de la taille des messages Monde simulé (SMPI) Un seul algorithme pour tout les cas Conséquence : implémentation manuelle pour comparaison

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 13/ 26 One-to-many : MPI_Scatter 0 8 4 2 1 12 10 9 6 5 3 14 13 11 7 15 Algorithme par arbre binomial 64 Mo à la racine, 4 Mo par processus

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 14/ 26 Scatter : Comparaison entre processus 1 0.8 SMPI avec contention SMPI sans contention OpenMPI MPICH2 Temps (en s) 0.6 0.4 0.2 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Processus La prise en compte de la contention est importante Comparaison SMPI/MPICH2 OpenMPI/MPICH2 : 5.3% d erreur

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 15/ 26 Plan Introduction Précision Scalabilité NAS Benchmark Data Traffic Réduction de la consommation mémoire Résultats sur Data Traffic Vitesse Conclusion et perspectives

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 16/ 26 NAS : Data Traffic (DT) Peu de calculs (hormis la construction du graphe) Schémas de communications possibles : WhiteHole (WH) 0 4 3 2 1 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 BlackHole (BH) 6 7 5 14 15 2 12 0 9 10 11 4 13 3 1 8 17 19 16 18 20 La taille du problème détermine le nombre de processus Classe A : 21 processus Classe B : 43 processus Classe C : 85 processus

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 16/ 26 NAS : Data Traffic (DT) Peu de calculs (hormis la construction du graphe) Schémas de communications possibles : Shuffle (SH) 10 11 9 8 12 13 14 15 3 2 1 0 5 4 7 6 27 25 29 31 19 17 21 26 24 28 30 18 16 20 23 22 43 47 35 41 45 33 39 37 42 46 34 40 44 32 38 36 63 59 55 51 61 57 53 49 62 58 54 50 56 60 48 52 71 79 67 75 69 77 70 78 66 74 64 72 65 73 68 76 La taille du problème détermine le nombre de processus Classe A : 80 processus Classe B : 192 processus Classe C : 448 processus

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 17/ 26 DT : Comparaison avec OpenMPI 4 3.5 SMPI OpenMPI BH BH 3 WH WH Temps (en s) 2.5 2 1.5 1 0.5 WH WH BH BH 0 A Classe de problème B Erreur moyenne : 8.11% Difficile d exécuter SH ou la classe C en réel : taille limite du cluster Pas assez de mémoire pour simuler SH au-delà de la classe B

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 18/ 26 Réduction de la consommation mémoire Exemple : double* data = (double*)smpi_shared_malloc(...);... SMPI_SHARED_FREE(data); Changements mineurs Tableaux partagés entre les processus Résultats des calculs faux Temps simulés corrects

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 19/ 26 Réduction de la consommation mémoire : DT RSS maximale par processus (en Mo) 500 400 300 200 100 0 SMPI SMPI + Réduction de RAM BH SH WH WH BH SH WH WH BH BH SH SH WH BH WH OM OM A B C Classe de problème BH SH OM SH Gain en moyenne d un facteur 11.9 (maximum 40.5) La classe C devient accessible

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 20/ 26 Plan Introduction Précision Scalabilité Vitesse NAS Benchmark Embarassingly Parallel Réduction de l utilisation CPU Résultats sur Embarassingly Parallel Conclusion et perspectives

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 21/ 26 NAS : Embarassingly Parallel (EP) Pas de communications (hors aggrégation des résultats) Partage du calcul entre les processus Cas réel idéal : exécution parallèle des processus Simulation : exécution séquentielle des processus Simulation plus lente que l exécution réelle avec moins de ressources

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 22/ 26 Réduction de l utilisation CPU Exemple : for(i = 0; i < n; i++) SMPI_SAMPLE_LOCAL(0.75*n,0.01) {... }... for(j = 0; j < k; j++) SMPI_SAMPLE_GLOBAL(0.5*k,0.01) {... } Changements mineurs Échantillonnage : mesure du temps CPU pour un ensemble d itérations Chaque processus exécute le nombre d itérations spécifié (LOCAL) Tous les processus participent à l exécution (GLOBAL) Simulation des itérations restantes par la moyenne des mesures

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 23/ 26 Réduction de l utilisation CPU : EP Temps de simulation (en s) 120 100 80 60 40 SMPI (Temps de simulation) SMPI (Temps simulé) OpenMPI 26 25 24 23 22 21 20 19 Temps simulé (en s) 20 100 75 50 Ratio d échantillonnage (en %) 18 25 Diminution linéaire de l utilisation CPU avec le ratio d échantillonnage Pas de perte de précision de simulation

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 24/ 26 Plan Introduction Précision Scalabilité Vitesse Conclusion et perspectives

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 25/ 26 Conclusion SMPI est un simulateur fonctionnel qui permet la reproductibilité Open Source Script d instantiation Le nouveau modèle réseau apporte plus de précision Les techniques de réduction de l usage des ressources améliorent à la fois la vitesse et la scalabilité Les améliorations apportées ont fait l objet d une validation importante Connaissance des cas positifs Identification des points améliorables

SMPI : Simulation d applications MPI dans SimGrid Pierre-Nicolas Clauss 26/ 26 Perspectives Améliorations à court terme Prise en compte de comportements ethernet Prise en compte de phénomène de sérialisation des paquets Objectifs à moyen terme Modèles pour d autre types de réseaux : Myrinet, Infiniband Objectifs à plus long terme Simuler les entrées/sorties Utiliser automatiquement les techniques de réduction à la compilation Simuler une implémentation MPI donnée : OpenMPI, MPICH2