58
CRIHAN - Mars 2001 Outils d’optimisation - Page 1 Outils d’aide à l’optimisation scalaire sur Origin 2000 v 2.0 Guy Moebs [email protected]

CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs [email protected]

Embed Size (px)

Citation preview

Page 1: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 1

Outils d’aide àl’optimisation scalaire

sur Origin 2000v 2.0

Guy [email protected]

Page 2: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 2

Plan de la formation

• 1. Architecture matérielle Origin2000

• 2. Environnement logiciel

• 3. Perfex

• 4. Speedshop

• 5. Load balancing MPI

Page 3: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 3

1- Architecture matérielle O2000

• Architecture O2000 (64 procs) :

Page 4: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 4

• Sommet du cube constitué :• un routeur

• deux noeuds

• Routeur connecté à 4 routeurs voisins• Noeud composé :

• 2 processeurs R10000

• un commutateur HUB

• une mémoire partagée (1 Go)

1- Architecture matérielle O2000

R

Page 5: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 5

1- Architecture matérielle O2000

• Le HUB :• est connecté aux deux processeurs du noeud,

• sert d'interface entrées/sorties et connexions avec le reste des processeurs de la machine.

• La mémoire :• est partagée entre les processeurs du noeud,

• est adressable par l'ensemble des processeurs de la machine.

Page 6: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 6

1- Architecture matérielle O2000

• Processeurs type R10000 (MIPS IV) :• une fréquence horloge de 195 MHz,

• une puissance crête/processeur de 390 Mflops,

• un transfert crête de données vers le cache secondaire de 2.08 gbits/s,

• deux espaces cache :– un cache primaire d'instructions de 32 Ko et de données de 32Ko,

– un cache secondaire de 4 Mo,

• une mémoire totale de 32 Go.

Page 7: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 7

1- Architecture matérielle O2000

• Organisation de la mémoire

Page 8: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 8

1- Architecture matérielle O2000

• Temps d’accès mémoire

Page 9: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 9

2- Environnement logiciel

• A. Compilateurs– Déboguage,

– Optimisation,

– Groupes d’options et manpages utiles.

• B. Makefile

• C. Eléments de Fortran 90– Déclarations,

– Allocation dynamique,

– Interface.

Page 10: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 10

2- A. Compilateurs : déboguage

• Options :-O0 : aucune optimisation,

-g3 : enrichir la table des symboles,

-fullwarn : recevoir tous les messages du compilateurs (-woff pour filtrer),

-DEBUG:trap_uninitialized=ON : mise à NaN des variables non initialisées,

-DEBUG:subscript_check=ON : vérification des indices des tableaux,

-DEBUG:div_check=3 : vérification des divisions et des overflows pour les entiers,

-DEBUG:verbose_runtime=ON : numéros des lignes source des erreurs.

• Bibliothèques :-lfpe : bibliothèque de gestion des exceptions flottantes

setenv TRAP_FPE“ALLCOUNT;UNDERFLOW=ZERO;OVERFL=TRACE(2),ABORT(2);INVALID=TRACE(2),ABORT(2)“

Page 11: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 11

2- A. Compilateurs : optimisation

• Procéder par étapes,• Valider les résultats à chaque étape,• Étapes :

-O0 : résultats de référence,

-O2 : optimisations locales/globales fiables,

-O3 -OPT:IEEE_arithmetic=1:roundoff=0 : optimisations plus aggressives,

-O3 -OPT:IEEE_arithmetic=3:roundoff=3 : optimisations très aggressives.

• Utiliser les outils perfex, speedshop, workshop pour étudier les performances après validation des résultats.

• Quelques règles :– respect la norme du langage,

– accès aux données de la même façon qu’elles sont stockées,

– utilisation de bibliothèques scientifiques optimisées.

Page 12: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 12

2- A. Compilateurs : groupes d’options

-IPA (inter procedural analysis) : analyse inter-procédurale

-LNO (loop nest optimizer) : optimisation des boucles imbriquées

-OPT (optimization options) : précision sur les calculs en flottants

-DEBUG : déboguage

ManpagesF77, F90, cc, CC

ipa, lno, opt, debug_group

mp, pe_environ, sigfpe, handle_sigfpes

Options-auto_use mpi_interface

-flist, -col120, ...

Page 13: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 13

2- B. Compilateurs : Makefile

• Compilation faite par le compilateur,• Outil make permet de gérer la compilation,• Makefile = fichier d’instructions pour la commande make,• repose sur des targets, des règles de compilation.

FC = f90

FFLAGS = -n32 -r10000 -mips4 -O3

LIBS = -lmpi -lfastm

OBJS = bloc.o calcul.o erreur.o pmm.o main.o

.o.f90:

<TAB>$(FC) $(FFLAGS) <$ -c

All: $(OBJS)

<TAB>$(FC) $(LDFLAGS) $(OBJS) -o $(PROG) $(LIBS)

Page 14: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 14

2- C. Eléments de Fortran 90

• Déclaration des variablesINTEGER, PARAMETER :: n = 10

INTEGER :: ierr = 0

REAL(8), DIMENSION (-n:n, 0:1) :: a, b

REAL(4), DIMENSION(:), ALLOCATABLE :: z

