Master IM2P2 - Calcul Scientifique

publicité
Plan :
•
•
•
Les systèmes HPC
– Typologie des systèmes :
• Machines Mémoire partagée
• Machines à Mémoire Distribuées
• Machine NUMA
– Exemples
Architectures Processeurs HPC
– Processeurs scalaires, superscalaires, vectoriels
– Concepts d’optimisation
Optimisation de codes
– Technique d’optimisation
– Compilo, librairies
Master IM2P2 - Calcul Scientifique
23/10/09 Page 38
Architecture Processeurs : MIMD
Processeurs Généralistes (€↓)
Jeu d’instruction complexe :
multimedia, add, mult,…
Spécialisé Entiers
Processeurs HPC (€↑)
Jeu d’instruction simple : Mult., Add, Div., Sub.
Spécialisé Flottants
64 bit
32 bit
Exemple : Pentium IV
Exemple : Itanium II
 3,2 GHz
 Cache 500 ko
 6,4 Gflop/s peak
 1,5 GHz
 Cache 6 Mo
 6 Gflop/s peak
Linpack 0,7
Linpack 5,4 Gflop/s
Gflop/s
Temps de restitution ≅ 8 fois + rapide!
Fondeurs : Intel (Itanium), AMD (Opteron), IBM (Power), SUN (UltraSparc) , NEC (Processeurs Vectoriels)
Master IM2P2 - Calcul Scientifique
23/10/09 Page 39
Architecture Processeurs HPC
Définition : cycle
•Fréquence d’horloge = nombre d’impulsions par seconde
•200 Mhz ⇒ 200 Millions de cycles par seconde
•Restitution d’une opération ⇒ n cycles avec n ≥ 1
Spécificités processeur HPC:
•Instruction Level Parallelism (ILP) :
•Pipeline
•multiple Functional unit (FPU)
•Memoire Hierarchique
•Accès mémoire rapide
•Différents niveaux de cache L1, L2, L3
•Exécution Spéculative
•Branch prediction
•Prefetching
Master IM2P2 - Calcul Scientifique
23/10/09 Page 40
Architecture Processeurs HPC
Exemple schéma Architecture Proc. Superscalaire: Itanium
Master IM2P2 - Calcul Scientifique
23/10/09 Page 41
Architecture Processeurs HPC
Exemple schéma Architecture Proc. Superscalaire: Itanium
•Architecure
« massively parallel »:
2 FPU
4 I&MM Units
3 Branch Prediction
Master IM2P2 - Calcul Scientifique
23/10/09 Page 42
Proc. Scalaire : Pentium 4 IA32
•Pas de cache L3…
•1 FPU
Master IM2P2 - Calcul Scientifique
•Pipeline…
•Branch prediction
23/10/09 Page 43
Architecture Processeurs HPC
Objectif Pipeline ⇒ 1 cycle = 1 résultat
•Vision très schématique
A1 = B1 + C1
load
exec
write
3 phases ⇒ 1 phase/cycle
Pipeline : exemple
•3 Opérations indépendantes
A1 = B1 + C1
A2 = B2 + C2
A3 = B3 + C3
Master IM2P2 - Calcul Scientifique
23/10/09 Page 44
Architecture Processeurs HPC
Objectif Pipeline ⇒ 1 cycle = 1 résultat
A1 = B1 + C1
A2 = B2 + C2
A3 = B3 + C3
•Opérations indépendantes
load
Cycle 1
exec
Load B1,C1
Cycle 2
Add B1,C1
Store in A1
Cycle 3
Cycle 4
write
Load B2,C2
Add B2,C2
Résultats des 3 opérations : 9 cycles
Store in A2
Load B3,C3
Cycle 8
Cycle 9
Cycles
(Time)
Add B3,C3
Store in A3
•Ressources « idle »
Master IM2P2 - Calcul Scientifique
23/10/09 Page 45
Architecture Processeurs HPC
Objectif Pipeline ⇒ 1 cycle = 1 résultat
A1 = B1 + C1
A2 = B2 + C2
A3 = B3 + C3
•Opérations indépendantes
Résultats des 3 opérations : 9 cycles
exec
load
Pipelining :
Latence : 3 cycles
1 res/cycle
write
Cycle 1
Load B1,C1
Cycle 2
Load B2,C2
Add B1,C1
Cycle 3
Load B3,C3
Add B2,C2 Store in A1
Add B3,C3 Store in A2
Cycle 4
Store in A3
Cycle 5
Cycles
(Time)
Opérations indépendantes
Exhiber le maximum d’opérations indépendantes ⇒ alimenter Pipiline
Master IM2P2 - Calcul Scientifique
23/10/09 Page 46
Architecture Processeurs HPC
Plusieurs niveaux de pipeline :
•Beaucoup d’opération atomiques (dépend micor-architecture, jeu instruction) :
A1 = B1 + C1
load
instruc.
fetch
decode
instruc.
exec
exec
write
Mem
Store ou
load
Write
back
Master IM2P2 - Calcul Scientifique
23/10/09 Page 47
Architecture Processeurs HPC
longueur pipeline :
Master IM2P2 - Calcul Scientifique
23/10/09 Page 48
Architecture Processeurs HPC
Alimenter le processeur : Mémoire Hiérarchique
Temps
•Unité de Calcul « travaille » sur données dans les registres
Mo
Master IM2P2 - Calcul Scientifique
23/10/09 Page 49
Architecture Processeurs HPC
Alimenter le processeur : Mémoire Hiérarchique
Temps
•Unité de Calcul « travaille » sur données dans les registres
•Registre : taille très petite
Mo
Hit ?
load B1
A1 = B1 + C1
yes
no = miss
•Cache ?
load C1
•Coût n cycles
Unité de Calcul « attend » n cycles
Master IM2P2 - Calcul Scientifique
23/10/09 Page 50
Architecture Processeurs
Plusieurs Niveaux de Cache : exemple processeur Itanium2 ® d ’INTEL ® Débits et Latences
1,5 Ghz => 1 cycle = 0,6 ns
2 cycles
256 ko
1.5-6 Mo-9 Mo
6.4 Go/s
32 Go/s
L3U cache
16 Go/s
32 Go/s
12 cycles
L2U cache
128 Integer
Registers
128 FP
Registers
16 Go/s
L1D cache
16 ko
1 ko
1 ko
5 cycles
16Rd / 6Wr
32 Go/s
16
Go/s
5+1 cycles
12+1cycles
Master IM2P2 - Calcul Scientifique
Altix™:
145+ ns
23/10/09 Page 51
Architecture Processeurs
Effet taille de cache :
Master IM2P2 - Calcul Scientifique
23/10/09 Page 52
Architecture Processeurs HPC
Exécution Spéculative : Alimenter le Pipeline
If (cond1) then
a1 = b1 + c1
…
else
a1 = b1 * c1
…
End if
« Casser » dépendances
•Dépendances :
Cond1 → a1 = b1 + c1,…
•Branch prediction
•On « parie » Cond1 vraie
•On calcule a1 = b1 + c1,.…
•On vérifie plus tard ….
Master IM2P2 - Calcul Scientifique
23/10/09 Page 53
Architecture Processeurs HPC
Exécution Spéculative : Alimenter le Pipeline
•Prefetching
•Charger 1 instruction ET voisins mémoire
• On remplit les registres
Master IM2P2 - Calcul Scientifique
23/10/09 Page 54
Architecture Processeurs HPC
Concepts : ILP, Pipeline, speculation :
Mie en œuvre pour différentes micro-architectures (jeux d’instructions machine scalaire)
x86 32 bit : Pentium (IA_32), Athlon AMD
CISC : Complex instruction Set Computer
Prix, mais 32 bit
x86 : Xeon, Opteron (AMD)
 32 et/ou 64 bit
