1 / 39

FAST : Fast Agent System Timer

FAST : Fast Agent System Timer . Un outil de modélisation des performances dans un environnement de metacomputing Équipe ReMaP LIP, ENS Lyon, France. Plan. Introduction Comment utiliser FAST ? L’API de FAST Extension parallèle (Freddy – FS et EC) Quelques résultats expérimentaux

flavian
Download Presentation

FAST : Fast Agent System Timer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FAST : Fast Agent System Timer Un outil de modélisation des performances dans un environnement de metacomputing Équipe ReMaP LIP, ENS Lyon, France

  2. Plan • Introduction • Comment utiliser FAST ? • L’API de FAST • Extension parallèle (Freddy – FS et EC) • Quelques résultats expérimentaux • Conclusions et travaux futurs

  3. Prédiction de performances Grid computing Objectif : Fédérer les ressources de calcul Le web est pour les informations, la grille sera pour les calculs Avantages : Potentiel sans fin. En bref, c’est l’avenir. Problèmes : Encore nombreux… • Découverte des ressources • Ordonnancement • Sécurité • Passage à l’échelle

  4. interactif échelle macro Besoin des routines Disponibilité du système Étalonnage préalable des sous programmes Surveillance du système (NWS) • Temps de calcul • Espace mémoire • Communications • Charge processeur • Mémoire et disque libre • Bande passante et latence Présentation de FAST Objectif : prédireles performances de sous-programmessur machine donnée à un instant donné.

  5. Connaître les besoins des routines Différentes méthodes selon la routine : • Routines simples (BLAS) • Étalonnage à l’installation • Routines complexes (ScaLAPACK) • Étude du source et décomposition en appels à FAST élémentaires • Routines compliquées (Matrices creuses) • Pas de prédiction, choix de la machine la plus puissante

  6. Les problèmes de l’étalonnage • Obtention des chronométrages • Charge extérieure • Temps processeur (utime + stime) • Obtention de l’espace mémoire • Variation au cours de la vie du processus • Exécution en mode pas à pas (comme gdb) Le processus est long, mais • Uniquement à l’installation • Réutilisation des résultats pour un parc de machines • Étalonnage pour des machines types puis facteur correctif

  7. Requête Réponse Serveur de nom Prédicateur Requête Mémoire Données Stockage Stockage Senseur Senseur Test Connaître les disponibilités du système : NWS Network Weather Service (Prof. Wolski) • Mesure la disponibilité de ressources • charge CPU, bande passante, etc. • Prédit les futures variations par traitement statistique • Extensible et ouvert • Largement répandu (Globus, NetSolve, Ninf, etc.) Client Test

  8. Plan • Introduction • Comment utiliser FAST ? • L’API de FAST • Extension parallèle (Freddy – FS et EC) • Quelques résultats expérimentaux • Conclusions et travaux futurs

  9. Utiliser FAST Phase 1 : Lors de l’installation Étape 1 : Installer Étape 2 : Étalonner les routines possibles Phase 2 : Pour l’utilisation Étape 3 : Mettre en place la plate-forme Étape 4 : Utiliser FAST

  10. Installer FAST Dépendances : - Berkeley DB 2 : base de donnée classique. - Gnu Scientific Library : pour faire des maths facilement - LDAP : base de données hiérarchique et distribuée - NWS : système de surveillance du système Mais c’est très simple :) - ces éléments sont simples à installer - autoconf pour trouver ces bibliothèques automagiquement - on pourrait retirer des dépendances…

  11. fast_bench Programme : Étalonner les routines possibles Programme contenant les opérations à tester + Entrée : Scénario des tests Base de données des résultats bruts (10-100Mo) Interpolation polynomiale fonction des paramètres + Résultat : Dépendances : BDB + GSL

  12. Programme contenant l’opération int main(int argc,char **argv){ […] TransA=(argv[1])[0]; TransB=(argv[2])[0]; M=atol(argv[3]); N=atol(argv[4]); K=atol(argv[5]); alpha=atof(argv[6]); beta=atof(argv[7]); LDA=(TransA == 'n' || TransA == 'N' ? M : K); ka =(TransA == 'n' || TransA == 'N' ? K : M); […] A=(double *)malloc(sizeof(double)*LDA*ka); memset(A,2,sizeof(double)*LDA*ka); […] dgemm_(&TransA,&TransB,&M,&N,&K, &alpha,A,&LDA, B,&LDB, &beta,C,&M); return 0; }

  13. Scénario des tests à réaliser CATEGORY=BLAS/dtrsm BINARY=./fast_bench_blas ARGS=%!s=dtrsm;%s=l|r;%s=u|l;%s=n|t;%s=u|n;%d=128:1152:128;%c=5 #side=l|r uplo=u|l TransA=n|t diag=u|n M N CATEGORY=BLAS/dgemm BINARY=./fast_bench_blas ARGS=%!s=dgemm;%s=n;%s=n;%d=128:1152:128;%d=128:1152:128;%d=128:1152:128;%a;%a Un jour, ce fichier sera en XML :)

  14. Interpolation des résultats(fonctionS des paramètres) Pour le temps de dgemm dans le cas {n,n,2,2} sur icluster : degré 3, 20 termes. Time(M,N,K)=2-2-2-4 M -6-6 N -9-8 K +4-7 M2 -2-8 N2 -2-11 K2 +9-8 MN +1-10 MK +2-7 NK -2-10 M3 +7-5 N3 -8-7 K3 +4-11 M2N -2-11 MN2 +1-7 M2K +3-11 MNK -3-8 N2K -3-11 MK2 -1-8NK2 Chi2= 3.765074-1 Remarques : • Degré entre 3 et 6 (limite pratique) • Mécanisme automatique

  15. Utiliser FAST (suite) Phase 1 : Lors de l’installation Étape 1 : Installer Étape 2 : Étalonner les routines possibles Phase 2 : Pour l’utilisation Étape 3 : Mettre en place la plate-forme Étape 4 : Utiliser FAST

  16. NameServer slapd Forecaster Mémoire Agent Client Senseur Senseur Serveur Serveur Serveur Serveur Senseur Senseur Senseur Senseur Ex. : plate-forme de test pour NetSolve Client Maître … Esclave 1 2 3 n

  17. Mettre en place la plate-forme NWS : NWS ne fournit aucun outil pour la configuration, et lancement, et nous avons un script Perl. LDAP : - Configuration et lancement : template sur ma page - Peupler : ldapadd DiET : ???

  18. L’API FAST FAST masque la complexité à l’ordonnanceur  seulement 3 fonctions de haut niveau comm_time(source, destination, data_desc) comp_time(host, problème, data_desc) get_time(host, problème, data_desc, localisation)

  19. Plan • Introduction • Comment utiliser FAST ? • L’API de FAST • Extension parallèle (Freddy – FS et EC) • Quelques résultats expérimentaux • Conclusions et travaux futurs

  20. Un peu de modélisation • Modéliser une application parallèle • Description de l’application • Modélisation de la plate-forme • Différents modèles théoriques • Communications nulles, délai, LogP, … • Supposent une connaissance à priori de la plate-forme d’exécution • Contraire à la « philosophie » de FAST

  21. Modèles utilisés • Modèle +L pour les communications point-à-point • Pour les communications globales • Dépendant de la plate-forme et de la topologie • Fonctions basées sur  et  (valeurs déterminées par FAST) • Appels à FAST pour les calculs

  22. Simplifications effectuées • Utilisation efficace de ScaLAPACK  Processeurs et réseau homogènes • Processeurs homogènes  Étalonnage sur un seul processeur • Réseau homogène  Surveillance de quelques liens représentatifs

  23. 0 1 2 0 1 3 4 5 3 4 0 1 2 0 1 3 4 5 3 4 0 1 2 0 1 Produit de matrices ScaLAPACK N B • Distribution cyclique par blocs bidimensionnelle • Chaque processeur est responsable de ses blocs • A chaque étape • Diffusion des pivots • Multiplication d’un bloc de lignes par un bloc de colonnes K K A C M R

  24. Modélisation avec FAST (1) • Temps de calcul sur une grille (p x q) • temps_dgemm obtenu par l’appel FAST fast_comp_time_best (hôte, dgemm_desc, temps_dgemm) • Tailles des matrices pour l’appel

  25. Modélisation avec FAST (2) • Temps de communication • Cas d’un arbre de diffusion • Remplacement des fonctions par leurs valeurs  termes en log •  et acquis par appels à FAST fast_bandwidth (source, dest, TAU) fast_latency (source, dest, BETA)

  26. Plan • Introduction • Comment utiliser FAST ? • L’API de FAST • Extension parallèle (Freddy – FS et EC) • Quelques résultats expérimentaux • Séquentiel (FAST) • Parallèle (Freddy) • Conclusions et travaux futurs

  27. Plateforme de tests • On s’intéresse à la qualité des prédictions et non leur impact sur la qualité de l’ordonnancement • Plateforme assez simple, bien qu’hétérogène • Deux machines : • Kwad : serveur de calcul expérimentalQuadriprocesseur Pentium III (550 MHz), Linux 2.4, 512 Mo de RAM • Pixies : machine de bureauPentium II (350 MHz), Linux 2.2, 128 Mo de RAM • Liens Fast Ethernet entre les nœuds

  28. Moyenne : 1% Modélisation temporelle de dgemm

  29. Moyenne : 10% Modélisation temporelle du plus

  30. Modélisation spatiale • Les résultats sont quasi parfaits : • Moins de 1% d’erreur maximale • Erreur moyenne de l’ordre de 0,1% • La taille d’un programme effectuant une opération matricielle est : Taille du code + Taille des matrices (constante) (polynomiale)

  31. Prédiction ? ? Valeur Valeur Ai,Ar,Br Ai,Ar,Bi Ci = Ci1 + Ci2 Cr1=Ar x Br ; Ci1=Ai x Br Cr = Cr1 – Cr2 Cr2=Ai x Bi ; Ci2=Ar x Bi Ci2 Cr1 Ci Cr Prédiction de performances Produit de matrices complexes parallèle : Cr=Ar x Br – Ai x Bi et Ci=Ai x Br + Ar x Bi Lancement du chronomètre Arrêt du chronomètre LDAP NWS Client PIXIES Serveur 1 Serveur 2 KWAD

  32. 23% Moyenne: 15% Prédiction de performances :Le produit de matrices complexes

  33. Prédiction de performances :Freddy • Processeurs et réseau homogènes • Taille fixe et forme de grille variable • Grille fixe et taille variable • Matrices identiques et grilles disjointes • Alignement • Grilles virtuelles • Redistributions

  34. Comparatif Erreur max. : 14,7 % Erreur moy. : 3,8 % Mesuré Estimé

  35. Taux d’erreur Grille 8x4

  36. A B Temps (s) Redistributions et calculs

  37. Plan • Introduction • Comment utiliser FAST ? • L’API de FAST • Extension parallèle (Freddy – FS et EC) • Quelques résultats expérimentaux • Conclusions et travaux futurs

  38. Conclusions • Metacomputing prometteur, et sujet de recherche actif • Problème : ordonnancement et estimation de performances • FAST est capable d’estimer les performances de séquences d’opérations en modélisant les opérations simples • Il n’est pas si compliqué à utiliser…

  39. Travaux futurs • Tester pour d’autres opérations • Gérer les opérations parallèles • Diminuer le temps d’étalonnage • Enlever des dépendances, ajouter PCP et autres • Porter sur d’autres plateformes comme SP3 et Sun Entreprise • Coopération accrue avec les équipes de NWS et de NetSolve • Étendre aux réseaux Myrinet, SCI, VIA, etc. • Intégration à DIET

More Related