• Allocation dynamiqueALLOCATE ( z(n+4*m+2), STAT=ierr)

IF ( ierr /= 0 ) STOP ou IF ( ierr == 0 ) THEN …

DEALLOCATE ( z )

• InterfaceSUBROUTINE calcul (n,a,b,c)

INTEGER, INTENT(IN) :: n

REAL(8), INTENT(OUT) :: a

REAL(8), INTENT(IN) :: b, c

Page 15: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 15

3- perfex

• A. compteurs d’événement

• B. options

• C. statistiques

• D. application : produit matriciel

Page 16: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 16

3- A. perfex : compteurs

• les processeurs R1k000 disposent de compteurs d’évènements pour suivre l’activité durant l’exécution.

• quelques compteurs d’évènements importants : 7 : quadwords written back from L2

9 : L1 instruction cache misses

10 : L2 instruction cache misses

21 : graduated floating point instructions

22 : quadwords written back from L1

23 : TLB misses (TLB = translation look-aside buffer)

25 : L1 data cache misses

26 : L2 data cache misses

• deux compteurs peuvent être suivis en même temps=> mesure précise de 2 compteurs=> mesure partielle puis extrapolation de tous les compteurs (multiplexage)

Page 17: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 17

3- B. perfex : options

Perfex [-e e0] [-e e1] [-a] [-mp] [-y] [-x] prog [args]• e0, e1 : identifiants d’évènements qui doivent appartenir à deux

groupes distincts (0-15) et (16-31);• -a : multiplexage de tous les évènements;• -mp : comptage pour chaque thread et pour l’ensemble;• -y : estimation des temps et statistiques;• -x : comptage des exceptions.

perfex -a -x -y ./s.out

perfex -a -x -y [-mp] mpirun -np 4 ./p.out

Page 18: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 18

3- C. perfex : statistiques

Statistiques importantes :Graduated instructions / cycle => proche de 2

Graduated floating point instructions / cycle

Graduated loads & stores / cycle

Graduated loads & stores / floating point instructions

L1 Cache Line Reuse

L2 Cache Line Reuse

L1 Data Cache Hit Rate => > 0.90

L2 Data Cache Hit Rate

Time accessing memory / Total time

L1--L2 bandwidth used (MB/s, average per process)

Memory bandwidth used (MB/s, average per process)

MFLOPS (average per process)

Page 19: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 19

3- D. perfex : application

but :Montrer les pertes de performances lorsque les données sont hors des caches

principe :Calcul d’un produit matrice-matrice

démarche :1) compilation : -O2;

2) étude des performances pour n tel que les 3 tableaux rentrent dans les caches L1, L2 ou la mémoire;cache L1 : 32ko, cache L2 : 1Mo; 4Mo, 8Mo (dépend de l’architecture => hinv)

3 tableaux en double précision : 3x8xnxn octets

3) étude des performances en modifiants l’ordre des boucles;

4) compilation : -O3;

5) refaire les étapes 2) et 3).

Page 20: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 20

3- D. perfex : application

analyse :1) compteurs d’évènements :

évolution du classement d’importance selon la valeur de n

2) statistiques :

évolution des valeurs des quantités selon la valeur de n

3) comparaison des résultats en -O2 et -O3

Page 21: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 21

3- D. perfex : analyse compilation en -O2

L1 (n = 20), L2 (n = 300) et MEM (n=1000)

Based on 195 MHz IP27

MIPS R10000 CPU

CPU revision 2.x

Typical Minimum Maximum

Event Counter Name Counter Value Time (sec) Time (sec) Time (sec)

===============================================================================================================

0 Cycles.................................................. 20896529744 107.161691 107.161691 107.161691

16 Cycles.................................................. 20896529744 107.161691 107.161691 107.161691

25 Primary data cache misses............................... 157632 0.007283 0.002280 0.007283

26 Secondary data cache misses............................. 1312 0.000508 0.000332 0.000565

23 TLB misses.............................................. 16 0.000006 0.000006 0.000006

0 Cycles.................................................. 38046735392 195.111464 195.111464 195.111464

16 Cycles.................................................. 38046735392 195.111464 195.111464 195.111464

25 Primary data cache misses............................... 3499224576 161.682120 50.604171 161.682120

23 TLB misses.............................................. 5637952 1.968657 1.968657 1.968657

26 Secondary data cache misses............................. 413152 0.159964 0.104580 0.177973

0 Cycles.................................................. 21595891808 110.748163 110.748163 110.748163

16 Cycles.................................................. 21595891808 110.748163 110.748163 110.748163

23 TLB misses.............................................. 249980160 87.287944 87.287944 87.287944

25 Primary data cache misses............................... 1318855728 60.937898 19.072683 60.937898

26 Secondary data cache misses............................. 47711120 18.472767 12.077030 20.552482

Page 22: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 22

3- D. perfex : analyse compilation en -O3

L1 (n = 20), L2 (n = 300) et MEM (n=1000)

Based on 195 MHz IP27

MIPS R10000 CPU

CPU revision 2.x

Typical Minimum Maximum

Event Counter Name Counter Value Time (sec) Time (sec) Time (sec)

===============================================================================================================

