Quantification d incertitude et Tendances en HPC

Documents pareils
Initiation au HPC - Généralités

Architecture des ordinateurs

Rapport 2014 et demande pour Portage de Méso-NH sur Machines Massivement Parallèles du GENCI Projet 2015 : GENCI GEN1605 & CALMIP-P0121

Infrastructures Parallèles de Calcul

Contrôle Non Destructif : Implantation d'algorithmes sur GPU et multi-coeurs. Gilles Rougeron CEA/LIST Département Imagerie Simulation et Contrôle

Eléments d architecture des machines parallèles et distribuées

Les environnements de calcul distribué

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Architecture des calculateurs

Systèmes et traitement parallèles

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Outil d aide au choix Serveurs Lot 4 Marché Groupement de Recherche

Gestion de clusters de calcul avec Rocks

Segmentation d'images à l'aide d'agents sociaux : applications GPU

Architecture des Ordinateurs. Partie II:

Rapport de stage Master 2

Contribution à la conception à base de composants logiciels d applications scientifiques parallèles.

UNIVERSITÉ D ORLÉANS ÉCOLE DOCTORALE MIPTIS MATHÉMATIQUES, INFORMATIQUE, PHYSIQUE THÉORIQUE ET INGÉNIEURIE DES SYSTÈMES. THÈSE présentée par :

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales

Evolution des technologies et émergence du cloud computing Drissa HOUATRA, Orange Labs Issy

VMWare Infrastructure 3

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

<Insert Picture Here> Solaris pour la base de donnés Oracle

Communications performantes par passage de message entre machines virtuelles co-hébergées

Rapport d activité. Mathieu Souchaud Juin 2007

Parallélisme et Répartition

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Tout savoir sur le matériel informatique

HPC by OVH.COM. Le bon calcul pour l innovation OVH.COM

DG-ADAJ: Une plateforme Desktop Grid

Limitations of the Playstation 3 for High Performance Cluster Computing

Retour d expérience, portage de code Promes dans le cadre de l appel à projets CAPS-GENCI

T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet 5

Technologie SDS (Software-Defined Storage) de DataCore

Éléments d'architecture des ordinateurs

Infrastructure de calcul du CRRI

en version SAN ou NAS

Rencontre sur la thématique du Calcul Haute Performance - 13 juin Better Match, Faster Innovation

Tests de SlipStream sur les plateformes et : vers la. Vers la fédération du Cloud computing

Journée Utiliateurs Nouvelles du Pôle ID (Informatique) Pierre Neyron, LIG/CNRS

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Ecole Mohammadia d Ingénieurs Systèmes Répartis Pr. Slimane Bah, ing. PhD G. Informatique Semaine 24

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

LA VIRTUALISATION. Etude de la virtualisation, ses concepts et ses apports dans les infrastructures informatiques. 18/01/2010.

Comment optimiser l utilisation des ressources Cloud et de virtualisation, aujourd hui et demain?

Introduction aux systèmes temps réel. Iulian Ober IRIT

Happy birthday ZSet High performance computing dans ZSet

CORBA haute performance

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU

Chapitre 1. Infrastructures distribuées : cluster, grilles et cloud. Grid and Cloud Computing

Sanity Check. bgcolor mgcolor fgcolor

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Les participants repartiront de cette formation en ayant une vision claire de la stratégie et de l éventuelle mise en œuvre d un Big Data.

vbladecenter S! tout-en-un en version SAN ou NAS

Éléments de programmation et introduction à Java

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

4.2 Unités d enseignement du M1

Systèmes Répartis. Pr. Slimane Bah, ing. PhD. Ecole Mohammadia d Ingénieurs. G. Informatique. Semaine Slimane.bah@emi.ac.ma

Module : Virtualisation à l aide du rôle Hyper-V

Présentation d HyperV

CH.3 SYSTÈMES D'EXPLOITATION

Équilibrage Dynamique de Charge pour des Calculs Parallèles sur Cluster Linux - Une Évaluation de l Environnement AMPI.

Métriques de performance pour les algorithmes et programmes parallèles

3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. Stephane.Vialle@supelec.fr

Résolvez vos problèmes d énergie dédiée à l informatique

Organiser vos données - Big Data. Patrick Millart Senior Sales Consultant

