DERNIÈRES INNOVATIONS ET TENDANCES DANS LE CALCUL HAUTES PERFORMANCES - COSINUS ROMAIN CASTA ANNAÏG PEDRONO - IMFT

 
CONTINUER À LIRE
DERNIÈRES INNOVATIONS ET TENDANCES DANS LE CALCUL HAUTES PERFORMANCES - COSINUS ROMAIN CASTA ANNAÏG PEDRONO - IMFT
CoSiNus

                                      Dernières innovations et tendances
                                                    dans le
                                         Calcul Hautes Performances

                                                  Romain CASTA     – Pierre ELYAKIME
                                                  Annaïg PEDRONO   – Hervé NEAU

https://www.entreprises.gouv.fr/num
erique/secteur-du-
numerique?language=en-gb

                      15 mars 2018                                               1
DERNIÈRES INNOVATIONS ET TENDANCES DANS LE CALCUL HAUTES PERFORMANCES - COSINUS ROMAIN CASTA ANNAÏG PEDRONO - IMFT
Introduction
    Présentation suivie d'une discussion sur les dernières innovations et tendances dans le
    Calcul Hautes Performances suite à nos participations :
       • au congrès SuperComputing 17 (Annaïg, Pierre, Hervé)
       • à la formation HPC SC Camp 2017 (Romain)
    dégager les grandes tendances du HPC et du supercomputing et de voir dans quelle mesure
    la CFD ou le traitement d'images peut en profiter

                                    Thèmes abordés
-   Big Data/Data science, Intelligence Artificielle et Machine / Deep Learning (Pierre)
-   Les évolutions hardware : de plus en plus de cœurs mais … Top500, Exascale (Hervé)
-   Les conséquences des évolutions Hardware sur les applications (Annaïg)
-   Parallélisation hybride, MPI3 (Romain)

                                                                                 2
DERNIÈRES INNOVATIONS ET TENDANCES DANS LE CALCUL HAUTES PERFORMANCES - COSINUS ROMAIN CASTA ANNAÏG PEDRONO - IMFT
SuperComputing 2017
Plus grand congres mondial sur le SuperComputing (Denver)
  • ~10 000 participants
  • des conférences plénières filmées (7000 places assises)
  • Un hall d’exposition avec tous les intervenants du HPC
  • 40 présentions en parallèle, un hall posters

                             Photos SC17

                                                              3
DERNIÈRES INNOVATIONS ET TENDANCES DANS LE CALCUL HAUTES PERFORMANCES - COSINUS ROMAIN CASTA ANNAÏG PEDRONO - IMFT
SuperComputing 2017   Photos SC17

                      4
DERNIÈRES INNOVATIONS ET TENDANCES DANS LE CALCUL HAUTES PERFORMANCES - COSINUS ROMAIN CASTA ANNAÏG PEDRONO - IMFT
https://www.lemondeinformatique.fr/act
ualites/lire-q-network-ibm-concretise-l-
informatique-quantique-avec-ses-clients-
70427.html

                                           Big Data – Data Science
                                            Intelligence Artificielle
                                       Machine Learning / Deep Learning   https://www.startechnormandy.com/b
                                                                          log/intelligence-artificielle-non-neutre

                                             Machine Quantique
                                                    Pierre

                                                                           5
DERNIÈRES INNOVATIONS ET TENDANCES DANS LE CALCUL HAUTES PERFORMANCES - COSINUS ROMAIN CASTA ANNAÏG PEDRONO - IMFT
Big Data – Data Science
                        http://startupradar.                                         https://www.lebigdata.f
                        asia/tag/agriculture                                         r/definition-big-data

  Big Data = le pétrole de notre ère digitale : explosion quantitative des données numérique 2,5
  quintillions (1030) d’octets de données par jour (mail, vidéos, photos, informations climatiques,
  signaux GPS, enregistrement d’achats en ligne, etc )
  Besoin de traiter et de valoriser le Big Data: naissance de la Data Science

                                                                          https://www.esaip.org/metiers/numerique/big-data/

Les solutions logicielles et les architectures matérielles actuelles sont elles assez puissantes pour
relever les défis de plus en plus ambitieux de la Data Science ?
         ⇒ Mutation cognitive (IA, Machine Learning, Deep Learning)
         ⇒ Convergence HPC Big Data
         ⇒ Mutation Quantique
                                                                                                               6
DERNIÈRES INNOVATIONS ET TENDANCES DANS LE CALCUL HAUTES PERFORMANCES - COSINUS ROMAIN CASTA ANNAÏG PEDRONO - IMFT
Intelligence artificielle - Machine Learning
 I.A. : « ensemble de théories et de techniques pour réaliser des machines capables de simuler
 l'intelligence » - Fait appel à la neurobiologie computationnelle : particulièrement aux réseaux de
 neurones, à la logique mathématique et à l’informatique
 Machine Learning (ML) : approche statistique de l’IA, concept mis en place par le mathématicien
 Alan Turing vers 1950. Il imagine une machine capable d’apprendre, une « Learning Machine »
 => Algorithmes d’apprentissages automatiques Machine Learning qui ont la faculté de
 s’auto-organiser pour améliorer leur pouvoir prédictif