0 Cycles.................................................. 9967721904 51.116523 51.116523 51.116523

16 Cycles.................................................. 9967721904 51.116523 51.116523 51.116523

25 Primary data cache misses............................... 102640 0.004742 0.001484 0.004742

26 Secondary data cache misses............................. 6736 0.002608 0.001705 0.002902

23 TLB misses.............................................. 16 0.000006 0.000006 0.000006

0 Cycles.................................................. 14893075584 76.374747 76.374747 76.374747

16 Cycles.................................................. 14893075584 76.374747 76.374747 76.374747

25 Primary data cache misses............................... 895811520 41.391086 12.954813 41.391086

23 TLB misses.............................................. 78112 0.027275 0.027275 0.027275

26 Secondary data cache misses............................. 40160 0.015549 0.010166 0.017300

0 Cycles.................................................. 1235928224 6.338093 6.338093 6.338093

16 Cycles.................................................. 1235928224 6.338093 6.338093 6.338093

25 Primary data cache misses............................... 73945232 3.416649 1.069362 3.416649

26 Secondary data cache misses............................. 1135920 0.439805 0.287533 0.489319

23 TLB misses.............................................. 44192 0.015431 0.015431 0.015431

Page 23: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 23

3- D. perfex : analyse compilation en -O2/-O3

Statistics L1 L2 MEM n = 20 n = 300 n = 1000=================================================================================================================Graduated instructions/cycle............................................ 2.185076 1.710898 0.385768Graduated floating point instructions/cycle............................. 0.383449 0.353419 0.046896Graduated loads & stores/cycle.......................................... 0.804269 0.712300 0.127843Graduated loads & stores/floating point instruction..................... 2.097459 2.015457 2.726113L1 Cache Line Reuse.....................................................106617.081506 6.744774 1.093389L2 Cache Line Reuse..................................................... 119.146341 8468.581597 26.642523L1 Data Cache Hit Rate.................................................. 0.999991 0.870881 0.522306L2 Data Cache Hit Rate.................................................. 0.991677 0.999882 0.963824Time accessing memory/Total time........................................ 0.804341 1.551875 1.633047L1--L2 bandwidth used (MB/s, average per process)....................... 0.079952 581.518247 381.962787Memory bandwidth used (MB/s, average per process)....................... 0.078700 0.417081 56.276275MFLOPS (average per process)............................................ 74.772563 68.916666 9.144644

Graduated instructions/cycle............................................ 1.835561 1.824490 1.692755Graduated floating point instructions/cycle............................. 0.804350 0.906906 0.810151Graduated loads & stores/cycle.......................................... 0.559774 0.493832 0.441724Graduated loads & stores/floating point instruction..................... 0.695933 0.544524 0.545236L1 Cache Line Reuse..................................................... 54360.530320 7.210080 6.383013L2 Cache Line Reuse..................................................... 14.237530 22305.063745 64.097218L1 Data Cache Hit Rate.................................................. 0.999982 0.878199 0.864554L2 Data Cache Hit Rate.................................................. 0.934373 0.999955 0.984638Time accessing memory/Total time........................................ 0.559917 1.036340 1.052615L1--L2 bandwidth used (MB/s, average per process)....................... 0.111141 396.560745 397.235215Memory bandwidth used (MB/s, average per process)....................... 0.059111 0.117584 35.873723MFLOPS (average per process)............................................ 156.848197 176.846720 157.979467

Page 24: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 24

3- D. perfex : commentaires

• L’option -O3 permet de conserver les données dans le cache secondaire à l’aide du cache blocking.

• L’option -flist permet d’obtenir la traduction en Fortran du code optimisé.

• L’option -O3 active des groupes d’option (LNO, OPT,…) qui fournissent des optimisations supplémentaires;

gain d’un facteur supérieur à 15 ici.

Page 25: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 25

4- speedshop

• A. ssrun : expériences

• B. ssrun : types d’expérience

• C. ssrun : options

• D. prof : analyse

• E. prof : options

• F. application : ADI

Page 26: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 26

4- A. ssrun : expériences

• ssrun est un outil de profilage :

- mesure effectuée durant l’exécution du programme,

- usage ne nécessite pas de compilation particulière,

- appliqué à un programme compilé avec options d’optimisation.

2 types d’expérience:

- échantillonnage statistique durant l’exécution du programme,

- comptage exact d’occurrence d’évènements.

ssrun s’applique aux programmes séquentiel et parallèle

Page 27: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 27

4- B. ssrun : type d’expérience

• l’échantillonnage dépend d’une base temporelle :– arrêt du programme toutes les 10 ou 1 ms, incrément d’un compteur associé à la

ligne du code exécutée (-[f]pcsamp[x]);

– arrêt du programme toutes les 3 ms, incrément d’un compteur associé à toutes

les routines de la pile d’appels (-usertime).

• le comptage est lié à un type d’événement :– arrêt du programme lors du débordement de compteur d’évènements, incrément

d’un compteur associé à la ligne du code source (-hwc);

– arrêt du programme lors d’une exception flottante, incrément d’un compteur

associé à toutes les routines de la pile d’appels (-fpe);

– Comptage du temps `idéal` d’exécution du code (-ideal).

Page 28: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 28

4- C. ssrun : options