Pour le HPC
bon rapport prix/performance
RISC : Power6
Reduce Instruction Set Computer
 VLIW : Itanium Intel (co-dev. HP ex. Alpha)
Puissance
In-order
Very Long Instruction Word
Bande passante mémoire
Master IM2P2 - Calcul Scientifique
23/10/09 Page 55
Architecture Processeurs HPC
Différentes approches : x86 vs. EPIC (Explicit Parallel Instruction Computing)
Master IM2P2 - Calcul Scientifique
23/10/09 Page 56
Architecture Processeurs HPC
Le core c’est quoi ?
Master IM2P2 - Calcul Scientifique
23/10/09 Page 57
Architecture Processeurs HPC
Tendance Actuelle : processeurs multi-cœur (core)
•Fondeurs : Intel, AMD, IBM, SUN(Sparc)
Cache
Cache
core
core
core
Cache
Cache
core
core
Réduction taille
gravure (45 nm)
 1 processeurs mono-core
 1 processeurs ( ou socket) multi-core
(multi = 2, 4, 6, 8 )
 Plus de puissance BRUTE (×2, 4, 6, 8 )
 Plus de mémoire Cache / core
 Meilleur ratio flop/watt, flop/m2
 Même niveau fréquence, même concept architectural
 Adaptation carte mère ⇒ débit vers la RAM