Machine Learning :
- Réseaux de neurones profonds (deep learning)
- reconnaissance d’images
- vision par robotique
- adaptative boosting (AdaBoost: détection des
  visages en temps réel)
- etc.
                                                                  https://www.lebigdata.fr/machine-learning-et-big-data

                                                                                                     7
DERNIÈRES INNOVATIONS ET TENDANCES DANS LE CALCUL HAUTES PERFORMANCES - COSINUS ROMAIN CASTA ANNAÏG PEDRONO - IMFT
Machine Learning - Deep Learning
Deep Learning : technique de Machine Learning qui se base sur la modélisation des circuits biologiques
des neurones pour construire une méthode par apprentissage automatique. Plus le nombre de neurones
est élevé, plus le réseau est profond

                                                                        https://www.nextplatform.com/2017/03/21/can-fpgas-beat-
                                                                        gpus-accelerating-next-generation-deep-learning/

Reconnaissance faciale de facebook, synthèse vocale (traduction orale en temps réel de Skype ou
Google), création de la machine intelligente AlphaGo par Google DeepMind
Mais aussi … en science : les algorithmes d’apprentissage construisent seuls le modèle optimal
pour décrire un phénomène sans aucune règle prédéfinie à partir d’une masse de données
   traitement d’images, du son, de la vidéo       robotique        domaine de la santé      …

                                                                                                   8
DERNIÈRES INNOVATIONS ET TENDANCES DANS LE CALCUL HAUTES PERFORMANCES - COSINUS ROMAIN CASTA ANNAÏG PEDRONO - IMFT
Impact de l’IA
L’IA est en train de transformer les industries :
santé, finance, science, énergie, transport, …

                                    SC17 : Nvidia

… et révolutionne le HPC :                                           https://software.intel.com/en-us/articles/machine-learning-on-intel-fpgas

   Simulation numérique -> Industries Automobile, aéronautique, chimie, cosmétique, …
   Nouveau domaine d’application: le High Performance Data Analytics (convergence Big Data HPC) :
   le Big Data Analytics et l’IA ont maintenant recours au HPC
   => Mise au point de framework (environnement de développement) libre et open source pour faciliter la
création d’applications distribuées (stockage de données, traitement parallèle) : Hadoop, MapReduce, …
=> La convergence HPC Big Data implique des solutions matérielles HPC plus performantes
                                                                                                              9
DERNIÈRES INNOVATIONS ET TENDANCES DANS LE CALCUL HAUTES PERFORMANCES - COSINUS ROMAIN CASTA ANNAÏG PEDRONO - IMFT
Convergence HPC Big Data                                                                             https://software.intel.com/en-
                                                                                                                                                            us/xeon-phi/x200-
                                                                                                                                                            processor/remote-access

Architecture hybride sur laquelle sont installées :
  Processeurs multi-cœurs : fréquence élevée de 1,5 à 3 GHz (1,5 à 3 millions d’opération/sec.) avec plusieurs
  cœurs (24 pour Intel Xeon Skylake et pour Power 9 d’IBM, …)
  Cartes Manycore : Volta avec NVLINK de Nvidia (processeurs graphiques), Xeon Phi génération Knight’s
  Landing (KLN) d’Intel, FirePro S d’AMD
  Processeur avec puce graphique intégrée : Kaby Lake d’Intel et AMD (pour fin 2018)
  FPGA : circuits intégrés reprogrammables sur lesquels plusieurs
  tâches peuvent être lancées en parallèles

                                                                                                                                            https://www.wxwenku.com/d/337318
                                                           http://drsalbertspijkers.blogspot.fr/2017/03/ibm-power-9-cpu-game-changer.html
       https://www-03.ibm.com/systems/fr/power/hardware/

⇒ Efficacité des machines HPC pour des problèmes Big Data démontrée au SC17
  • deep learning sur clusters GPU,
  • plugin Harp de Hadoop avec la librairie d’Intel DAAL sur un algorithme d’exploration de sous-graphes
     utilisant les architectures d’Intel Xeon et Xeon phi,
  • tests sur les algorithmes de ML Kmeans et Graph Layout sur 4096 cœurs du super calculateur IU Big Red II
                                                                                                                                                      10
Machine Learning et la science
Utilisé par la science qui possède du Big Data : cosmologie (télescopes, satellites, …), météorologie
(intempéries, cyclone, …), médical (génome, problème avec la politique de confidentialité des
données Google DeepMind), …
- une analyse génomique à partir d’un traitement HPC de nombreux flux de données permet
   d’établir un lien entre séquence d’ADN et maladie
- Aide au diagnostic de maladies
- Agriculture : développement de nouvelles variétés génétiques plus résistantes,
   optimisation des conditions en termes de champs, de sol et de climat
- Projet Square Kilometer Array (SKA), cartographie du ciel plus en détail :
   50 pétaflops de traitement dédié, 10 pétaoctets par jour, …
  Apprentissage via le mooc de Google : udacity
  Librairie de Deep Learning : Intel DAAL
  Librairies de Machine Learning : TensorFlow (Google), NNabla (Sony),