• ssrun -exp prog [args]

exp : type d’expériences;

prog : application à analyser.• création d’un fichier binaire d’informations de la forme

progname.expname.D#pid

#pid : process id; D : lettre dont la signification est :

m : processus master crée par ssrun;

p : processus slave OpenMP ( crée par sproc() );

f : processus slave MPI ( crée par fork() );

e : processus slave PVM ( crée par exec() );

s : processus système.

Page 29: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 29

4- D. prof : analyse

• lecture du(/des) fichier(s) binaire(s) généré(s) par ssrun

• création d’un fichier ascii après analyse

• fichier global pour l’ensemble des processus ou fichier individuel

Page 30: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 30

4- E. prof : options

• prof -options progname.exp.name.D#pid

• options :

-heavy (-h) : résultats affichés pour chaque ligne par ordre décroissant de temps;

-lines (-l) : résultats affichés pour chaque ligne par ordre du source;

-only (-o) sub : affichage pour la routine sub uniquement;

-gprof : ajoute le temps inclusif pour l’expérience -usertime;

-q n [%] : tronque l ’affichage après n lignes ou n %.

Page 31: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 31

4- F. application : ADI

but :Montrer les pertes de performances et les localiser.

principe :Calcul de contributions dans un tableau 3D, routines xsweep, ysweep et zsweep

Démarche :1) comparer les coûts théoriques des routines avec -ideal;

2) comparer les coûts réels des routines avec -pcsamp;

3) analyser les évènements avec perfex -a -y -x;

4) affiner les valeurs des principaux compteurs avec perfex -e e0;

5) localiser les lignes du source responsables avec ssrun -hwc :setenv SPEEDSHOP HWC_COUNTER_NUMBER compteur

setenv SPEEDSHOP HWC_COUNTER_OVERFLOW valeur

Page 32: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 32

4- F. application : ADI

• résultats de ssrun -ideal par prof -lines :Function list, in descending order by exclusive ideal time

-------------------------------------------------------------------------

[index] excl.secs excl.% cum.% cycles instructions calls function (dso: file, line)

[1] 0.303 23.2% 23.2% 59080704 59506688 32768 xsweep (adi2: adi2.f90, 70)

[2] 0.303 23.2% 46.4% 59080704 59506688 32768 ysweep (adi2: adi2.f90, 90)

[3] 0.303 23.2% 69.6% 59080704 59506688 32768 zsweep (adi2: adi2.f90, 110)

[4] 0.161 12.3% 81.9% 31457280 27262976 2097152 irand_ (libftn.so: rand_.c, 62)

[5] 0.140 10.7% 92.6% 27262976 35651584 2097152 rand_ (libftn.so: rand_.c, 67)

[6] 0.082 6.2% 98.9% 15915509 18606275 1 adi2 (adi2: adi2.f90, 1)

• résultats de ssrun -pcsamp par prof -lines :Function list, in descending order by time

-------------------------------------------------------------------------

[index] secs % cum.% samples function (dso: file, line)

[1] 6.360 78.1% 78.1% 636 zsweep (adi2: adi2.f90, 110)

[2] 0.630 7.7% 85.9% 63 ysweep (adi2: adi2.f90, 90)

[3] 0.610 7.5% 93.4% 61 xsweep (adi2: adi2.f90, 70)

[4] 0.230 2.8% 96.2% 23 irand_ (libftn.so: rand_.c, 62)

[5] 0.180 2.2% 98.4% 18 adi2 (adi2: adi2.f90, 1)

[6] 0.120 1.5% 99.9% 12 rand_ (libftn.so: rand_.c, 67)

[7] 0.010 0.1% 100.0% 1 _write (libc.so.1: writeSCI.c, 27)

Page 33: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 33

4- F. application : ADI

• résultats de perfex -a -y -x : Typical Minimum MaximumEvent Counter Name Counter Value Time (sec) Time (sec) Time (sec)=============================================================================================================== 0 Cycles.................................................. 1682480768 8.628107 8.628107 8.62810716 Cycles.................................................. 1682480768 8.628107 8.628107 8.62810726 Secondary data cache misses............................. 6573952 2.545299 1.664053 2.83185623 TLB misses.............................................. 5787712 2.020950 2.020950 2.020950 7 Quadwords written back from scache...................... 52204928 1.713393 1.132445 1.71339325 Primary data cache misses............................... 17305104 0.799585 0.250258 0.79958522 Quadwords written back from primary data cache.......... 31548640 0.622883 0.508014 0.71995621 Graduated floating point instructions................... 30801216 0.157955 0.078977 8.213658 9 Primary instruction cache misses........................ 15040 0.001390 0.000434 0.00139010 Secondary instruction cache misses...................... 544 0.000211 0.000138 0.000234Statistics=====================================================================================Graduated instructions/cycle............................................ 0.205890Graduated floating point instructions/cycle............................. 0.018307Graduated loads & stores/cycle.......................................... 0.074188Graduated loads & stores/floating point instruction..................... 4.052416L1 Cache Line Reuse..................................................... 6.212863L2 Cache Line Reuse..................................................... 1.632375L1 Data Cache Hit Rate.................................................. 0.861359L2 Data Cache Hit Rate.................................................. 0.620115Time accessing memory/Total time........................................ 0.696089L1--L2 bandwidth used (MB/s, average per process)....................... 122.685269Memory bandwidth used (MB/s, average per process)....................... 194.335189MFLOPS (average per process)............................................ 3.569870

