get_time(host, problème, data_desc, localisation)

publicité
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
Conclusions et travaux futurs
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
Prédiction de performances
Sécurité
Passage à l’échelle
Présentation de FAST
interactif
échelle macro
Objectif : prédire les performances de sous-programmes
sur machine donnée à un instant donné.
Besoin des routines
Disponibilité du système
• Temps de calcul
• Charge processeur
• Espace mémoire
• Mémoire et disque libre
Étalonnage
• Communications
préalable • Surveillance
Bande passante
du système
et latence
des sous programmes
(NWS)
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
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
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.)
Mémoire
Serveur de nom
Prédicateur
Données
Stockage
Stockage
Requête
Senseur
Test
Senseur
Test
Requête
Réponse
Client
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
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
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…
Étalonner les routines possibles
Entrée :
Programme contenant
les opérations à tester
Base de données des
résultats bruts (10-100Mo)
Dépendances :
Scénario des tests
fast_bench
Programme :
Résultat :
+
BDB
+
+
Interpolation polynomiale
fonction des paramètres
GSL
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;
}
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 :)
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
-2-10 M3 +7-5 N3 -8-7 K3
+9-8 MN +1-10 MK +2-7 NK
+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
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
Ex. : plate-forme de test pour NetSolve
NameServer
slapd
Client
Agent
Senseur
Forecaster
Mémoire
Senseur
Client
Maître
Serveur
Serveur
Serveur
Senseur
Senseur
Senseur
Esclave 1
2
3
…
Serveur
Senseur
n
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 : ???
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)
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
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
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
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
Produit de matrices ScaLAPACK
N
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
B
K
A
M
R
C
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
Modélisation avec FAST (1)
Temps de calcul sur une grille (p x q)
  x temps_dgemm
K
R
temps_dgemm obtenu par l’appel FAST
fast_comp_time_best (hôte, dgemm_desc, temps_dgemm)
Tailles des matrices pour l’appel

M
P

N
x R et R x q
Modélisation avec FAST (2)
Temps de communication



q
p
q p K
(MxK) p (KxN) q (βp βq) R
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)
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
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érimental

Quadriprocesseur Pentium III (550 MHz), Linux 2.4, 512 Mo de RAM
• Pixies : machine de bureau
Pentium II (350 MHz), Linux 2.2, 128 Mo de RAM
• Liens Fast Ethernet entre les nœuds
Modélisation temporelle de dgemm
Comparaison des temps modélisés et mesurés
120
Modèle Pixies
Mesure Pixies
Modèle Kwad
Mesure Kwad
80
60
40
20
Moyenne : 1%
0
12
8
25
6
38
4
51
2
64
0
76
8
89
6
10
24
11
52
Temps (s)
100
Taille des matrices
Modélisation temporelle du plus
1
0,9
0,8
0,7
0,6
0,5
0,4
0,3
0,2
0,1
0
Prédiction Pixies
Mesuré Pixies
Prédiction kwad
Mesuré kwad
Moyenne : 10%
12
8
25
6
38
4
51
2
64
0
76
8
89
6
10
24
11
52
Temps (s)
Comparaison des temps modélisés et mesurés
Taille des matrices
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)
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
Arrêt du du
chronomètre
chronomètre
Prédiction
LDAP
Valeur
?
Client
NWS
Ai,Ar,Br
Ci
Ai,Ar,Bi
Cr
Ci =x Ci1
Ci2 x Br
Cr1=Ar
Br ;+Ci1=Ai
Cr =
Cr1; Ci2=Ar
– Cr2 x Bi
Cr2=Ai
x Bi
Serveur 1
Valeur
?
Ci2
Cr1
Serveur 2
Prédiction de performances :
Le produit de matrices complexes
Comparaison des temps prédits et mesurés
160
140
23%
Temps (s)
120
100
Mesuré
Prédiction
80
60
Moyenne: 15%
40
20
0
128
256
384
512
640
768
Taille des matrices
896 1024
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
Comparatif
Erreur max. : 14,7 %
Erreur moy. : 3,8 %
35,00
30,00
25,00
20,00
15,00
10,00
5,00
0,00
35,00
1
6
1
11
6
16
30,00
11
16
21
21
26
25,00
26
31
31
20,00
15,00
10,00
Mesuré
Estimé
5,00
0,00
1
6
1
11
6
16
11
16
21
21
26
26
31
31
Taux d’erreur
12
Grille 8x4
Taux d'erreur (en %)
10
8
6
4
2
0
1024
2048
3072
4096
5120
6144
Taille des matrices
7168
8192
9216
10240
Redistributions et calculs
A
B
60
Temps (s)
50
40
30
20
10
0
Redistribution
Produit
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
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…
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
Téléchargement