Programmation C. Apprendre à développer des programmes simples dans le langage C

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

Séminaire RGE REIMS 17 février 2011

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E GHz

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Contributions à l expérimentation sur les systèmes distribués de grande taille

Lʼavenir des grilles Des grilles aux Clouds avec quelques «petits problèmes» de recherche. F. Desprez INRIA

Séminaire Partenaires Esri France 6 et 7 juin 2012 Paris. ArcGIS et le Cloud. Gaëtan LAVENU

Le projet Gaïa, le Big Data au service du traitement de données satellitaires CRIP - 16/10/2013 Pierre-Marie Brunet

IBM CloudBurst. Créer rapidement et gérer un environnement de Cloud privé

VMware vsphere 5 Préparation à la certification VMware Certified Professional 5 Data Center Virtualization (VCP5-DCV) - Examen VCP510

IFT3245. Simulation et modèles

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement

Version de novembre 2012, valable jusqu en avril 2013

Architecture matérielle des systèmes informatiques

libérez votre innovation avec l extreme computing CEA/Philippe Stroppa

Pourquoi OneSolutions a choisi SyselCloud

Les mésocentres HPC àportée de clic des utilisateurs industriels

Système de stockage IBM XIV Storage System Description technique

Bonjour. Yohan PARENT, Cyprien FORTINA, Maxime LEMAUX, Hyacinthe CARTIAUX

Programmation parallèle et distribuée

AXES DE RECHERCHE - DOMAINE D'INTERET MAJEUR LOGICIELS ET SYSTEMES COMPLEXES

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1

Catalogue des stages Ercom 2013

Sans trop entrer dans les détails, la démarche IO Model consiste à : Pour cela, Microsoft découpe la maîtrise de l infrastructure en quatre niveaux :

Exécution des instructions machine

ADMINISTRATION EXADATA

Projet IGGI. Infrastructure pour Grappe, Grille et Intranet. Fabrice Dupros. CASCIMODOT - Novembre Systèmes et Technologies de l Information

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Transcription:

Quantification d incertitude et Tendances en HPC Laurence Viry E cole de Physique des Houches 7 Mai 2014 Laurence Viry Tendances en HPC 7 Mai 2014 1 / 47

Contents 1 Mode lisation, simulation et quantification d incertitudes 2 Quelques strate gies 3 Tendance en HPC E volution Hardware Implication software Grille de calcul Cloud Paralle lisme avec R Quelques outils Laurence Viry Tendances en HPC 7 Mai 2014 2 / 47

Sommaire 1 Modélisation, simulation et quantification d incertitudes 2 Quelques stratégies 3 Tendance en HPC Évolution Hardware Implication software Grille de calcul Cloud Parallélisme avec R Quelques outils Laurence Viry Tendances en HPC 7 Mai 2014 3 / 47

Applications/Modélisation/Simulation Numérique 1 Une application est fréquemment décrite par un modèle mathématique, souvent un système d équations aux dérivées partielles linéaires ou non linéaires, couplées. 2 Rôle prédictif des applications de simulations numériques. 3 Écart entre l application (observations) et la simulation numérique issue de la modélisation. 4 La modélisation et la simulation numérique qui en découle introduisent des sources d erreurs: Erreur sur le modèle, erreur sur les entrées/sorties et/ou variabilité naturelle de ces entrées, erreurs sur les conditions initiales, forçages, erreur d approximation numérique du modèle, erreur informatique,... 5 Chaque source d erreur devra être intégrée dans le processus de prédiction. Laurence Viry Tendances en HPC 7 Mai 2014 4 / 47

Propagation d incertitude à travers du modèle Dans les méthodes non-déterministes, un nombre de calculs du modèle doit être effectué pour recouvrir l espace des entrées vers l espace des sorties du modèle. Le nombre de calculs nécessaire dépend: de la non-linéarité des équations aux dérivées partielles, de la structure de dépendance entre les quantités incertaines, de la nature des incertitudes (aléatoire, épistémique) des méthodes numériques utilisées.... Laurence Viry Tendances en HPC 7 Mai 2014 5 / 47