Page 34: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 34

4- F. application : ADI

• résultats de perfex -e 23 :Summary for execution of ./adi2

0 Cycles...................................................... 1317308826

23 TLB misses.................................................. 5779532

• résultats de perfex -e 26 :Summary for execution of ./adi2

0 Cycles...................................................... 1320793392

26 Secondary data cache misses................................. 6913927

• exécution ssrun -hwc :#!/bin/csh

setenv _SPEEDSHOP_HWC_COUNTER_NUMBER 23

setenv _SPEEDSHOP_HWC_COOUNTER_OVERFLOW 2053

ssrun -prof_hwc ./adi2

setenv _SPEEDSHOP_HWC_COUNTER_NUMBER 26

setenv _SPEEDSHOP_HWC_COUNTER_OVERFLOW 2053

ssrun -prof_hwc ./adi2

Page 35: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 35

4- F. application : ADI

• résultats de ssrun -hwc (23) par prof -heavy :-------------------------------------------------------------------------

Summary of perf. counter overflow PC sampling data (prof_hwc)--

2816: Total samples

TLB misses (23): Counter name (number)

2053: Counter overflow value

5781248: Total counts

-------------------------------------------------------------------------

Function list, in descending order by counts

-------------------------------------------------------------------------

[index] counts % cum.% samples function (dso: file, line)

[1] 5781248 100.0% 100.0% 2816 zsweep (adi2: adi2.f90, 110)

5781248 100.0% 100.0% 2816 TOTAL

-------------------------------------------------------------------------

Line list, in descending order by counts

-------------------------------------------------------------------------

counts % cum.% samples function (dso: file, line)

2915260 50.4 50.4 1420 zsweep (adi2: adi2.f90, 120)

2831087 49.0 99.4 1379 zsweep (adi2: adi2.f90, 124)

34901 0.6 100.0 17 zsweep (adi2: adi2.f90, 110)

Page 36: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 36

4- F. application : ADI

• résultats de ssrun -hwc (26) par prof -heavy :-------------------------------------------------------------------------

Summary of perf. counter overflow PC sampling data (prof_hwc)--

3545: Total samples

Secondary cache D misses (26): Counter name (number)

2053: Counter overflow value

7277885: Total counts

-------------------------------------------------------------------------

Function list, in descending order by counts

-------------------------------------------------------------------------

[index] counts % cum.% samples function (dso: file, line)

[1] 6686621 91.9% 91.9% 3257 zsweep (adi2: adi2.f90, 110)

[2] 244307 3.4% 95.2% 119 xsweep (adi2: adi2.f90, 70)

[3] 236095 3.2% 98.5% 115 ysweep (adi2: adi2.f90, 90)

[4] 108809 1.5% 100.0% 53 adi2 (adi2: adi2.f90, 1)

2053 0.0% 100.0% 1 **OTHER** (includes excluded DSOs, rld, etc.)

7277885 100.0% 100.0% 3545 TOTAL

-------------------------------------------------------------------------

Line list, in descending order by counts

-------------------------------------------------------------------------

counts % cum.% samples function (dso: file, line)

3449040 47.4 47.4 1680 zsweep (adi2: adi2.f90, 120)

3217051 44.2 91.6 1567 zsweep (adi2: adi2.f90, 124)

244307 3.4 95.0 119 xsweep (adi2: adi2.f90, 80)

192982 2.7 97.6 94 ysweep (adi2: adi2.f90, 100)

Page 37: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 37

4- F. application : ADI

Analyse :=> problème de cache thrashing.

- les adresses de stockage de données dans le cache sont calculées par modulo à partir des adresses mémoire;

- taille du cache en 2^p, dimensions des tableaux en 2^q;

- écrasement des données dans les caches car modulos identiques;

Solution :=> modifier les premières dimensions des tableaux pour décaler les

adresses de stockage dans les caches. integer, parameter :: ldx = 129

integer, parameter :: ldy = 129

integer, parameter :: ldz = 128

integer, parameter :: nx = 128

integer, parameter :: ny = 128

integer, parameter :: nz = 128

real(rp), dimension(ldx, ldy, ldz) :: data

Page 38: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 38

4- F. application : ADI

démarche :6) analyser les évènements avec perfex -a -y -x;

7) affiner les valeurs des principaux compteurs avec perfex -e e0;

8) localiser les lignes du source responsables avec ssrun -hwc.

Page 39: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 39

4- F. application : ADI

