11
PerformancesPerformances
22
Facteur d'accélérationFacteur d'accélération
Degré de parallélisme Degré de parallélisme DOP:DOP:
Nombre de processeurs pouvant être Nombre de processeurs pouvant être
utilisés pour exécuter un programme utilisés pour exécuter un programme
pour une période donnée. pour une période donnée.
C'est une fonction discrète sur le C'est une fonction discrète sur le
temps toujours positive ou nulle. temps toujours positive ou nulle.
Il considère un nombre infini de Il considère un nombre infini de
processeurs et n'est pas toujours processeurs et n'est pas toujours
atteignable sur une machine réelle.atteignable sur une machine réelle.
33
Parallélisme moyenParallélisme moyen
Quand i processeurs sont actifs on a Quand i processeurs sont actifs on a
DOP = iDOP = i, on pose , on pose m = max (DOP)m = max (DOP)
Soit D la puissance d'exécution d'un Soit D la puissance d'exécution d'un
seul processeur (Mips,Mflops). Pour seul processeur (Mips,Mflops). Pour
une exécution parallèle, on obtient le une exécution parallèle, on obtient le
travail fourni W partravail fourni W par
W = W = DOP(t) dtDOP(t) dt
ou ou W = W = i=1,mi=1,m i . ti . tii
ttii la somme des périodes où DOP = ila somme des périodes DOP = i 44
Parallélisme moyen(suite)Parallélisme moyen(suite)
On définit le parallélisme moyen On définit le parallélisme moyen
(( i=1,mi=1,m i . ti . ti ) i )
A = A =
( ( i=1,mi=1,m tti )i )
55
ExempleExemple
0
1
2
3
4
5
6
7
8
Parallélisme moyen DOP
66
Facteur d'accélération Facteur d'accélération
(Speed up)(Speed up)
Soit un algorithme s'exécutant sur p Soit un algorithme s'exécutant sur p
processeurs en un temps tprocesseurs en un temps tpp et soit tet soit t11
son temps d'exécution sur un seul son temps d'exécution sur un seul
processeur. On définit le facteur processeur. On définit le facteur
d'accélération par d'accélération par
SSp p = t= t11 / t/ tpp
En général on considère le temps En général on considère le temps
d'exécution du meilleur algorithme d'exécution du meilleur algorithme
séquentiel, et non de l'algo parallèle séquentiel, et non de l'algo parallèle
s'exécutant sur un seul processeur.s'exécutant sur un seul processeur.
77
"Théorème""Théorème"
Quel que soit p, on a Quel que soit p, on a
1 <= S1 <= Spp <= p<= p
pas de précision sur les ressources pas de précision sur les ressources
des processeurs etc...des processeurs etc...
88
Loi d'Amdahl (1967)Loi d'Amdahl (1967)
Idée: trouver une borne au facteur Idée: trouver une borne au facteur
d'accélération. On propose d'évaluer la d'accélération. On propose d'évaluer la
partie parallélisable du codepartie parallélisable du code
On poseOn pose
tt11 = t= tseqseq + t+ tparpar
On en déduit pour une exécution On en déduit pour une exécution
parallèle parallèle
ttpp = t= tseqseq + t+ tparpar / p/ p
99
AmdahlAmdahl
D'oùD'où
SSp p = ( t= ( tseqseq + t+ tparpar) / ( t) / ( tseqseq + t+ tparpar / p )/ p )
Sp <= tSp <= t11 / t/ tseqseq (limite quand p(limite quand p-->>))
Le facteur d'accélération est donc Le facteur d'accélération est donc
toujours inférieur à la portion de code toujours inférieur à la portion de code
séquentiel exécuté. séquentiel exécuté.
Soit 10% de code séquentiel, la limite Soit 10% de code séquentiel, la limite
supérieure pour le Sp est 10. supérieure pour le Sp est 10.
Cette valeur est indépendante du nombre Cette valeur est indépendante du nombre
de processeurs. de processeurs. 1010
Exemple Amdahl’s LawExemple Amdahl’s Law
Si 2 phases de calculSi 2 phases de calcul
Parallélisable sur une grille Parallélisable sur une grille nn--byby--nn sans communicationsans communication
Réduction de type sommeRéduction de type somme
Première phase = Première phase = nn22/p/p
Seconde phase séquentielle , time = Seconde phase séquentielle , time = nn22
Speedup <= 2Speedup <= 2
Diviser la seconde phase en 2Diviser la seconde phase en 2
Accumulation locale de la somme sur chaque Accumulation locale de la somme sur chaque
processeurprocesseur
Réduction sur les somme partiellesRéduction sur les somme partielles
time = time = nn22/p/p + + nn22/p/p + p, + p,
Speedup<=Speedup<= 2n2
2n2 + p2
1111
Illustration Amdahl’s LawIllustration Amdahl’s Law
1
p
1
p
1
n2/p
n2
p
work done concurrently
n2
n2
Time
n2/p n2/p
(c)
(b)
(a)
1212
EfficacitéEfficacité
On introduit l'efficacité comme:On introduit l'efficacité comme:
eep p = S= Spp / p/ p
On a toujours On a toujours eep p < 1< 1. .
Il permet de mesurer le taux moyen Il permet de mesurer le taux moyen
d'utilisation des processeurs. d'utilisation des processeurs.
Plus on est proche de 1, plus la Plus on est proche de 1, plus la
parallélisation est bonne.parallélisation est bonne.
1313
Accélérations superlinéairesAccélérations superlinéaires
La démonstration d’une limitation La démonstration d’une limitation
linaire du facteur d'accélération est linaire du facteur d'accélération est
basé sur l'hypothèse de la basé sur l'hypothèse de la
connaissance du meilleur algorihtme connaissance du meilleur algorihtme
séquentiel. séquentiel.
1414
SuperlinéaireSuperlinéaire
Pour certains problèmes Pour certains problèmes
parcours de graphe,parcours de graphe,
problèmes de combinatoire...problèmes de combinatoire...
Utilisation de proceseurs Utilisation de proceseurs
supplémentaires pour chercher une supplémentaires pour chercher une
bonne solutionbonne solution
On n'effectue plus exactement le même On n'effectue plus exactement le même
algorithme qu'en séquentiel.algorithme qu'en séquentiel.
1515
SuperlinaireSuperlinaire
On obtient un facteur d'accélération On obtient un facteur d'accélération
superlinéairesuperlinéaire
On trouve plus vite la bonne solution On trouve plus vite la bonne solution
en explorant différentes stratégies en en explorant différentes stratégies en
parallèle.(Algo glouton...)parallèle.(Algo glouton...)
1616
Mesures de performancesMesures de performances
Le MIPS Million Instructions Per Le MIPS Million Instructions Per
Second est donné pour un processeur Second est donné pour un processeur
et est calculé depuis la fréquence et est calculé depuis la fréquence
d'horloge du processeur f (Mhz) et du d'horloge du processeur f (Mhz) et du
nombre de cycle par instruction (CPI)nombre de cycle par instruction (CPI)
MIPS = f / ( CPI . 10MIPS = f / ( CPI . 1066 ))
1717
MipsMips
Le MIPS moyen dépend du jeu Le MIPS moyen dépend du jeu
d'instructions, et devrait varier en d'instructions, et devrait varier en
fonction du programme.fonction du programme.
La comparaison entre des processeurs La comparaison entre des processeurs
avec différents jeux d'instructions avec différents jeux d'instructions
(RISC, CISC) et différentes horloges (RISC, CISC) et différentes horloges
n'est pas fiable.n'est pas fiable.
1818
MFlopsMFlops
Le Mflops Million Floating Point Le Mflops Million Floating Point
Operation Per Second dépent Operation Per Second dépent
également de l'architecture du également de l'architecture du
processeur et du programme. processeur et du programme.
Pas de correspondance directe entre Pas de correspondance directe entre
MIPS et Mflops.MIPS et Mflops.
1919
Peak performancePeak performance
Les constructeurs annoncent souvent Les constructeurs annoncent souvent
la puissance de crête ( maximum) en la puissance de crête ( maximum) en
MIPS et Mflops. Elles sont impossibles MIPS et Mflops. Elles sont impossibles
à maintenir sur une application réelle. à maintenir sur une application réelle.
On annonce également la puissance On annonce également la puissance
soutenue ( Substained) plus soutenue ( Substained) plus
représentative.représentative.
2020
Le Dhrystone Le Dhrystone
C'est un benchmark de mesure du CPU. C'est un benchmark de mesure du CPU.
Il se compose d'une centaine Il se compose d'une centaine
d'instructions en langage de haut d'instructions en langage de haut
niveau avec des structures de données niveau avec des structures de données
présentes dans les programmes. présentes dans les programmes.
Il n'y a pas de Floating Point.Il n'y a pas de Floating Point.
2121
Mesure du Dhrystone Mesure du Dhrystone
Il permet de mesurer la puissance de Il permet de mesurer la puissance de
calcul en entier d'un processeur. calcul en entier d'un processeur.
Ce test sur plusieurs machines permet Ce test sur plusieurs machines permet
une comparaison avec le Vax/780 à qui une comparaison avec le Vax/780 à qui
on affecte la valeur de 1 en MIPS relatif. on affecte la valeur de 1 en MIPS relatif.
( DEC parle de VUP )( DEC parle de VUP )
Cette mesure est acceptée par un Cette mesure est acceptée par un
grand nombre de constructeurs.grand nombre de constructeurs.
2222
Le WhestoneLe Whestone
Benchmark basé sur un code Fortran Benchmark basé sur un code Fortran
intégrant des opération Floating Point.intégrant des opération Floating Point.
Il intègre Il intègre
du calcul d'entier pour des index de du calcul d'entier pour des index de
tableaux, tableaux,
des appels de sous programmes,des appels de sous programmes,
passage de paramètres, passage de paramètres,
fonctions mathématiques.fonctions mathématiques.
2323
Domaine d’applicationDomaine d’application
Il ne contient pas de code vectorisableIl ne contient pas de code vectorisable
Il valide en même temps l'efficacité du Il valide en même temps l'efficacité du
compilateur et des librairies.compilateur et des librairies.
Il n'est pas équivalent au MIPS ou Il n'est pas équivalent au MIPS ou
Mflops car il y a mélange des deux. Mflops car il y a mélange des deux.
2424
Whestone et DhrystoneWhestone et Dhrystone
Le Whestone et le Dhrystone sont Le Whestone et le Dhrystone sont
critiqués car il ne permettent pas de critiqués car il ne permettent pas de
prédire le temps d'exécution d'un prédire le temps d'exécution d'un
programme utilisateur. programme utilisateur.
La prise en compte du compilateur La prise en compte du compilateur
affecte généralement le résultat du affecte généralement le résultat du
bench.bench.
2525
SPECSPEC
Standard PerformanceStandard Performance
Evaluation CorporationEvaluation Corporation
SPEC's mission is to establish, maintain, SPEC's mission is to establish, maintain,
and endorse a standardized set of relevant and endorse a standardized set of relevant
benchmarks and metrics for performance benchmarks and metrics for performance
evaluation of modern computer systemsevaluation of modern computer systems
http://www.specbench.org/http://www.specbench.org/
2626
Choix de bench…Choix de bench…
Current Benchmarks: Current Benchmarks:
SPECapcSPECapc
SPECviewperfSPECviewperf
SPEC HPC96SPEC HPC96
SPEC OMP2001SPEC OMP2001
SPEC CPU2000SPEC CPU2000
Speed: Speed: [ [ SPECint2000SPECint2000, , SPECfp2000SPECfp2000 ] ]
Throughput: [ Throughput: [ SPECint_rate2000SPECint_rate2000, , SPECfp_rate2000SPECfp_rate2000 ] ]
SPECjAppServer2001SPECjAppServer2001
SPEC JBB2000SPEC JBB2000
SPEC JVM98SPEC JVM98
SPEC MAIL2001SPEC MAIL2001
SPEC SFS97_R1SPEC SFS97_R1
SPEC WEB99SPEC WEB99
SPEC WEB99_SSLSPEC WEB99_SSL
2727
Le LinpackLe Linpack
C'est un ensemble de librairies Fortran C'est un ensemble de librairies Fortran
qui permettent de résoudre un système qui permettent de résoudre un système
d'équations linéaires dense de taille d'équations linéaires dense de taille
minimum 100. minimum 100.
Ce code supporte une vectorisation/ Ce code supporte une vectorisation/
parallélisation. C'est pourquoi il est parallélisation. C'est pourquoi il est
fortement utilisé dans le monde parallèle. fortement utilisé dans le monde parallèle.
Il permet une bonne estimation de Il permet une bonne estimation de
performance pour des codes performance pour des codes
scientifiques.scientifiques. 2828
Linpack(suite)Linpack(suite)
Il prend en compte l'efficacité du Il prend en compte l'efficacité du
compilateur Fortran. compilateur Fortran.
Il comprend un grand nombre de Il comprend un grand nombre de
calcul: pour un système de taille n il calcul: pour un système de taille n il
faut 2nfaut 2n33 / 3 + 2n/ 3 + 2n22 opérations opérations
arithmétiques.arithmétiques.
2929
WEBWEB
Depuis des années Dongarra compare Depuis des années Dongarra compare
ainsi les ordinateurs et obtient un TOP ainsi les ordinateurs et obtient un TOP
500 des ordinateurs les plus puissants.500 des ordinateurs les plus puissants.
La mise à jour est faite régulièrement.La mise à jour est faite régulièrement.
Accès : http://www.top500.orgAccès : http://www.top500.org
3030
1 / 6 100%