Calcul Haute Performance

publicité
Introduction au Calcul Haute
Performance
Nicolas Renon,
Ingénieur de Recherche en Calcul Scientifique
CICT
( Centre Interuniversitaire de Calcul de Toulouse )
([email protected])
http://www.calmip.cict.fr ; http://www.cict.fr
Page 1
Plan :
•
•
•
•
•
Présentation Calcul Haute Performance (En anglais : High Performance Computing - HPC )
– La simulation numérique, Calcul Scientifique et HPC
– le HPC, c’est quoi ? à quoi ça sert ?
• Exemple problèmes étudiés et machines
– Introduction concepts HPC (processeurs et parallélisme)
• Loi de Moore, Loi de Amhdal
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
Calcul Parallèle
– Principes : speed up , efficacité parallèle, les pièges
– Mise en œuvre :
• OpenMP (TP)
• Message Passing Interface MPI (TP)
Page 2
La simulation Numérique : 3ième pilier de la science
3 piliers
Théorie
Expérimentation
Simulation / prédiction
« Nouvelle » Discipline : Calcul Scientifique
outil stratégique fondamental
Recherche et Industrie (Innovation, rapidité, …)
Limitation expérimentations :
trop difficile : soufflerie
trop cher : construire et jeter…
« Objectif » : simuler le réel !
Loi Physique (modèle) + méthode numérique efficace (« très bonne » approximation
du système) + Machine suffisamment performante
Page 3
La simulation Numérique : Calcul Scientifique
Une relation en chaîne des trois piliers :
Navier Stokes
Maxwell Electromagnétisme
Mécanique quantique
théorie
Schrödinger
Validation / nouvelle théorie
Mise en œuvre numérique
Approximations
Expérimentation
Observation
Simulation
Numérique
LHC
ITER
Validation
Désert Atacama
…
Page 4
Le Calcul Scientifique / Scientific computations
Chimie Quantique : Gaussian
Fusion de trois éléments :
Matière : VASP
Génomique : Blast
Crash : LS-Dyna
Mécanique des fluides : Fluent
Application
Discrétisation (spatiale,
temporelle,…)
Exécution (Optimale?)de
l’application
Méthodes Numériques de
résolution (Algébre Linéaire, …)
Calcul haute performance
Mathématiques
Algorithmes et méthodes numériques de résolution (mathématiques)
des systèmes de calcul avancés
Calcul Scientifique : une thématique transverse ….
Page 5
Calcul Scientifique : Thématique Transverse
Science
modélisation Climat
Astrophysique
Biologie, génomique, pharmacologie
Chimie
nanotechnologie
Ingénierie
Simulation de crash
Tremblements de terre
mécanique des fluides
combustion
Economie :
marché financier
Défense
Cryptographie
Nucléaire
Page 6
Calcul Haute Performance
Calcul Haute Performance : Technologie opérationnelle
Répondre à un besoin concret : calculer + et + vite (exponentiel)
Au cœur de la performance des applications scientifiques
Perf. processeurs
Parallèlisation intensive, massive…
Système de Calcul ultra puissant et performant
C’est quoi puissant ?
C’est quoi performant ?
Application
Calcul haute performance
Mathématiques
Page 7
Calcul Haute Performance : Pourquoi ?
Problème est trop :
Complexe
Différentes échelles
cher
dangereux (essai Mururoa)
Quand on ne peut pas faire autrement
Pour être compétitif :
Sortir les meilleurs (nouveaux) produits
Avant les autres
Page 8
Calcul Haute Performance : Compétitivité (Recherche ou Industrie)
Réduit les coûts de conception
( prototypes virtuels)
Réduit phase de tests réels
(plus vite sur le marché)
Page 9
Calcul Haute Performance : Compétitivité
Proctor & Gamble utilise le HPC pour modéliser les biscuits Pringles
Page 10
Calcul Haute Performance : Complexité
Page 11
Calcul Haute Performance : Recherche
Resolidification du Tantale
Page 12
Calcul Haute Performance
Climatologie :
Ouragan Katrina
Page 13
Calcul Haute Performance : Outils d’expérimentation
Large Hadron Collider
Analyse résultats
40 millions événements
par secondes
Grille de Calcul EGEE
Page 14
Calcul : Exemples toulousains recherche
Mélange de fluides miscibles ou immiscibles dans un tube vertical ou
faiblement incliné
Resp. J Magnaudet (DR) - Institut de Mécanique des fluides de Toulouse
Conso 2007 (config. 120 proc.) : 26 687h - JADIM
coupe 3D structures cohérentes : 16 processeurs
(15000h total cpu )
Page 15
Calcul : Exemples toulousains recherche
peptidomimétique
Resp. F Trinquier (DR) - Laboratoire de physique et chimie des nano-objets
35058 heures - gaussian
Page 16
Calcul : Exemples toulousains recherche
Simulation moléculaire Multi-Echelle au service du développement des Bio et
NanoBio-Technologies
A. Estève (CR) LAAS
41 456 h gaussian, VASP, Amber, Flexible(code perso)
Modélisation de nanoparticules et de leur environnement
R Poteau Professeur UPS - LPCNO
42 024 h, VASP
Structure électronique et magnétique des interfaces métal/oxyde
B Warot-fonrose (CR) UPS - CEMES
25 641 h, WIEN2K (conso mai 2008)
Simulations de fermions et de bosons fortement corrélés : propriétés magnétiques et
supraconductrices.
Fabien Alet (CR) Laboratoire Physique Théorique (IRSAMC)
41 355h codes perso (seq. + parallèles)
Page 17
Calcul Haute Performance
Calcul Haute Performance : Technologie opérationnelle
Pour une application donnée :
Tirer le meilleur parti du processeur
Tunning code / architecture proc.
Librairie Scientifique (Routine Algebre Optimisée)
Paralléliser le code :
Le code est parallélisable ?
Efficacité, combien de processeurs en parallèle
Système de Calcul
Processeurs Performants (puissance, bande
passante)
Beaucoup de mémoire (distribuée, partagée)
Des milliers de processeurs : Une seule Machine ?
interconnexions entre machine ?
Page 18
Calcul Haute Performance : TOP 500 List
Les plus grands systèmes de calcul actuellement : classement TOP 500 Juin 2008
Benchmark : Linpack
(kw)
Puissance Centrale nucléaire de 40 MW à 1450 MW
Page 19
Calcul Haute Performance : TOP 500 List
Répartition par segment d’activité
Page 20
Calcul Haute Performance : Monde
Répartition par pays :
Page 21
Calcul Haute Performance : France / Recherche
Grands Centres de Calculs :
IDRIS (Orsay)
CINES (Montpellier)
CEA (CCRT)
Mésocentres de calcul (échelle
région)
Strasbourg
Bordeaux
Grenoble
…
Toulouse = CALMIP
Echelle Laboratoire
Meteo France
CALMIP-CICT
Cerfacs
IDRIS
CINES
Toulouse
Centres de Calculs :
Ouvert à la Recherche (sur projets)
Ouverture partielle et limitée aux entreprises (accès payant)
Page 22
Calcul Haute Performance : Contexte Utilisation
Plusieurs Utilisateurs d’un système de calcul
Laboratoire/ Entreprise :ordre dizaine
Mésocentre : ordre centaine
Grands Centres : ordre du millier
Gestion Cohérente des travaux
Ordonnanceur/politique de gestion
Serveur Totalement Dédié au Calcul
Applications Scientifiques Calcul uniquement
Sauvegarde
Espace Fichier / Stockage
Accès distant
contrainte d’hébergement lourdes :
Electricité, (secouru)
Refroidissement
Poids
Sécurité
….
Page 23
Calcul Haute Performance
Unité Calcul Haute Performance
Processeurs
Loi de moore
Problème énergétique
Limitation perf. applications
Parallélisme
Principes
Loi de Amdahl
Page 24
Partie II : Calcul Haute Performance
Les unités du calcul haute performance
Flop : floating operation (mult, add) opération sur les nombres à virgule flottantes (nombre
réels)
3,14159
-6,8675456342 E+08
Représentation binaire (64 bit)
Signe (1 bit)
Exposant (8 bits)
Mantisse (52 bits)
2.2*10-308 |r| 2.2*10+308
15 chiffres significatifs
1 Mflop/s
1 Megaflop/s
106 Flop/sec
1 Gflop/s
1 Gigaflop/s
109 Flop/sec
1 Tflop/s
1 Téraflop/s
1012 Flop/sec
1 Pflop/s
1 Pétaflop/s
1015 Flop/sec
Page 25
Partie II : Calcul Haute Performance
Les unités du calcul haute performance
Données : mémoire
RAM
Disque
1 Mo (MB)
1 Megaoctet
106 octets
1 Go (GB)
1 Gigaoctet
109 octets
1 To (TB)
1 Téraoctet
1012 octets
1 Po (PB)
1 Pétaoctet
1015 octets
Débit (bande passante - bandwidth)
Accès RAM
Interconnexion
Notion de latence (micro-seconde)
1 Mo/s
1 Megaoctet/s
106 octets/sec
1 Go/s
1 Gigaoctet/s
109 octets/sec
1 To/s
1 Téraoctet/s
1012 octets/s
Page 26
Calcul Haute Performance
Fixer les idées :
1 kflop/s = 103 opérations sur des nombres réels :
1 page rectoverso avec 5 colonnes de 100 nombres réels chacune traités en
1 seconde
106 flop/s (1 Mflop)
1000 pages 2 rames de papier (10 cm de hauteur)
Page 27
Calcul Haute Performance
Fixer les idées :
(1p)
109 flop/s (1 Gflop - ordre de grandeur de 1 processeur )
1 colonne de 100m de rames de papier (2ième étage tour Eiffel)
1012 flop/s (1 Tflop - 1 petite machine parallèle
1 col. 100km (mésosphère Météores, aurores boréales) (100 p)
1015 flop/s (1 Pflop - existe ?)
100 000 km (1/3 distance terre-lune)
(10 4 p)
1018 flop/s (1 exaflop - imagine ?)
Page 28
Calcul Haute Performance : TOP 500 List
Les plus grands systèmes de calcul actuellement : classement TOP 500 Juin 2008
Benchmark : Linpack
(TF)
(kw)
Puissance Centrale nucléaire de 40 MW à 1450 MW
Page 29
Calcul Haute Performance
Processeurs
Loi de moore
problème énergétique
La fin des gains gratuits
Des applications peu performantes
Le parallélisme
Automatique ?
Speedup
Scalabilité
Loi de amdahl
Page 30
Calcul Haute Performance
Loi de Moore ou conjecture de Moore(co-fondateur de Intel)
« Quelque chose » double tout les 18-24
mois
« Quelque chose » = transistors
« Quelque chose » = « performance »
loi exponentielle
ne peut durer (vraie depuis 30 ans)
très empirique
Année
Année 90 (fin)
Année 2000 (début)
Now
Processeurs
Pentium III
Itanium
Xeon (Quad core)
Puissance
1GFlop
6Gflop
40Gflop
Page 31
Calcul Haute Performance : Processeurs
Problème énergétique :
Fin de la course à la fréquence :
Dissipation : frequence*(tension2)*Cste (frequence)3
Problème de refroidissement (retour de l’eau)
Alimentation (beaucoup de processeur)
Processeurs aujourd’hui
voltage : lampe de poche (1 volt)
courrant : un four (250 A)
puissance : une ampoule(100 watts)
surface : un « gros » timbre (10cm2)
Fréquence stabilisée à 3 Ghz
Page 32
Partie II : Calcul Haute Performance
Mais : Les besoins sont en croissance (perpétuelle et exponentielle)
Conjecture de Moore : quelque chose augmente
Augmenter la performance des processeurs sous contrainte
Sur quoi peut-on jouer ?
nbre de transistor
des processeurs plus intelligents (architecture)
d’autres paradigmes : accélérateurs (parallésime massif de données)
Page 33
Calcul Haute Performance
Choix actuel :
Augmenter le nombre de transistor
Finesse de gravure : 65 nm, 45 nm, 32 nm (nano : 10-9)
Fréquence constante
Architecture constante
Conclusion :
Processeurs multi-core
Cache
Cache
Cache
core
core
core
Réduction taille gravure (45 nm)
1 processeurs mono-core
1 processeurs ( ou socket) multi-core
(multi = 2, 4, 8 )
Page 34
Calcul Haute Performance
C’est quoi un core ?
Ce qui permet de Calculer (réaliser les instructions)
Opérations
ALU
Arithmetic Logic Unit
FPU
Floating Point Unit
Data :
Registre (petites mémoires tampon)
Page 35
Calcul Haute Performance
Problème :
Gain de perf. « gratuit » avec l’augmentation de fréquence
Gain de perf. « gratuit » avec l’augmentation du nombre de core
Multi-code :
Si l’application n’est pas parallèle zéro gains
opération par seconde
4 cores
2 cores
Appli para.
1 core
Appli seq.
fréquence
Page 36
Calcul Haute Performance
efficacité des applications
Ce qu’on observe :
10% du peak de performance processeur
certaines applications font mieux…et d’autres beaucoup moins bien !
Des raisons avancées :
instructions par cycles
Architecture actuelle: 4 opérations par cycle (potentiel)
Application (réalité): 1,2 -1,4 opérations restituées par cycle
mémoire
Page 37
Calcul Haute Performance : TOP 500 List
Les plus grands systèmes de calcul actuellement : classement TOP 500 Juin 2008
Benchmark : Linpack
(TF)
Efficacité
75%
64%
88%
Page 38
Calcul Haute Performance
Pourquoi des processeurs rapide tournent lentement
Mémoire
Attendre la donnée
Efficacité traitement du flux instruction/données
Page 39
Calcul Haute Performance
Comment améliorer les temps d’accès
principe d’une mémoire hiérarchique
Ce qu’on arrive à faire techniquement
capacité faible temps d’accès rapide
grande capacité temps d’accès long
mémoire
Disque
Temps accès
300 ns
mémoire
RAM
Barrette mémoire
10 ns
Cache niveau 2 (ou 3)
Puce silicium
2 ns
Cache niveau 1
1 ns
Registre
Page 40
Calcul Haute Performance
Le Calcul Parallèle
résoudre des problèmes plus vite
résoudre des problèmes plus gros et complexes (plus réalistes)
Comment ?
Faire coopérer des ressources entre elles « communication »
Utilisation indépendante de ressources
Les principes
efficacité - speed-up - accélération et loi de amdahl
algorithme parallèle : granularité
Equilibrage des charges
Synchronisation
Mise en œuvre du parallèle bien plus difficile que le séquentiel, mais :
les choses s’améliorent (les techniques et machines)
le hardware aussi
Page 41
Calcul Haute Performance
Parallélisme automatique sur les machines actuelles
niveau bit :
Opérations sur les flottants, etc …
Parallélisme d’instruction (niveau processeur)
Plusieurs instructions réalisées par cycle
Recouvrement accès mémoire et calcul
Compilateur auto-parallèlisant
Parallélisme automatique : niveau d’efficacité limité
Parallélisme : nécessité d’une mise en œuvre explicite
Page 42
Calcul Haute Performance
Analyser l’efficacité parallèle : speedup ou accélération
Speedup =
Bonne efficacité // si:
TCodeSequentiel
TCodeParallel
speedup Nombre Processeurs
Ex. : avec 10 processeurs je vais 10 fois plus vite qu’en séquentiel
Page 43
Calcul Haute Performance
Scalabilité de l’application : évolution du speedup en fonction du nombre de
processeurs
Difficile : maintenir une bonne efficacité sur un très grand nombre de processeurs
Page 44
Calcul Haute Performance
Loi de amdahl :
Hypothèses :
Seule une partie de l’application est parallélisée
La partie parallélisée est optimale
fp
t N = + f s t1
N
1 = f p + fs
t1
1
=
fp
tN
+ fs
N
1
lim S =
N fs
S=
Page 45
Calcul Haute Performance
Loi de amdahl :
lim S =
N 1
fs
Page 46
Téléchargement