Applications/Modélisation/Simulation Numérique La connaissance globale des incertitudes des réponses d un modèle peut nécessiter le développement et la mise en oeuvre: d une analyse de sensibilité globale permettant d identifier les variables d entrées les plus pertinentes, de techniques de propagation d incertitudes. de technique de vérification et validation de code. L évolution des ressources de calcul, de stockage et des logiciels disponibles : induit une plus grande complexité des modèles et de leur implémentation numérique, permet d envisager la mise en oeuvre de méthodes considérées jusqu à récemment comme trop coûteuses, L évolution des architectures hardware des machines de calcul impose une adaptation des algorithmes utilisés répondant à des critères d efficacité en terme de temps de calcul, de gestion de la mémoire et des I/O et de paradigme de programmation. Laurence Viry Tendances en HPC 7 Mai 2014 6 / 47

Sommaire 1 Modélisation, simulation et quantification d incertitudes 2 Quelques stratégies 3 Tendance en HPC Évolution Hardware Implication software Grille de calcul Cloud Parallélisme avec R Quelques outils Laurence Viry Tendances en HPC 7 Mai 2014 8 / 47

Modèle Nous considérons un modèle (code numérique) représenté de manière générique par une fonction f définie sur un domaine de R p et à valeurs dans R m : Y = f (X, θ) avec X R p les entrées, θ les paramètres et Y R m les sorties du modèle. Quantités d intérêt estimées en général par leur analogues empiriques. ϱ(x, θ) = E(f (X, θ)) moyenne de Y Var(f (X, θ)) variance de Y F Y (y) = P(Y < y) fonction de répartition de Y q s (Y ) quantile de Y E(Y /X s ) moyenne conditionnelle de Y Var(Y /x s ) variance conditionnelle de Y S i i 1,..., p indice de sensibilité de premier ordre S i1,i 2,...,i k indice de sensibilité d ordre supérieur... Laurence Viry Tendances en HPC 7 Mai 2014 9 / 47

Méthodologies Caractéristiques de calcul: Temps d une évaluation du modèle. Volume du stockage (échantillon, I/O du modèle, quantités d intérêts). Communications: évaluation du modèle, distribution des données et des résultats. Environnement software, gestion de la complexité des processus.... Les processus utilisés: (P 1 ) Paramétrisation, assigner des lois de probabilité aux variables du modèle étape de criblage éventuel. (P 2 ) Échantillonage ou planification à partir des lois des entrées. (P 3 ) Répartition des données en entrée du modèle et/ou du métamodèle. Évaluation du modèle (P 7 ) et/ou du métamodèle (P 8 ) : calcul séquentiel ou parallèle. (P 4 ) Récupération des résultats. (P 5 ) Estimation des quantités d intérêt. (P 6 ) Construction d un métamodèle (dans certains cas). Laurence... Viry Tendances en HPC 7 Mai 2014 10 / 47

Analyse de sensibilité: Estimations à l aide du modèle Échantillon de taille n (X(w 1 ),..., X(w n )) Estimations des quantités d intérêts ˆϱ n (f (X, θ)) ϱ(f (X, θ)) Evaluation Modèle (T7,S7,C7) Paramétrisation (T1,S1,C1) Échantillonnage Planification (T2,S2,C2) Distribution (T3,S3,C3)... Récupération (T4,S4,C4) Pi=(Ti,Si,Ci) Ti: temps de calcul de la tâche i Si: volume de stockage de la tâche i Ci: volume des communications de la tâche i Evaluation Modèle (T7,S7,C7) Estimations (T5,S5,C5) Laurence Viry Tendances en HPC 7 Mai 2014 11 / 47

Analyse : Estimations à l aide du modèle Temps de calcul global (T): T = T 1 + T 2 + T 3 + n T 7 + T 4 + T 5 n évaluations du code Dépend de T 7, de la taille de l échantillon (n), du volume des I/O. Stockage (S): S 1, S 2, S 5 : espace de stockage peu volumineux. S 7 : dépend du volume des I/O du code. S 4 : dépend du volume des quantités d intérêts. Volume d échange des données (C), concerne les tâches P 3, P 4, P 7. C 3 : distribution I/O et échantillon des paramètres: C 3 = taille(x) n C 4 : distribution des sorties du code et des quantités d intérêt pour l estimation des indices: C 4 = taille(y ) n C 7 : dépend du code (parallèle). Solutions HPC suivant la complexité de l application et des paramètres à estimer: Parallélisation du code. Distributions des calculs sur un gros cluster ou sur une grille de calcul. Utilisation d une grille de stockage. Parallélisation des estimations(moyenne, variance, indices de sensibilité,...) Laurence Viry Tendances en HPC 7 Mai 2014 12 / 47