Master IM2P2 - Calcul Scientifique
23/10/09 Page 58
Architecture Processeurs HPC
TOP 500
Master IM2P2 - Calcul Scientifique
23/10/09 Page 59
TOP 500 : evolution processeurs
Master IM2P2 - Calcul Scientifique
23/10/09 Page 60
Architecture Processeurs : Vectoriel
Processeur Vectoriel
 opération sur vecteurs (non plus sur scalaire) : Single instruction multiple data (SIMD)
 Potentiellement très très puissant
 adaptation du code : meteo, Onera,etc…
 très très très cher
NEC
Peak Gflop
Debit mémoire
100 Gflop/s
4TB/s
Master IM2P2 - Calcul Scientifique
23/10/09 Page 61
Architecture Processeurs : Vectoriel
Processeur Vectoriel
NEC
Peak Gflop
Debit mémoire
100 Gflop/s
4TB/s
TOP 500
Approche/ principe(SIMD) utilisé dans les architecture scalaire :
X86 (32bit) SSE : Streaming SIMD Extension
Altivec
Superscalaire (2 FPU)
Master IM2P2 - Calcul Scientifique
23/10/09 Page 62
Accélérer les processeurs
Accélérateurs
GP-GPU : General Purpose Graphic process Unit
Adaptation des cartes graphiques
Précision, compilateurs, langages (CUDA), etc…
Stream processing (data centric process)
Flop intensif (Double Precision ?)
 parallèlisme de données
 localité des données
Futur : Intégration dans les processeurs
GP-GPU
Peak Gflop
Debit mémoire
Tesla (Nvidia)
500 Gflop/s
80GB/s
Accélérateurs
FPGA : Processeur reconfigurables (CRAY, SGI)
CELL :
9 cores : 1 cpu + 8 SPE
IBM Roadrunner
Master IM2P2 - Calcul Scientifique
23/10/09 Page 63
Architecture Processeurs HPC
•
Comment on calcule le peak de perf. :
–
–
Peak = Freq. * (Nbre opération par cycle)
Nbre Opération par cycle :
•
•
–
Multicore :
•
–
Combien de FPU ?(scalaire, super scalaire)
Vectoriel
Somme puissance core
Exemple (itanium)
•
Fréquence
: 1.5 Ghz,
•
Puissance crête : 6 Gflops/s : 1500 MHz * 2 madd/cycle → 6 GFLOP/s
Fréquence
Processeurs
Vectoriels (NEC)
Peak Gflop
Debit mémoire
Byte/flop
100 Gflop/s
4TB/s
40
GP-GPU (Nvidia)
600 Mhz
500 Gflop/s
80 Gb/s
0,16
Itanium mono-core
1,5 Ghz
6 Gflop/s
6,4 Gb/s
1,06
Xeon Quad-Core
3 Ghz
40 Gflop
9,7 Gb/s
0,24
Xeon « NHM »
2,8Ghz
38Gflop
32 Gb/s
0,84
Power6 Bi-core
4,7 Ghz
36 Gflop
?
Master IM2P2 - Calcul Scientifique
23/10/09 Page 64
Calcul Haute Performance : TOP 500 List
Les plus grands systèmes de calcul actuellement : classement TOP 500 Juin 2009
Benchmark : Linpack
(kw)
Puissance Centrale nucléaire de 40 MW à 1450 MW
Master IM2P2 - Calcul Scientifique
23/10/09 Page 65
Téléchargement