• résultat de perfex -a -y -x Typical Minimum Maximum Event Counter Name Counter Value Time (sec) Time (sec) Time (sec)=============================================================================================================== 0 Cycles.................................................. 711044336 3.646381 3.646381 3.64638116 Cycles.................................................. 711044336 3.646381 3.646381 3.64638123 TLB misses.............................................. 5604048 1.956819 1.956819 1.95681926 Secondary data cache misses............................. 1061616 0.411036 0.268725 0.457312 7 Quadwords written back from scache...................... 6004864 0.197083 0.130259 0.19708325 Primary data cache misses............................... 4235360 0.195695 0.061250 0.19569521 Graduated floating point instructions................... 29959296 0.153637 0.076819 7.98914622 Quadwords written back from primary data cache.......... 6328832 0.124954 0.101910 0.144427 9 Primary instruction cache misses........................ 42816 0.003957 0.001236 0.00395710 Secondary instruction cache misses...................... 896 0.000347 0.000227 0.000386Statistics=====================================================================================Graduated instructions/cycle............................................ 0.456588Graduated floating point instructions/cycle............................. 0.042134Graduated loads & stores/cycle.......................................... 0.155101Graduated loads & stores/floating point instruction..................... 3.681107L1 Cache Line Reuse..................................................... 25.038722L2 Cache Line Reuse..................................................... 2.989540L1 Data Cache Hit Rate.................................................. 0.961596L2 Data Cache Hit Rate.................................................. 0.749345Time accessing memory/Total time........................................ 0.858140L1--L2 bandwidth used (MB/s, average per process)....................... 64.939132Memory bandwidth used (MB/s, average per process)....................... 63.615036MFLOPS (average per process)............................................ 8.216172

Page 40: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 40

4- F. application : ADI

• résultat de perfex -e 23 :Summary for execution of ./adi5

0 Cycles...................................................... 592594668

23 TLB misses.................................................. 5565894

• résultat de perfex -e 26 :Summary for execution of ./adi5

0 Cycles...................................................... 590387057

26 Secondary data cache misses................................. 895611

• résultat de ssrun -hwc (23) par prof -heavy-------------------------------------------------------------------------

Function list, in descending order by counts

-------------------------------------------------------------------------

[index] counts % cum.% samples function (dso: file, line)

[1] 5565683 100.0% 100.0% 2711 zsweep (adi5: adi5.f90, 110)

[2] 2053 0.0% 100.0% 1 fake_adi (adi5: adi5.f90, 1)

-------------------------------------------------------------------------

Line list, in descending order by counts

-------------------------------------------------------------------------

counts % cum.% samples function (dso: file, line)

2855723 51.3 51.3 1391 zsweep (adi5: adi5.f90, 120)

2666847 47.9 99.2 1299 zsweep (adi5: adi5.f90, 124)

Page 41: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 41

4- F. application : ADI

Analyse :

=> problème de TLB thrashing.

- chaque entrée dans cette table correspond à une page mémoire adressée

- trop de pages différentes sont parcourues;

- la table est regénérée en permanence à cause des boucles de calcul.

Solution :- stocker le vecteur des données du calcul dans un vecteur temporaire;

- routine de copie : do j = 1, ny call copy(data(1,j,1),ldx*ldy,temp,nx,nx,nz) do i = 1, nx call zsweep(temp(i,1),nx,nz) end do call copy(temp,nx,data(1,j,1),ldx*ldy,nx,nz) end do

Page 42: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 42

4- F. application : ADI

démarche :

9) analyser les évènements avec perfex -a -y -x.

Page 43: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 43

4- F. application : ADI

• résultat de perfex -a -y -x

Typical Minimum Maximum Event Counter Name Counter Value Time (sec) Time (sec) Time (sec)=============================================================================================================== 0 Cycles.................................................. 473543376 2.428428 2.428428 2.42842816 Cycles.................................................. 473543376 2.428428 2.428428 2.42842825 Primary data cache misses............................... 13666112 0.631444 0.197633 0.63144422 Quadwords written back from primary data cache.......... 23456192 0.463109 0.377705 0.53528226 Secondary data cache misses............................. 1168832 0.452548 0.295864 0.503497 7 Quadwords written back from scache...................... 7385600 0.242399 0.160211 0.24239921 Graduated floating point instructions................... 30300896 0.155389 0.077695 8.08023923 TLB misses.............................................. 65264 0.022789 0.022789 0.022789 9 Primary instruction cache misses........................ 8832 0.000816 0.000255 0.00081610 Secondary instruction cache misses...................... 768 0.000297 0.000194 0.000331Statistics=====================================================================================Graduated instructions/cycle............................................ 0.583375Graduated floating point instructions/cycle............................. 0.063988Graduated loads & stores/cycle.......................................... 0.247853Graduated loads & stores/floating point instruction..................... 3.873448L1 Cache Line Reuse..................................................... 7.588320L2 Cache Line Reuse..................................................... 10.692110L1 Data Cache Hit Rate.................................................. 0.883563L2 Data Cache Hit Rate.................................................. 0.914472Time accessing memory/Total time........................................ 0.703613L1--L2 bandwidth used (MB/s, average per process)....................... 334.625857Memory bandwidth used (MB/s, average per process)....................... 110.268924MFLOPS (average per process)............................................ 12.477579

Page 44: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 44

4- F. application : commentaires

• La comparaison des temps ideal et réel montre une différence importante : un événement extérieur survient;

• pertes des données dûes au cache thrashing et au TLB thrashing;

• cache thrashing : les dimensions des tableaux multi-dimensionnels ne doivent pas être des puissances de 2 :=> augmentation mémoire généralement légère,=> augmentation des performances significative;