Échantillon de taille m pour estimer le métamodèle Échantillon de taille (n) pour estimer les quantité d intérêts: (n >> m) Estimation à l'aide d'un métamodèle Evaluation Modèle (T7,S7,C7) Paramétrisation (T1,S1,C1) Planification (T2,S2,C2) Distribution (T3,S3,C3)... Récupération (T4,S4,C4) Evaluation Métamodèle (T8,S8,C8) Evaluation Modèle (T7,S7,C7) Récupération (T4',S4',C4')... Distribution (T3',S3',C3') Planification (T2',S2',C2') Construction Métamodèle (T6,S6,C6) Evaluation Métamodèle (T8,S8,C8) Estimations (T5,S5,C5) échantillon de taille m pour construire le métamodèle échantillon de taille n pour estimer les quantités d'intérêts m << n Laurence Viry Tendances en HPC 7 Mai 2014 13 / 47

Analyse : Estimations à l aide du modèle Temps de calcul global (T): T = T 1 + T 2 + T 3 + n T 7 + T 4 + T 6 + T 2 + T 3 + m T 8 + T 4 + T 5 Dépend de T 7 et de la taille de l échantillon (n). Stockage (S): S 1, S 2, S 2, S 5 : espace de stockage peu volumineux. S 7 : dépend du volume des I/O du code. S4, S4 : volume des quantités d intérêts. Volume d échange des données (C), concerne les tâches P 3, P 4, P 7. C 3 : distribution de l échantillon des paramètres: C 3 = taille(x) n C 4 : distribution des résultats du code pour l estimation des paramètres: C 4 = taille(y ) n C 7 : dépend du code. Laurence Viry Tendances en HPC 7 Mai 2014 14 / 47

Sommaire 1 Modélisation, simulation et quantification d incertitudes 2 Quelques stratégies 3 Tendance en HPC Évolution Hardware Implication software Grille de calcul Cloud Parallélisme avec R Quelques outils Laurence Viry Tendances en HPC 7 Mai 2014 15 / 47

Pourquoi le calcul parallèle? Qu est ce que le calcul parallèle? Plusieurs calculs exécutés simultanémant sur une ou plusieurs unités de calcul. Quand? Pour exploiter le parallélisme intrinsèque aux processeurs/ calculateurs et aux applications. Quand les limites des ressources nécessaires, des performances et/ou de la taille des problèmes traités sont atteintes sur un seul processeur. Comment? Par décomposition: des données pour traiter un plus gros volume de données ou traiter par une même tâche des données différentes: data parallelism de tâches indépendantes: task parallelism Laurence Viry Tendances en HPC 7 Mai 2014 16 / 47

Contexte HPC: Super calculateurs, Clusters, Grille, Cloud Ressources de calcul Station de travail Clusters Homogène: noeuds de plusieurs CPU multi-coeurs avec ou sans GPU ou accélérateurs. Super calculateur: IBM Blue Gene (4 096 nœuds de 16 cœurs à 1,6 GHz) - 836 TFlop/s de puissance crêteà l IDRIS),... Grille de calcul et de stockage: GRID500, grille locale,... Cloud Hiérarchie de réseaux WAN: Internet, Private WAN,... LAN: Ethernet SAN: InfiniBand,... Laurence Viry Tendances en HPC 7 Mai 2014 17 / 47

Motivations en simulation numérique La vitesse des processeurs a cessé d augmenter (x2 tous les 18mois). Parallélisme naturel dans la plupart des applications. Possibilité de traiter des gros volumes de données. Nécessité d exécuter un grand nombre de runs. Meilleure gestion des accès mémoire. La vitesse des réseaux augmentant, c est la possibilité d utiliser des ressources réparties sur un site ou sur plusieurs sites... En majorité: Codes parallèles Plusieurs codes indépendants Un seul code parallèle intensif Laurence Viry Tendances en HPC 7 Mai 2014 18 / 47

