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