Académique Documents
Professionnel Documents
Culture Documents
Arc Par 2
Arc Par 2
Pipeline unidimensionnel
Concept : chane de montagne dans une usine Objectif : amlioration des performances
tches
H
E1 H
E2 H
T H
Ek
T H
Hypothses : Ei : tage i (1 i k), T : tampon et H : horloge Temps(Ei) = i, Temps(T) = 0 et = max{1 i k, i} + 0 n tches, T1 et Tk : temps sans et avec pipeline de k tages Tk = 0 + k + (n - 1) = (k + n - 1) + 0 Supposons que T1 = nk Rendement = T1/Tk = nk/ [(k + n - 1) + 0] nk/(k+n - 1)
Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008
Algorithme de calcul
1. Dterminer r = max(p,q) et t = | p q | 2. Dcaler droite la mantisse associe au plus petit exposant par t bits 3. Additionner les mantisses pour obtenir c 4. Normaliser le rsultat : si c < 1 alors u = 0 si c > 1 alors u = 1 5. Le rsultat final est : d = c << u et s = r + u
Pipeline 2 dimensions
Calcul de C= A * B o A et B sont 2 matrices dordre n Algorithme classique (SISD) contient n3 multiplications si n = 104 et une multiplication en 1 s temps d'excution = 11 j Tableau systolique pour la multiplication (MISD) nombre de cellules de base 3n-3n+1 multiplication est complte aprs 3n-1 priodes si n = 104 et une priode en 1 s MISD = 300 M processeurs et temps d'excution = 0,03 s
Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008
Compilation
Ordinateurs pipeline
Chevauchement du traitement de donnes dans : - UAL - UC - Processeur d'E/S - Hirarchie de la mmoire La performance peut se dgrader de faon significative cause de la dpendance des donnes ---> conflit des ressources.
Ordinateurs vectoriels
Un superordinateur est caractris par : - haute vitesse de calcul - MP et MS grandes et rapides - logiciels // gnralement conu pour effectuer le calcul - vectoriel - ou matriciel utilis dans les applications scientifiques : prvision mtorologique, recherche nuclaire, intelligence artificielle
Algorithme LRU de remplacement des tampons d'instruction *P = Program counter 22 bits NIP = Next Instruction Parcel 16 bits CIP = Current Instruction Parcel 16 bits LIP = Lower Instruction Parcel 16 bits *Recip Ap : Inverse approximatif d'un oprande de 64 bits en virgule flottante. Pop/17 : compter le nombre de "1" dans l'oprande/ compter le nombre de '0' prcdant un "1" *Nombres en virgule flottante (64 bits) et en double prcision (128 bits) Dans Cray-1, une opration sur 1 vecteur ayant 3 lments s'excutent plus rapidement en mode scalaire 4 lments ou plus s'excutent plus rapidement en mode vecteur.
Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008
Compilation
Vectorisation (1/3)
Vectorisation : ensemble de transformations apportes un programme scalaire conduisant de bonnes performances lorsqu'il est excut sur un ordinateur vectoriel. Rle : Compilateur ou manuellement (rgles ou critres) Exemple: D0 10 I = 1, 10 V(I) = A(I) + B(I) 10 CONTINUE V(1) = A(1) + B(1) V(2) = A(2) + B(2) V(3) = A(3) + B(3) --------V(1) = A(1) + B(1)
Vectorisation (2/3)
Indpendance des donnes DO 10 I = 1, 20 X(I) = X(I) + 5 10 CONTINUE Dpendance des donnes DO 10 I = 2, 20 X(I) = X(I-1) + 5 10 CONTINUE X(1) = X(1) + 5 X(2) = X(2) + 5 X(3) = X(3) + 5 X(2) = X(1) + 5 X(3) = X(2) + 5 X(4) = X(3) + 5
Restructuration du programme DO 20 I = 1, 1000 DO 20 J = 1,100 DO 20 J = 1, 100 DO 20 I = 1,1000 A(I,J+1) = A(I,J) + B(I,J) A(I,J+1) = A(I,J) + B(I,J) 20 CONTINUE 20 CONTINUE
Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008
Vectorisation (3/3)
Eclatement de la boucle DO 30 I = 1,100 A(I) = A(I) + 2 B(I+1) = B(I) + 1 30 CONTINUE DO 20 I=1,100 A(I) = A(I)+2 20 CONTIONUE DO 30 I =1,100 B(I+1)=B(I)+1 30 CONTINUE
Instruction conditionnelle et de branchement DO 30 I = 1,100 DO 30 I=1,100 10 if (A(I) > 0) Goto 30 10 S(I) = A(I) > 0 20 B(I) = C(I) * 5 20 if S(I) then B(I) = C(I)*5 30 CONTINUE 30 CONTINUE Exemples : ACTUS (1979) et VECTRAN (1975)
Vectorisation assiste
Vectorisation automatique (compilateur) n'est pas encore une solution satisfaisante pour optimiser la performance d'un ordinateur vectoriel car : ralisation d'un compilateur vectoriel est complexe algorithmes sophistiqus Vectorisation assiste : compilateur dtecte les zones du programmes requrant le plus de temps d'excution. utilisateur peut intervenir pour restructurer le code du module. Outils : bibliothque de sous-programmes vectoriss (crits par l'utilisateur ou par le constructeur). Par exemple : oprations matricielles, quations d'algbre linaire, dtermination des valeurs propres, traitement du signal (TFR), Exprience de l'utilisateur (architecture, compilateur, bibliothque).
Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008