Unité de calcul: CPU versus GPU Composition d un noeud de calcul (Avec des proportions différentes) Une unité de contrôle Des unités d arithmétique et logique (ALU) Mémoire(DRAM, Caches,... ) Un grand nombre de coeurs capables de traiter rapidement des calculs simples sur des grandes quantités de données (GPU) Les processeurs classiques (CPU) sont moins rapides mais savent résoudre des problèmes plus compliqués Une combinaison de ces deux types de processeurs (accélérateurs) Laurence Viry Tendances en HPC 7 Mai 2014 19 / 47

Loi de Moore - Top500 Le nombre de transistors continue à augmenter par unité de surface. La puissance consommée et dissipée est le facteur limitant Puissance frequence 3 fréquence limitée Plus de performance avec moins de puissance Adaptation software? Laurence Viry Tendances en HPC 7 Mai 2014 20 / 47

Implication software Le coût en énergie de la fréquence Nb Cores Fréquence(Hz) Flops/s W Flops/s/W Superscalar 1 1.5X 1.5X 3.3X 0.45X Multicore 2 0.75X 1.5X 0.8X 1.88X Conséquences sur les applications Exécuter une application à un temps t 0 sur un calculateur Pas de modifications fondamentales du code entre t 1 et t 0 Exécuter l application au temps t 1 sur un nouveau calculateur quelles sont les performances? Laurence Viry Tendances en HPC 7 Mai 2014 21 / 47

Évolution des performances en HPC Période de fréquence croissante (< 2003) Peu de parallélisme dans les architectures La fréquence augmente Nb Flops/s augmente Les codes sont plus rapides L implémentation des codes n a pas besoin d être modifiée pour exploiter les nouvelles architectures Période Multi-core (> 2003) Plus de parallélisme dans l architecture (core,mémoire, stride des disque,... ) La fréquence décroit Les codes sont plus lents Les codes doivent être modifiées pour exploiter le parallélisme de ces nouvelles architectures Laurence Viry Tendances en HPC 7 Mai 2014 22 / 47

Laurence Viry Tendances en HPC 7 Mai 2014 23 / 47

Implications Multi-core Quelques définitions CPU (Central Processing Unit): puce ou processeur qui effectue les opérations de base du système. socket: le socket fournit au CPU les connections au bus système et tous les devices attachés à ce bus (mémoire, adaptateur réseau, I/O,... ). Core: unité de calcul contenu dans un CPU, ses propres registres et cache L1. Ressources partagées caches: les cores d un CPU peuvent se partager les caches L2 ou L3 socket: Les cores d un même CPU se partagent le même socket du CPU Ressources partagées Potentiel de conflits d accès aux ressources plus important Laurence Viry Tendances en HPC 7 Mai 2014 24 / 47

Classification des architectures parallèles Classification de Flynn basée sur le type d organisation du flux de données et du flux d instructions. Parallélisme d instructions Parallélisme de données { } { } S S I D M M SI Single Instruction MI Multiple Instruction SD Single Data MD Multiple Data SISD Single Instruction, Single Data SIMD Single Instruction, Multiple Data MISD Multiple instructions, Single Data MIMD Multiple Instructions, Multiple Data MIMD: architecture parallèle la plus utilisée Laurence Viry Tendances en HPC 7 Mai 2014 25 / 47

Mémoire partagée/mémoire distribuée Système à mémoire distribuée Un espace mémoire est associé à chaque processeur (CPU/noeud) L accès à la mémoire du processeur voisin se fait par échange de messages à travers le réseau entre les processeurs. Les algorithmes utilisés devront minimiser les communications. Système à mémoire partagée Un espace global visible par tous les processeurs (CPU/noeud) Les processeurs auront leur propre mémoire locale (cache,...) dans laquelle sera copié une partie de la mémoire globale. La cohérence entre ces mémoires locales devra être gérée par le hardware, le software et parfois l utilisateur. Laurence Viry Tendances en HPC 7 Mai 2014 26 / 47

Chaque processeur (noeud SMP) a sa propre mémoire. Les processus s exécutent indépendamment Ils communiquent entre eux par échange de message MPI. Overhead dû aux communications Réseau performant La mémoire globale est commune à tous les processeurs. Plus facile à utiliser (directives OpenMP) cohérence de cache. Performance de la bande passante mémoire. Défaut de scalabilité des accès mémoire. Problème de False Sharing ou de Race Dectection Facile à programmer - Difficile à déboguer Laurence Viry Tendances en HPC 7 Mai 2014 27 / 47