• TLB thrashing : les copies dans des tableaux temporaires peuvent résoudre les pertes de performance;=> le compilateur ne sait pas le faire,=> c’est du ressort du développeur.

Page 45: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 45

5- load balancing MPI

• A. algorithme

• B. sous-domaines

• C. communications

• D. cvbuild

• E. cvmake

• F. portage

• G. ssaggregate

• H. application

• I. comparaison

• J. conclusions

Page 46: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 46

5- A. load balancing MPI : algorithme

• problème de Poisson, différences finies 2D

• méthode itérative de Jacobi

• schéma à 5 points classique :u(i,j)(n+1)= 0.25 * { u(i+1,j )(n) + u(i-1,j )(n)

+ u(i ,j+1)(n) + u(i ,j-1)(n)

- h*h*f(i,j) }

• test d’arrêt sur la convergence ou nombre max d’itérations

• le domaine initial est coupé en sous-domaines, chaque processus calcule sur son sous-domaine

• une couche de noeuds fictifs autour de chaque sous-domaines, mises à jour par des communications MPI.

Page 47: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 47

5- B. load balancing MPI : sous-domaines

•Topologie MPI : mettre une grille de processus sur la grille des sous-domaines.

Page 48: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 48

5- C. load balancing MPI : communications

• couche de noeuds fictifs (épaisseur 1 noeud) sur les 4 cotés.

Page 49: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 49

5- D. load balancing MPI : cvbuild

• outil d’analyse de dépendance pour la compilation;

• interrogations sur les targets : menu query.

Page 50: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 50

5- E. load balancing MPI : cvmake

• outil d’aide à la compilation;

• navigation dans le source, d’erreur en erreur.

Page 51: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 51

5- F. load balancing MPI : portage

• progresser dans les niveaux d’optimisation du programme en comparant les résultats avec des valeurs de référence (code séquentiel puis code parallèle sans optimisation).

• démarche :-O0 -g3 -DEBUG:… : pas d’optimisation,

-O2 : optimisations fiables,

-O3 -OPT:IEEE_arithmetic=1:roundoff=0 : optimisations aggressives,

-O3 -OPT:IEEE_arithmetic=3:roundoff=3 : optimisations très aggressives.

• valider chaque étape.

Page 52: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 52

5- G. load balancing MPI : ssaggregate

• outil pour fusionner des fichiers de données issus du

même type d’expérience.• syntaxe :

ssaggregate -e expfile1 expfile2 … -o outputfile

• analyse faite par prof• ssrun sur un code MPI :

mpirun -np n ssrun -fpcsampx prog [args]

• ssrun sur un code OpenMP :setenv OMP _NUM _THREADS n

ssrun -fpcsampx prog [args]

Page 53: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 53

5- H. load balancing MPI : application

but :étudier le load balancing des calculs sur les processus.

principe :profilage du code MPI par ssrun.

démarche :1) compiler le code séquentiel et le code parallèle;

2) lancer les codes sous ssrun -fpcsampx sur le même cas test;

3) comparer les résultats entre les processus MPI;

4) faire la fusion des fichiers et comparer avec le code séquentiel;

5) faire varier la taille du maillage et le nombre de processus (2^p).

Page 54: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 54

5- I. load balancing MPI : indications

• comparer les temps des différents processus pour une même routine et leur somme avec le temps séquentiel;

• comparer le temps du processus le plus long avec le temps séquentiel pour évaluer l’accélération et l’efficacité;

• accélération : A(p) = T(1) / T(p)

• efficacité : E(p) = A(p) / p

• regarder le temps passé en communications par rapport au temps total : overhead MPI

Page 55: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 55

5- I. load balancing MPI : ntx = 200

+-----------+--------+--------+--------++--------+| ntx = 200 | p0 | p1 | 2p || 1p |+-----------+--------+--------+--------++--------+| calcul | 7.87 | 11.02 | 18.89 || 24.04 |+-----------+--------+--------+--------++--------+| erreur | 6.10 | 2.04 | 8.14 || 13.55 | A(2) = 37.70 / 18.88 = 1.99+-----------+--------+--------+--------++--------+ E(2) = 100%| total | 18.88 | 18.88 | 37.70 || 37.68 |+-----------+--------+--------+--------++--------++-----------+--------+--------+--------+--------+--------++--------+| ntx = 200 | p0 | p1 | p2 | p3 | 4p || 1p |+-----------+--------+--------+--------+--------+--------++--------+| calcul | 4.31 | 4.18 | 3.76 | 4.86 | 17.11 || 24.04 |+-----------+--------+--------+--------+--------+--------++--------+| erreur | 1.83 | 2.24 | 3.00 | 3.02 | 10.09 || 13.55 | A(4) = 3.37+-----------+--------+--------+--------+--------+--------++--------+ E(4) = 84%| total | 11.13 | 11.15 | 11.16 | 11.16 | 44.67 || 37.68 |+-----------+--------+--------+--------+--------+--------++--------++-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+| ntx = 200 | p0 | p1 | p2 | p3 | p4 | p5 | p6 | p7 | 8p || 1p |+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+| calcul | 3.01 | 2.76 | 2.02 | 2.59 | 2.45 | 2.42 | 2.39 | 2.51 | 20.15 || 24.04 |+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+| erreur | 1.51 | 1.17 | 1.98 | 1.47 | 1.44 | 1.66 | 1.33 | 0.99 | 11.55 || 13.55 | A(8) = 3.95+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+ E(8) = 49%| total | 9.53 | 9.50 | 9.52 | 9.54 | 9.53 | 9.55 | 9.54 | 9.55 | 76.35 || 37.68 |+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+