Matlab, python avec Scikit Learn                                                   http://www.johncanessa.com/category/tensorflow/

!! Le Machine Learning n’est pas encore une science exacte : boîte noire dont
on ne contrôle rien (Google Deep Mind), donne parfois des résultats absurdes :
une IA de facebook crée son propre langage et est débranchée par les chercheurs, ...
                                                                                                   11
Machine Learning et la science
Algorithmes de ML en science: problème de classification et de régression
- Linear Regression (régression linéaire)
- Logistic Regression (régression logistique)
- Decision Tree (arbre de décision)
- Random forest (forêts d'arbres/arbres aléatoires)
- SVM (machines à vecteur de support)
- Naive Bayes (classification naïve bayésienne)
- KNN (Plus proches voisins): application directe à la segmentation
- Gradient Boost & Adaboost
- Dimensionality reduction
- Q-Learning
- Réseaux de neurones

Pour aller plus loin: makina-corpus

                                                                            12
Machine Learning au SC 17
     Application médicale (oncologie, imagerie médicale, analyse d’images
     volumétriques)
     Cosmologie, Industrie automobile, …
     Convergence HPC Big Data

SC17 - Nvidia - SKA

                                                                            13
Evolution Hardware: la machine quantique
Limites actuelles :
  Microprocesseur binaire : l’information circule sous la forme de très faibles
  courants électriques ne pouvant être que dans deux états possibles 0 ou 1 : le bit !
  Architecture séquentielle : ces circuits ne gèrent qu’un calcul à la fois
  « Goulot de Von Neumann » : lorsque la quantité d’informations est trop grande face à la fréquence
  du microprocesseur : goulot d’étranglement !

L’avenir du « Hardware » pour le Data Science: la Machine Quantique                           SC17 -
                                                                                              http://hexus.net/tech/news/indus
                                                                                              try/86177-intel-puts-us50-million-
  L’unité élémentaire est le Qubit qui peut prendre à la fois les états 0 et 1                quantum-computing-research/

  Un circuit composé de 50 Qubits
  peut être à la fois dans 2 états
  différents : un calcul effectué
  par ce circuit est réalisé sur chacun
  de ce million de milliards d’états =
  Architecture parallèle

                                                                                         14
Machine Quantique
  Encore à l’état de recherche : Projet IBM avec le Qubit électronique vs Projet Monroe
  avec le Qubit ionique
  Le projet D-Wave avec le Qubit à boucle a été commercialisé,
  mais il n’a pas été démontré qu’il était quantique …
  Architecture parallèle faite pour traiter le Big Data avec des algorithmes
  de réseaux de neurones approfondis

Au SuperComputing 17 :
  Simulation d’un circuit à 45 Qubits sur le super calculateur Cori II en utilisant 8192 nœuds et 0.5
  pétaoctet de mémoire : permet un étalonnage crucial; la plus grande simulation de circuits
  quantiques
  Planification dynamique des tâches dans les plateformes HPC basée sur la simulation et
  l’apprentissage automatique pour obtenir des politiques d’ordonnancement dynamique
                                                                                          https://www.hardwareluxx.de/inde
Nouveauté: Bristlecone (Google) 72 Qubits,                                                x.php/galerie/komponenten/prozes
                                                                                          soren/google-bristlecone-
aucune simulation avec un super ordinateur possible                                       quantenchip-.html

                                                                                             15
http://www.zdnet.com/article/intel-takes-its-next-

    Les évolutions hardware                                step-towards-exascale-computing/

De plus en plus de cœurs mais …
        Top500, Exascale
                                Hervé

     https://iotbusinessnews.com/tag/strategy-analytics/

                                                                      16
Evolutions Hardware
         Loi de Moore : Le nombre de transistors que l’on peut mettre à un coût raisonnable sur un
         circuit imprimé double tous les 18/24 mois
         Consommation électrique : Puissance électrique dissipée ~ fréquencen
         Limitations : refroidissement + coût de l’énergie => Efficacité énergétique cruciale
                                                                                                                                 SC17

         ⇒ La fréquence des processeurs stagne : fmax ~ 3 GHz (1er Top 500                 ~20MW/an   ~20M€/an)

         ⇒ Besoin de refroidissement efficace et bon marché : ~30% de la dépense énergétique
                                           Refroidissement par immersion des cartes dans un
                                           liquide électriquement neutre, et refroidi

                                           On amène de l’eau froide directement sur le point chaud,
                                           mais l’eau reste isolée de l’électronique

                                           On refroidit par eau une « porte/grille »
                                           dans laquelle circule un flux d’air
https://www.zurich.ibm
.com/st/energy_efficien
cy/zeroemission.html                                                                                              https://news.filehippo.com/2013/11/liquid-
                                                                                                                  cooling-cuts-costs-heats-building-innovation-
                                                                                                                  centre/
                                         https://submer.com/data-center-cooling-methods/

                                                                                                                     17
Evolutions Hardware

                                                https://en.wikipedia.org/wiki/Moore%27s_law

                      Part de marché des processeurs :
                      Intel : 94%, AMD : 1%, …

                                                      18
Evolutions Hardware

http://www.idris.fr/media/formations/hybride/form_hybride.pdf

                                                                                      19
Evolutions Hardware : Multicore et Manycore

⇒ Multicore : le nombre de cœurs par puce augmente
  Intel Skylake : 24 cœurs (48 threads) – 1,5TFLOPS
  AMD EPYC 32 cœurs
  Intel KNL 72 cœurs                                  https://people.eecs.berkeley.edu/~y
                                                      elick/talks/data/MoreData-VT14.pdf
  IBM Blue Gene/P 450 cœurs/chips

⇒ Manycore :
  accélérateur graphique/GPGPU, Intel Xeon Phi, MIC, ARM, …
  => Ratio Gflops/€ imbattable mais performances crête inatteignables
  Nvidia Tesla V100 : CUDA Cores 5120 - Tensor Core 640 - 16 GB 900 GB/s - 12 nm - 7,5 TFLOPS FP64

⇒ Le memory wall : débit vers la mémoire          , puissance-nb cœurs , latences mémoire
  - De plus en plus de cycles de procs à attendre les données
  - De plus en plus difficile d’exploiter la performance des processeurs
⇒ Performances dominées par la disponibilité et l’équilibre des ressources
⇒ Solutions partielles : ajout de mémoires caches, parallélisation des accès mémoire

                                                                                               20
Evolutions Hardware

GFLOPS = nombre de milliards
d’opérations par seconde

 http://www.info.univ-angers.fr/~richer/cuda_crs1.php

                                                                              21
Evolutions Hardware
       CPU                                                Accélérateurs GPU
2000   NetBurst (Pentium 4) 800–3466 MHz 180 nm
2003   Pentium M            400–2133 MHz 130 nm NV30
2006   Intel Core           3333 MHz                   65 nm G70/G80
2008   Nehalem              3600 MHz                   45 nm Tesla C2050 (CUDA)
2010   Westmere             3730 MHz                   32 nm Fermi
2011   Sandy Bridge         4000 MHz                   32 nm
2012   Ivy Bridge           4000 MHz                   22 nm                           http://igm.univ-
                                                                                       mlv.fr/~dr/XPOSE2011/CUDA/
2013   Haswell              4400 MHz                   22 nm                           caracteristiques.html
2014   Broadwell            3700 MHz                   14 nm
2015   Skylake              4200 MHz                   14 nm Xeon Phi
2016   Goldmont             2600 MHz                   14 nm Pascal
2017   Goldmont Plus        2800 MHz                   14 nm Volta, PEZY-SC2*
2018   Cannonlake           ? MHz                      10 nm
               KNL (Xeon Phi2), Kaby Lake G : CPU+GPU (Intel + AMD)
                                                         FPGA (circuits logiques programmables)
                                                                                                             https://www.extremetech.com/
- GPU = Manycore => SIMD (Single Instruction, Multiple Data), SIMT (Single Instruction, Multiple Thread)     gaming/261297-intel-leaks-
                                                                                                             details-new-desktop-core-i7-
- 1 cœur GPU “va moins vite” qu’un CPU et dispose de moins de mémoire                                        8809g-radeon-graphics

  mais accélération grâce au traitement parallèle                                 *PEZY-SC2 : 2048 cœurs par chipset à 0.7GHz
                                                                                                                    22
Evolutions Hardware : coût énergétique

                                         https://spcl.inf.ethz.ch/Publications
                                         /.pdf/hoefler-energy-utah.pdf

                                         23
Evolutions Hardware : KNL vs Haswell (NERSC’s Cori Supercomputer)
T. Allen et al., Performance and Energy Usage of Workloads on KNL and Haswell Architectures, SC17
Haswell Xeon E5 2698 : 2.3Ghz, 32 cores (64 log), 2 socket, 128GB 2.1GHz DDR4,           2388 n
Xeon Phi 7250 KNL : 1.4GHz, 68 cores (272 log), 1 socket, 96GB 2.4GHz DDR4 16GB MCDRAM, 9688 n
⇒ Comparer Manycore/Multicore
⇒ Mesure temps CPU et énergie consommée
⇒ Variables : MPI/OpenMP, threads per core

Conclusion :
- Gain moyen performances KNL (6/9) : x1.27
- Gain moyen énergie KNL (9/9) : x1.84                          SC17

- Utilisation KNL MCDRAM très performante

⇒ Beaucoup de travail pour obtenir des gains
  importants (cache) avec KNL
⇒ Difficultés pour mesurer les temps CPU
  variation de la fréquence des cœurs (turbo, Pmax/cœur)

                                                                                               24
Evolutions Hardware : Intensité arithmétique / bande passante mémoire
         L’architecture des processeurs et mémoire influence fortement les performances des codes
         Suivant l’intensité arithmétique, code Memory Bound ou Compute Bound

https://www.codeproject.com/
Articles/1191905/Optimizing-
Application-Performance-with-
Roofline

          ⇒ Intensité arithmétique = nb d’opérations / quantité de mémoire échangée
          ⇒ Gros travail des développeurs pour profiter des évolutions hardware   https://www.slideshare.net/i
            des super-calculateurs : algorithme, parallélisation hybride          nsideHPC/atpesc-2017-
                                                                                  track12731845amparkertheta
            (MPI+ OpenMP/OpenACC/pthreads/Cuda/…), réutilisation mémoire
                                                                                                                 25
Evolutions Hardware : Vectorisation

AVX-512 32 registres de 512bits / AVX2 16 registres 256 bits                             https://colfaxresearch.com/skl-avx512/

=> 2x largeur registres, 2x nombre de registres, 2x largeur des unités FMA (fused-multiply add)
                                                                                                         26
National Supercomputing Center in Wuxi : TaihuLight : 10 millions de cœurs
1st Top500 => 125PFlops, 1310TB memory, Linpack 93PFlops
6 GFlops/W, 17th Green500, 2nd Graph500, 3rd HPCG
Processeur chinois SunWay 260 / Compilateur chinois

40 racks x 1,024 chipsets x 4 groupes de cœurs x 65 cœurs = 10,649,600 cœurs
  1er niveau : 163,840 process MPI
     2ème niveau : 64 ou 65 threads concurrents                                                               1 chipset

2018 : Sunway Exa-Pilot System
     5-10 Tflops per node - 10-20 Gflops/W
2021 : Exa-scale System :
     1000 Pflops - 30 GFlops/W                                                    SC17 : https://www.asc-
                                                                                  events.org/ASC18/doc/Sunway%20TaihuLight%20Extreme%20Co
Challenge : - How to scale over 10 million heterogeneous cores?                   mputing%20and%20Big%20Data%20HAOHUAN%20FU.pdf

             - How to utilize the different memory hierarchy and resolve the even tougher memory barrier?
             - How to migrate the existing science software?

                                                                                                       27
National Supercomputing Center in Wuxi : TaihuLight : 10 millions de cœurs
Problèmes
Gap entre les logiciels (100T) et le hardware (100P)
Des millions de lignes de codes traditionnels écrites
pour du Multicore mais pas pour du Manycore
Une scalabilité limitée
                                              SC17 : https://www.asc-
Solutions                                     events.org/ASC18/doc/Sunway%20T
                                              aihuLight%20Extreme%20Computin
Réécrire des codes Fortran/OpenACC            g%20and%20Big%20Data%20HAOH
                                              UAN%20FU.pdf
en codes par thread en C
Réécrire les communications et les
accès mémoire

Utilisation actuelle :
Applications classiques HPC (Science ->Service)
Utilisation future :
Applications relatives au Deep Learning

                                                                                28
Top 500

SC17 :
https://fr.slideshare.net/top500/
top500-november-2017

           Tendance : Plus de parallélisme (Manycore) et Architecture hybride (CPU/GPU)
                                                                                          29
Top 500

J. Dongara, In the begining, SC17
Linpack : facile à faire tourner, à
comprendre et à analyser (pb denses Ax=b)
Linpack n’est plus fortement
corrélé aux applications réelles
Retourne des perfs crêtes
Argument marketing                           SC17 : https://fr.slideshare.net/top500/top500-november-2017
                                                                                                            https://www.hpcwire.com/2017/11/13/flipping-flops-
                                                                                                            reading-top500-tea-leaves/green500-nov-2017-top5/

Top 500 n’est qu’un aspect d’un
supercalculateur :
- Power consumption : Green 500
- Graph Applications : Graph 500
- Unstructured applications : HPCG
- I/O benchmarcks : IO-500
                                            17          6        TaihuLight                                                               1

                                                                                                                           30
Top 500

                                                                                       845TFlop/s

                                                         6-8 years
                                                                                         548TFlop/s

                                                                          My laptop : 166Gflop/s

                                                                                              https://www.top500.org/news/top500-
                                                                                              meanderings-sluggish-performance-
                                                                                              growth-may-portend-slowing-hpc-market/

PFlops (> 1015 Flop/s) : 181 systems - CPU classiques Intel - CPU classiques + accélérateurs GPU -
                                       Cœurs légers : IBM BG, ARM, Knight Landing, TaihuLight, PEZY-SC2
                                                                                                   31
Exascale (>1018 Flops/s) : 0 system
                                                        https://www.slideshare.net/ultrafilter/algorith
                                                        mic-challenges-of-exascale-computing-20121

Exascale chips : thousands of tiny cores and a few large ones
Processors don’t run at the same speed (cache - power/T° mng)
New processors means new softwares : avoiding communication
in iterative solver, avoiding synchronisation, auto-tuning gets kernel
performance near optimal (framework), load balancing with locality
Not all computing problems are exascale but they should be
exascale-technology aware (DOE)                                                                           https://www.hpcwire.com/2015/07/28/doe-
                                                                                                          exascale-plan-gets-support-with-caveats/

                                                                                                                                  32
Exascale (>1018 Flops/s) : 0 system
Chine :
2020/21 : 3 supercalculateurs
Etats-Unis (SC17) :
2021-2023 : US DOE (30MW/year)
Europe :
202x                                                               https://fr.slideshare.net/schihei/high-performance-
                                                                   computing-challenges-on-the-road-to-exascale-computing

Exascale computing will deliver science breakthroughs, in simulation
and data analytics but requires advances in models, algorithms andsoftware
Exascale will impact a broad set of applications : science, health, manufacturing,
environment, infrastructure
There are still many algorithmic challenges : deploying
the best numerical methods with the best parallelization

                                                                                                           33
Exascale

           http://orap.irisa.fr/wp-
           content/uploads/2017/10/Orap_40eForum
           _Philippe_Lavocat.pdf

              34
https://software.intel.com/en-us/blogs/2016/02/17/what-
is-thread-parallelism-and-how-do-i-put-it-to-use

                                                          Les conséquences des
                                                          évolutions Hardware
                                                           sur les applications
                                                                 Annaïg

                                                                                  http://le-blog-agpm.fr/a-lhonneur/lemdr-et-la-prazosine-
                                                                                  pour-guerir-de-letat-de-stress-post-traumatique-2/

                                                                                                      35
Les conséquences des évolutions Hardware sur les applications

  L’efficacité énergétique est devenue cruciale
  La fréquence des processeurs n’augmente plus voire diminue
  Le nombre de cœurs par nœud augmente
  Le nombre d’opérations par cycle augmente : vectorisation
  (vector width SSE 128 -> AVX 512) et FMA (Fused Multiply Add)
  Généralisation des accélérateurs (GPU, Many-core, …)

⇒ Effort important pour améliorer les performances parallèles des codes et/ou pour
  franchir le cap du massivement parallèle.

                                                                                     36
Comment faire évoluer les applications pour ces nouvelles architectures?

    Quelques pistes :
         ⇒ Programmation hybride (MPI+X)
         ⇒ Utilisation hétérogène d’un nœud de calcul (Shared time versus space time)
         ⇒ Plus de souplesse dans l’exécution des jobs parallèles
         ⇒ Profiter de la vectorisation (intensité arithmétique)
         ⇒ Calculer en simple précision?
         ⇒ Espérer que d’autres fassent le travail à notre place en adaptant les langages et les
           bibliothèques scientifiques aux architectures hétérogènes…
         ⇒ Utiliser des méthodes adaptées à l’exascale
         ⇒ Optimiser la chaîne de calcul dans son intégralité (solveur, pré- et post-traitement)

                                                                                        37
Shared time versus space time
 L’augmentation du nombre de cœurs permet de mélanger le parallélisme de données
 avec le parallélisme de tâches.
 Exemple : 16/18 cores d’un nœud sont utilisés pour le parallélisme de données (MPI,
 MPI+OpenMP, …). Ce « dépeuplement » permet de moins saturer les accès mémoire.
 ⇒ des cœurs restants font de l’analyse in situ (statistiques, visu in situ)
 ⇒ un cœur peut traiter des communications inter-nœuds
 ⇒…

https://sc17.supercomputing.org/presentation
/?id=post149&sess=sess293

                                                                                       38
Vers des jobs de plus en plus économes

L’efficacité énergétique est devenue cruciale et peut conduire à des codes
nécessitant plus de souplesse pour une meilleure utilisation des supercalculateurs

Exemple :
     - soumission d’un job avec une fourchette de besoin plutôt qu’un nombre
       de cœurs fixé (ex. entre 500 et 1000 cœurs). Dès que les ressources sont
       disponibles, le job se lance. Meilleure utilisation du supercalculateur.
     - Vers une dotation sur les centres de calcul en Watt.heure plutôt qu’en
       heures.CPU pour favoriser l’efficacité énergétique? L’utilisateur attend son
       résultat 5% de temps en plus pour un gain de 20% d’énergie grâce à une
       baisse de la fréquence du CPU par exemple.

                                                                                     39
Comment profiter de la vectorisation?
        Code « memory bound » ou « CPU bound »? Le premier réflexe est de « profiler » son code pour en connaître
        les caractéristiques. Intel propose un nouvel outil gratuit et très peu intrusif pour un premier diagnostic.
        https://software.intel.com/en-us/performance-snapshot

https://software.intel.com/sites/products
/snapshots/application-snapshot/

                                                                                                 40
Intensité arithmétique (1)
Ia = nombre d’opérations / quantité de mémoire échangée
Gflops/sec atteignables = min(performance « peak », bande passante x Ia )
Si le programme est limité par la bande passante mémoire (memory bounded), il a une
faible intensité arithmétique => utilisation non optimale du CPU => la vectorisation
améliore peu ou pas le temps de restitution.
Essayer d’augmenter le nombre d’opérations effectuées pour chaque octet déplacé
depuis/vers la mémoire. L’augmentation de l’intensité arithmétique a deux effets
majeurs :
- une vitesse de traitement plus élevée
- une meilleure efficacité de la vectorisation
                                                                                    FMA code
                                                                              vectorized code

Roofline model :
                                                               optimisation        no AVX, no vectorisation

                                                        memory bounded            CPU bounded

 https://fr.slideshare.net/sjf_dhi/m-britton-fmafinal
                                                                                                41
Intensité arithmétique (2)
integer, parameter :: n=655360000
real(kind=8), dimension(n) :: a_vec, b_vec, c_vec, d_vec, e_vec

do i=1,n
                 a_vec(i)=b_vec(i)*c_vec(i)+d_vec(i)*e_vec(i)                                 boucle 1
enddo
_______________________________________________________
do i=1,n
         a_vec(i)=b_vec(i)*c_vec(i) &
                  +b_vec(i)*d_vec(i) &
                  +b_vec(i)*e_vec(i) &
                  +c_vec(i)*d_vec(i) &                                                        boucle 2
                  +c_vec(i)*e_vec(i) &
                  +d_vec(i)*e_vec(i)
enddo

                                                                -no-vec        -xAVX
        Boucle 1 (0.075 Flop/Byte)                              1,03 GFlop/s   1,48 GFlop/s
        Boucle 2 (0.275 Flop/Byte)                              2,58 GFlop/s   4,15 GFlop/s
Ref : https://www.calmip.univ-toulouse.fr/spip.php?article552

                                                                                                         42
Calculer en simple précision?
Pour réduire le temps de calcul, l’utilisation mémoire et donc la consommation énergétique, il est
possible d’utiliser la précision mixte. Les variables sont calculées en double précision uniquement
quand c’est nécessaire pour la validité des résultats. La « half precision » apporte des gains
conséquents pour le calcul sur carte graphique.
Influence de la précision flottante sur une carte graphique Volta :

                                                                                                 SC17 : Nvidia

                                                                           Tensor Core 4x4x4 matrix
                                                                           multiply and accumulate
                                                    http://www.electronicdesign.com/automotive/nvidia-s-volta-architecture-gives-drive-px-pegasus-its-smarts

                                                                                                                               43
Nouveaux « Middleware » pour simplifier HPC

=> Emergence frameworks (High-Level Frameworks HLFs) et de nouveaux langages (PGAS,
Domain-specific languages DSLs) utilisables par des scientifiques non spécialistes en HPC.
L’objectif est de réduire la complexité d’écriture de codes parallèles exécutables sur des
architectures hétérogènes. La multiplication du nombre de cœurs nécessite des applications
tolérantes aux erreurs.

- Partionned Global Address Space (PGAS) pour diminuer la complexité d’écriture
  des codes distribués. Plusieurs essais plus ou moins concluants : Unified Parallel
  C, High Performance Fortran, Chapel, coarray fortran (-> norme 2008)
- Projet JuML (Juelich Machine Learning Library) : permettre aux non-spécialistes
  d’utiliser le HPC avec des APIs qui s’adaptent à la machine cible (CPU, GPU, …)
- Méta-programmation pour s’affranchir de la couche matérielle : exemple du
  langage JULIA (MIT) construit à partir de LLVM Compiler Infrastructure et
  compilé « Just in Time » pour être performant tout en gardant un typage
  dynamique

                                                                                         44
Performances de Julia comparée aux langages « historiques »

https://eklausmeier.wordpress.com/2016/04/05/performance-comparison-c-vs-lua-vs-luajit-vs-java/

                                                                                                  45
… mais le Fortran n’est pas mort!

Pourquoi du Fortran en 2018?
- Héritage, premier langage développé pour le calcul scientifique, c’est toujours le langage
  de référence pour des gros codes Météo/Climat : NEMO, 4Dvar (NASA), Unified Model,
  Meso-NH, …
- facile à utiliser pour des non-informaticiens
- performant
- nouvelles fonctionnalités
    • pour le calcul parallèle (coarrays)
    • orienté objets
    • meilleure interopérabilité avec le C

Inconvénients
    - peu attractif pour les informaticiens
    - des compilateurs qui tardent à intégrer les nouvelles normes (le fortran 2003 n’est
      pas encore entièrement pris en charge par les compilateurs)

                                                                                    46
Des méthodes adaptées à l’exascale
Dans le domaine de la mécanique des fluides numériques, deux méthodes sont ciblées
pour des projets « exascale » :
- Lattice-Boltzmann Method (LBM)
- Discrete Element Method (DEM)

Exascale Computing Project (ECP - US Department Of Energy) :
=> MFIX-Exa 10-year target : simulate several minutes of the operation of a multiphase reactor,
containing around a hundred billion particles, in less than twenty-four hours of wall time.
                                                                                              47
HPC pour le pré et le post-traitement

                      https://www.siam.org/news/news.php?id=1598

Ne pas oublier les phases de pré- et post-traitement qui sont souvent
coûteuses en temps et pas toujours parallèles.

                                                                        48
https://fr.slideshare.net/sjf_dhi/m-britton-fmafinal

                                                              Parallélisation hybride
                                                                        MPI3
                                                                                          Romain

https://www.scienceabc.com/humans/the-human-brain-vs-supercomputers-which-one-wins.html

                                                                                                                 49
Programmation hybride
Hier
Calcul scientifique massif à faire => Plusieurs directions/méthodes possibles
OpenMP : Mémoire partagée entre différents processus légers (threads) : parallélisation boucles
MPI : Mémoire distribuée par processus : découpage données
CUDA : Calcul sur carte graphique                                  Exemple MPI/OpenMP
…

Demain et un peu aujourd’hui
Association de plusieurs méthodes
dans des programmes hybrides.
MPI + OpenMP
MPI + CUDA (GPU)
MPI + OpenMP + CUDA (GPU)
MPI mémoire distribuée/partagée
...
               Formation IDRIS : Programmation hybride MPI-OpenMP
               http://www.idris.fr/media/formations/hybride/hybride_v3-0_fr.pdf

                                                                                         50
Programmation hybride
Exemple programmation MPI mémoire distribuée/partagée pour le partage de la
géométrie dans le code de calcul JADIM (IMFT)
Uniquement en MPI/MPI
Fenêtre mémoire d’accès distant : MPI 3.0

                                                                              51
Programmation hybride
Exemple programmation MPI mémoire distribuée/partagée pour le partage de la
géométrie dans le code de calcul JADIM

Création et allocation d’une fenêtre d’accès mémoire par le processus 0 et requête
des autres processus du nœud leur permettant via un pointeur d’accéder
directement à cet espace mémoire.

Mémoire en partie distribuée entre tous les processus et en partie partagée au sein
des processus d’un nœud de calcul => Programmation hybride

Ouverture de fenêtre d’Accès Mémoire
Distant (Remote Memory Access)
possible depuis la norme MPI 3.0.

                                                                                      52
Programmation hybride
Exemple programmation MPI mémoire distribuée/partagée pour le
partage de la géométrie dans le code de calcul JADIM

Avantage
Très permissif
Permet en théorie énormément de configurations mémoire possibles.
Facilité de mise en place dans un premier temps. Permet rapidement de
paralléliser des données de calculs.

Inconvénient
Très permissif
Peut générer des erreurs de calculs
dues à des ordres dans l’écriture/lecture
très difficiles à détecter.

                                                                        53
Programmation hybride
                            Exemple programmation MPI mémoire distribuée/partagée pour le
                            partage de la géométrie dans le code de calcul JADIM

                            Similarités avec la programmation hybride MPI/OpenMP

                                         MPI/OpenMP                                   MPI Distribué/Partagé

http://www.idris.fr/media/formations/hybride/hybride_v3-0_fr.pdf

                                                                                                              54
http://on-demand.gputechconf.com/gtc/2014/presentations/S4672-ansys-fluent-amgx-linear-solver.pdf
                                                                  http://on-demand.gputechconf.com/supercomputing/2013/presentation/SC3137-NVIDIA-AmgX-Performance-Acceleration-Large-Scale-Iterative-Methods.pdf

                                                                                                                                                                                                    55
Conclusion

http://bouquivore.fr/infos-presse/bouquinfos/les-billets/ouf/

                                                                             56
Synthèse / Notes en vrac
  Part très importante de l’Intelligence Artificielle : gestion de flux (gaz, EDF, homme,
  voiture, …), traitement d’images, reconnaissance vocale, détection séismes, météo, …
  HPC proprement dit = petite partie du SuperComputing
  De plus en plus de cœurs par puce/chipset/processeur : Multicore => Manycore
  Un Gros Travail à faire par les développeurs pour tirer partie de ces évolutions hardware !!!

⇒ Méthodologie de développement (Scrum / Kanban, Continuous integrating for scientifics,
  github, doxygen, Sphinx)
⇒ Cycle de vie logiciel
⇒ Algorithmique (intensité et extensibilité)
⇒ Parallélisation hybride, vectorisation, réutilisation mémoire, …
⇒ Tolérance aux pannes / erreurs
⇒ Fortran encore et toujours …
Journal of Computational Physics : vers une meilleure acceptation des papiers si le code
source est fourni …

                                                                                           57
Synthèse / Notes en vrac
     Solutions différentes de visu in situ :
     pas de solution parfaite universelle…
     M-VTK.org et VTK-m => bibliothèques visu in situ
     pour CPU et GPU/CUDA
     Houdini/Ytini en astrophysique
     ParaView/Blender…

                                                         http://www.personal.psu.edu/dab143/OFW6/Training/cragun_slides.pdf
https://vimeo.com/230309447

                                                                                            58
Journée Thématique calcul intensif, intelligence artificielle et données en
                   masse : état de l’art, enjeux et retours d’expérience du HPC

Lundi 26 mars - Amphithéâtre Nougaro - IMFT
Ces conférences sont ouvertes à tous, dans la
limite des places disponibles
Pour des raisons logistiques, merci de vous inscrire

- Panorama et perspectives sur le HPC
  Denis Veynante, directeur de la mission
  calcul-données du CNRS
- Centres de calcul et des constructeurs de
  super-calculateurs
  Jean-Philippe Proux (GENCI)
  Damien Declat (Atos)
- Retour d’expérience scientifique et technique
  Matthieu Chavent (CNRS – IPBS)
  Vincent Moureau (CNRS - CORIA)
  Gabriel Staffelbach (CERFACS)

                                                                                           59
Vous pouvez aussi lire