Plus rapide que la loi de Moore ( double tous les 14 mois) Le Top1 sort du Top500 en 8 ans La consommation électrique, l encombrement et le refroidissement sont devenu des freins à l extension des systèmes. Les architectures Hybrides (CPU/GPU) apparaissent. Laurence Viry Tendances en HPC 7 Mai 2014 28 / 47

Architectures Hybrides GPGPU sur les calculateurs Les architectures traditionnelles ont atteint leurs limites Plus de cores/noeud, plus de mémoire mais accès pas plus rapide. Actuellement, 3 sur 5 gros calculateurs sont des machines hybrides Plus de parallélisme dans le Hardware Adaptation des codes pour obtenir de la performance Les codes doivent être conçus différemment Les codes MPI ne passent pas au massivement parallèle. les performances augmentent en améliorant le parallélisme dans le code. Les performances augmentent en ajoutant des niveaux de parallélisme (OpenMP, MPI, GPU,... ) Laurence Viry Tendances en HPC 7 Mai 2014 29 / 47

Et plus de performances si affinités L apport de toujours plus de parallélisme dans les calculateurs pose le problème de la gestion des affinités. Les performances en dépendent Principe de localité et mémoire cache optimisation de l accès aux données. Caches et affinité entre tâches et données: le déplacement d une tâche sur un autre coeur. Partage de données entre tâches: accès à la mémoire par différent coeurs. Machine NUMA et affinités pour la mémoire: accès plus rapide aux données proche du processeur qui effectue l accès. Nos programmes peuvent s exécuter sans tenir compte de toutes ces contraintes, mais ils iront moins vite... Laurence Viry Tendances en HPC 7 Mai 2014 30 / 47

Et bien d autres affinités Périphériques qui peuvent être plus proches de certains cœurs que d autres (GPU,carte réseau). Calculateurs hétérogènes ou hybrides contenant différents types de cœurs de calcul: Combiner ces différents types de processeurs permet d atteindre des puissances de calcul gigantesques si on arrive à déterminer les affinités entre les # coeurs et les # tâches. Laurence Viry Tendances en HPC 7 Mai 2014 31 / 47

Architecture hautement parallèle: Accélérateurs Intel Xeon/Phi 60+ cores 512 Bit SIMD Clock Speed: 1000MHz Nombre de transistors: 3 B (22nm) Consommation énergétique: 250W Performance Max (DP): 1TF/s Bande passante Mémoire: 250GB/s (GDDR5) NB Threads: 100-200 Language: Fortran, C/C++ + OpenMP+vectorisation NVIDIA Kepler (GK110) 15 unités SMX avec chacune 192 SP cores 2880 SP cores au total Vitesse de l horloge: 700MHz Nombre de transistors: 7.1 B (28nm) Consommation énergétique: 250W Performance Max (DP): 1TF/s Bande passante Mémoire: 250GB/s (GDDR5) NB Threads: 10 000+ Language: CUDA, OpenCL, OpenACC Laurence Viry Tendances en HPC 7 Mai 2014 32 / 47

Évolution rapide du HPC Hardware Toujours plus de parallélisme (multi-core, mémoire, stockage,... ). Architectures hétérogènes. Les accès mémoire sont le principal frein aux performances. Software Parallélisme multi niveaux. Optimisation: gestion des affinités,... Gestion de la précision, de la stabilité. Maintenance et robustesse? Point de vue utilisateur Nouveaux types d architectures (GPU, MIC, BG.Q,...) Nouveaux paradigmes de programmation (MPI, OPENMP, Hybrid, OpenCL,PGAS,... ). Un code unique pour CPU et Accélérateurs? Les gros codes de calcul doivent suivre. Quelle pérennité? Laurence Viry Tendances en HPC 7 Mai 2014 33 / 47

Efforts d optimisation Compromis entre efforts d optimisation et gain de performance Optimisation rapide: performances modérées... Le Hardware, le compilateur ne réussit pas à exploiter le parallélisme de l architecture. Une meilleure connaissance de l application est nécessaire. Optimisation approfondie: algorithme, implémentation, déploiement, gestion des affinités. La maintenance des efforts n est pa assuré. Génération automatique ou semi-automatique? (quelques propositions: HMPP, OpenACC,... ) De nouveaux paradigmes de programmation exploitant la parallélisme du Hardware sont attendus. Maintenance, portabilité? Laurence Viry Tendances en HPC 7 Mai 2014 34 / 47