Page 56: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 56

5- I. load balancing MPI : ntx = 400

+-----------+--------+--------+--------++--------+| ntx = 400 | p0 | p1 | 2p || 1p |+-----------+--------+--------+--------++--------+| calcul | 40.38 | 41.12 | 81.50 || 164.47 |+-----------+--------+--------+--------++--------+| erreur | 20.87 | 21.43 | 42.30 || 129.91 | A(2) = 4.05+-----------+--------+--------+--------++--------+ E52) = 202%| total | 71.66 | 71.71 | 143.39 || 290.54 |+-----------+--------+--------+--------++--------++-----------+--------+--------+--------+--------+--------++--------+| ntx = 400 | p0 | p1 | p2 | p3 | 4p || 1p |+-----------+--------+--------+--------+--------+--------++--------+| calcul | 19.15 | 23.76 | 19.58 | 20.62 | 83.11 || 164.47 |+-----------+--------+--------+--------+--------+--------++--------+| erreur | 9.78 | 11.67 | 8.95 | 9.37 | 39.77 || 129.91 | A(4) = 6.95+-----------+--------+--------+--------+--------+--------++--------+ E(4) = 125%| total | 41.81 | 41.78 | 41.81 | 41.78 | 167.23 || 290.54 |+-----------+--------+--------+--------+--------+--------++--------++-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+| ntx = 400 | p0 | p1 | p2 | p3 | p4 | p5 | p6 | p7 | 8p || 1p |+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+| calcul | 9.83 | 10.12 | 9.78 | 9.63 | 10.38 | 10.25 | 9.36 | 9.50 | 78.85 || 164.47 |+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+| erreur | 3.53 | 4.82 | 5.00 | 5.27 | 3.93 | 6.79 | 6.23 | 4.81 | 40.38 || 129.91 | A(8) = 13.02+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+ E(8) = 163%| total | 22.27 | 22.33 | 22.28 | 22.31 | 22.29 | 22.33 | 22.31 | 22.31 | 178.52 || 290.54 |+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+

Page 57: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 57

5- I. load balancing MPI : ntx = 800

+-----------+--------+--------+--------++--------+| ntx = 800 | p0 | p1 | 2p || 1p |+-----------+--------+--------+--------++--------+| calcul | 329.30 | 328.56 | 657.86 || 674.17 |+-----------+--------+--------+--------++--------+| erreur | 257.46 | 256.44 | 513.90 || 496.73 | A(2) = 1.94+-----------+--------+--------+--------++--------+ E(2) = 97%| total | 604.66 | 604.67 |1209.35 ||1171.25 |+-----------+--------+--------+--------++--------++-----------+--------+--------+--------+--------+--------++--------+| ntx = 800 | p0 | p1 | p2 | p3 | 4p || 1p |+-----------+--------+--------+--------+--------+--------++--------+| calcul | 84.96 | 85.27 | 84.02 | 90.33 | 344.58 || 674.17 |+-----------+--------+--------+--------+--------+--------++--------+| erreur | 46.69 | 46.74 | 46.34 | 47.04 | 186.81 || 496.73 | A(4) = 7.95+-----------+--------+--------+--------+--------+--------++--------+ E(4) = 199%| total | 147.36 | 147.36 | 147.36 | 147.39 | 589.50 ||1171.25 |+-----------+--------+--------+--------+--------+--------++--------++-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+| ntx = 800 | p0 | p1 | p2 | p3 | p4 | p5 | p6 | p7 | 8p || 1p |+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+| calcul | 39.63 | 40.13 | 42.12 | 41.63 | 41.45 | 38.52 | 56.89 | 40.44 | 340.81|| 674.17 |+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+| erreur | 20.94 | 21.45 | 21.27 | 20.71 | 20.37 | 20.50 | 29.45 | 21.11 | 175.80|| 496.73 | A(8) = 11.61+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+ E(8) = 145%| total | 100.90 | 100.87 | 100.89 | 100.87 | 100.82 | 100.87 | 100.76 | 100.92 | 806.96||1171.25 |+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------++--------+

Page 58: CRIHAN - Mars 2001 Outils doptimisation - Page 1 Outils daide à loptimisation scalaire sur Origin 2000 v 2.0 Guy Moebs Guy.Moebs@crihan.fr

CRIHAN - Mars 2001Outils d’optimisation - Page 58

5- I. load balancing MPI : conclusions

• nombre de processus doit être adapté à la masse de calcul;

• temps de calcul significatif pour que les imprécisions des mesures soient “petites” (charge de la machine !);

• temps parallèle inférieur au temps séquentiel car plusieurs processus signifient aussi :– plusieurs cache L2 donc volume de cache multiplié;

– données distribuées sur plusieurs mémoires locales, donc accès plus courts;

• overhead des communications à suivre.