Architecture, environnements utilisateurs, bibliothèques et réseau Même run, mêmes sources: différents environnements utilisateurs Étude au cas par cas Les analyses sont système-dépendantes, pas de règles systématiques. Utiliser des bibliothèques optimisées sur le Hardware. Les performances du réseau et du soft qui l utilise est aussi un critère important. Bien connaître son application et les bibliothèques utilisées Laurence Viry Tendances en HPC 7 Mai 2014 35 / 47

Grille de calcul Grille de calcul Ressources informatiques hétérogènes (clusters, supercalculateur, stockage,...) Projet Grid5000 (www.grid5000.fr) Mise en réseau de ces ressources Stockage.... Middleware (NetSolve, DIET,... ): couche réseau + services logiciels Gestion de l hétérogénéité des ressources, allocation des données et des tâches sur les ressources, Fault detection, mécanisme de checkpoint/restart,... récupération et réorganisation des résultats éviter le transfert multiple de données... Grâce aux grilles Les calculs au temps d exécution très longs deviennent possibles en temps raisonnable. Possibilité de lancer un nombre très grand de runs (plusieurs millions) Laurence Viry Tendances en HPC 7 Mai 2014 36 / 47

Cloud Cloud Basé sur la virtualisation Habituellement basé sur des processeurs de faible performance: presque sans contrainte sur le réseau HPC Cloud Fault-tolerance? Noeuds de calcul puissants avec beaucoup de mémoire, Performances du réseau garanties (F E.g., 10 Gbps, low latency) Opérationnel mais pas simple... (panne des infrastructures, noeuds non accessibles,... Coût Quelques tentatives pour mettre un calculateur (Blue Gene) dans le Cloud. Laurence Viry Tendances en HPC 7 Mai 2014 37 / 47

Considérations pour le développement des codes Efficacité des architectures: pour le passage aux architectures successives, il faut tenir compte des compétences et de l investissement humain qu il implique. Survivre aux générations successives des machines ( 5ans) est de plus en plus compliqué. La programmation homogène tire à sa fin: plusieurs niveaux de parallélisme déviennent nécessaires pour exploiter les nouvelles architectures. Bibliothèques: leur choix doit être dicté par leur stabilité, leurs performances et leurs disponibilité sur les systèmes. Organisation des données doit répondre à de nombreuses contraintes répondant aux différents types d affinités. L organisation des compétences scientifiques, numériques et informatiques est un challenge qui doit être compatible avec chaque écosystème. Compromis algorithmiques: le coût des flops est en décroissance alors que celui de l accès et du déplacement de données est en forte croissance.... Laurence Viry Tendances en HPC 7 Mai 2014 38 / 47

Calcul hautes performances avec R Paralléliser un code R est possible mais demande un effort significatif S assurer d une implémentation séquentielle optimale Algorithme adapté Bonnes pratiques de développement sous R Utilisation des packages adaptés aux gros volumes de données Utiliser des outils de profiling (mémoire, temps de calcul) proftools: profiling Output Processing Tools for R profr: An alternative display for profiling informations Quelques méthodes pour résoudre les problèmes d efficacité Vectorisation: fonctions appliquées à des vecteurs apply() fonctions: fonctions qui peuvent être utilisées sur un ensemble de données simultanément. Utiliser les interfaces avec des langages compilés (C,C++,...) = Les solutions suivantes utilisent le parallélisme Laurence Viry Tendances en HPC 7 Mai 2014 39 / 47

Calcul parallèle avec R R est mono-thread Plusieurs packages existent pour les clusters de calcul Basés sur plusieurs couches de communications: MPI, PVM, Socket, NWS Rmpi, nws, snow, sprint, foreach Plus ou moins matures, performants ou faciles à utiliser Sur un système multi-core: multicore, pnmath, fork, romp Intégration du package parallel (multicore, snow) à la version de base de R à partir de la version 2.14.0 R peut aussi être compilé avec une version multi-thread des bibliothèques d algèbre linéaire (BLAS,LAPACK) ce qui permet d exploiter l architecture multicore et peut accélérer les calculs. State of the Art in Parallel Computing with R : http://www.jstatsoft.org/v31/i01/paper HPC Task View on CRAN: http://cran.r-project.org/web/views/highperformancecomputing.html Laurence Viry Tendances en HPC 7 Mai 2014 40 / 47

Le package parallel (version > 2.14) Basée sur les packages multicore et snow Particulièrement adaptée au programme de type SPMD (single program, multiple data) Peut utiliser simultanément : plusieurs coeurs d un même noeud SMP ( multicore) en mémoire partagée ou plusieurs CPUs en mémoire distribuée en utilisant la bibliothèque d échange de messages MPI ( snow) Le support MPI dépend du package Rmpi et d une bibliothèque MPI Inclut un générateur de nombre aléatoire parallèle ( RNG) Laurence Viry Tendances en HPC 7 Mai 2014 41 / 47

mclapply: version parallèle de lapply sur un seul CPU Exemple simple: calcul (1:100)ˆ2 ## La fonction aucarre fait le calcul aucarre <- function(n) {return(nˆ2)} ## Tableau sur lequel s applique le calcul tab <- 1:100 Version séquentielle (lapply) ## Calcul séquentiel res <- lapply(tab,aucarre) Version parallèle (mclapply) ## Nombre de tâches nbtask <- 8 ## Calcul parallèle res <- mclapply(tab,aucarre,mc.cores = nbtask) Utilise plusieurs coeurs sur un seul CPU Utilise des fork, ne fonctionne pas sous Windows mcmapply, mcmap: version parallèle de mapply et Map Laurence Viry Tendances en HPC 7 Mai 2014 42 / 47

parlapply: version parallèle de lapply sur un ou plusieurs noeuds Plusieurs types de communications, PSOCK et MPI PSOCK: peut être utilisé en intéractif Pas adapté pour plusieurs noeuds Portable Utilisé pour les tests MPI Ne peut pas être utilisé en intéractif Nécessite le package Rmpi (MPI) Fonctionne sur plusieurs noeuds Portable là où est installé Rmpi (MPI) Utilisé pour la production. Laurence Viry Tendances en HPC 7 Mai 2014 43 / 47

Exemple: parlapply avec PSOCK library(parallel) ## Nombre de tâches nbtask <- 8 ## Définit le cluster cl <- makecluster(nbtask,type= STOCK ) ## Calcul parallèle (parlapply) res <- parlapply(cl,tab,nbtask) ## Arrêter le cluster stopcluster(cl) print(unlist(res)) Laurence Viry Tendances en HPC 7 Mai 2014 44 / 47

Exemple: parlapply avec MPI Programme: simple mpi.r library(parallel) ## Définit le cluster nbtask <- 8 cl <- makecluster(nbtask,type= MPI ) ## Calcul parallèle (parlapply) res <- parlapply(cl,tab,nbtask) ## Arrêter le cluster stopcluster(cl) mpi.exit() # or mpi.quit(), qui sort de R également Exécuter mpirun -n 1 R --slave -f simple_mpi.r Laurence Viry Tendances en HPC 7 Mai 2014 45 / 47

Démarche pour les calculs Programmer les calculs dans une fonction qui peut être appelée par lapply Faire des tests intéractivement avec lapply en séquentiel, mclapply sur un CPU multi-core et/ou parlapply (SOCK) en parallel sur un noeud. Utiliser mclapply sur un seul noeud ou parlapply (MPI) sur un ou plusieurs noeuds. Avec parlapply, les gros volumes de données peuvent être distribuées à chaque tâche avec clusterexport. Avec parlapply, chaque process devra chargé les packages clusterevalq ou clustercall. Laurence Viry Tendances en HPC 7 Mai 2014 46 / 47

Environnement logiciel Cougar (IFPEN & partners) - reservoir simulation Commercial Fonctionnalités Analyse de sensibilité (basé sur la variance) Surface de réponse paramétrique (polynomiale) Surface de réponse non-paramétrique (Krigeage) Planification... Calcul sur grille OpenTURNS: exposé R Barate Calcul Haute Performance avec OpenTURNS Uranie: exposé F. Gaudier Plate-forme Incertitude Uranie: Fonctionnalités et Applications Laurence Viry Tendances en HPC 7 Mai 2014 47 / 47