Initiation au HPC - Généralités



Documents pareils
Architecture des ordinateurs

Systèmes et traitement parallèles

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

Quantification d incertitude et Tendances en HPC

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

Architecture des calculateurs

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 :

Parallélisme et Répartition

Tout savoir sur le matériel informatique

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

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

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

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Les environnements de calcul distribué

Architecture des Ordinateurs. Partie II:

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

Exécution des instructions machine

Limitations of the Playstation 3 for High Performance Cluster Computing

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

GPA770 Microélectronique appliquée Exercices série A

Infrastructures Parallèles de Calcul

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

Infrastructure de calcul du CRRI

Fonctionnement et performance des processeurs

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

Introduction à la Programmation Parallèle: MPI

CH.3 SYSTÈMES D'EXPLOITATION

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

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

Architecture ordinateur. Organisation mémoire et Entrées/Sorties

Tests de performance du matériel

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

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

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Introduction au calcul parallèle avec OpenCL

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Aspects théoriques et algorithmiques du calcul réparti L agglomération

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

Cours 3 : L'ordinateur

THÈSE. Pour obtenir le grade de. Spécialité : Informatique. Arrêté ministériel : 7 août Présentée et soutenue publiquement par.

Passage à l échelle d applications java distribuées auto-adaptatives

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters

Rapport d activité. Mathieu Souchaud Juin 2007

Potentiels de la technologie FPGA dans la conception des systèmes. Avantages des FPGAs pour la conception de systèmes optimisés

CUOMO PC Route d Oron Lausanne 021/

Chapitre 1 - Langages de description d architectures matérielles hybrides

Grid Computing. Mihaela JUGANARU-MATHIEU École Nationale Supérieure des Mines de St Etienne

La continuité de service

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Eternelle question, mais attention aux arnaques Question qui est souvent mise en premier plan => ce n est pas une bonne idée

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

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

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

GCOS 7 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1

Etude d Algorithmes Parallèles de Data Mining

ELP 304 : Électronique Numérique. Cours 1 Introduction

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

Une méthode de conception de systèmes sur puce

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

Calcul scientifique précis et efficace sur le processeur CELL

Multiprogrammation parallèle générique des méthodes de décomposition de domaine

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

Système de stockage IBM XIV Storage System Description technique

. Plan du cours. . Architecture: Fermi ( ), Kepler (12-?)

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

Conception des systèmes répartis

Problèmes liés à la concurrence

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

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

Structure de base d un ordinateur

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

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Matériel & Logiciels (Hardware & Software)

Temps Réel. Jérôme Pouiller Septembre 2011

Présentation d HyperV

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Tout ce que vous avez toujours voulu savoir sur SAP HANA. Sans avoir jamais osé le demander

Performances de la programmation multi-thread

Sanity Check. bgcolor mgcolor fgcolor

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

Séminaire RGE REIMS 17 février 2011

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Gestion de clusters de calcul avec Rocks

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

Programmation d Applications Concurrentes et Distribuées (INF431)

Retour d expérience RATP. Intégrer le test de performance au cœur du processus de développement agile. Challenges, techniques, résultats.

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

1 Mesure de la performance d un système temps réel : la gigue

Parallélisme et bioinformatique

3 ème journée des utilisateurs de l archivage

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

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

Pourquoi OneSolutions a choisi SyselCloud

IFT1215 Introduction aux systèmes informatiques

Transcription:

Initiation au HPC - Généralités Éric Ramat et Julien Dehos Université du Littoral Côte d Opale M2 Informatique 2 septembre 2015 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 1/49

Plan du cours 1 Présentation du module 2 Motivation du HPC 3 Architectures parallèles/distribuées 4 Critères de performances 5 Notions et problématiques de base 6 Programmation parallèle/concurrente Éric Ramat et Julien Dehos Initiation au HPC - Généralités 2/49

Plan du cours 1 Présentation du module 2 Motivation du HPC 3 Architectures parallèles/distribuées 4 Critères de performances 5 Notions et problématiques de base 6 Programmation parallèle/concurrente Éric Ramat et Julien Dehos Initiation au HPC - Généralités 2/49

Présentation du module Objectifs avoir un peu de culture générale sur les architectures parallèles/distribuées faire un peu de programmation parallèle/concurrente savoir aborder un problème de parallélisation/concurrence : identifier le problème, concevoir/implémenter/valider une solution Éric Ramat et Julien Dehos Initiation au HPC - Généralités 3/49

Présentation du module Volume horaire 12h sur la programmation parallèle 12h sur la programmation concurrente environ 1/4 CM et 3/4 TP Éric Ramat et Julien Dehos Initiation au HPC - Généralités 4/49

Présentation du module Évaluation programmation parallèle : examen sur feuille, 1h, sans document Éric Ramat et Julien Dehos Initiation au HPC - Généralités 5/49

Présentation du module Page web du module http://www-lisic.univ-littoral.fr/~dehos Éric Ramat et Julien Dehos Initiation au HPC - Généralités 6/49

Plan du cours 1 Présentation du module 2 Motivation du HPC 3 Architectures parallèles/distribuées 4 Critères de performances 5 Notions et problématiques de base 6 Programmation parallèle/concurrente Éric Ramat et Julien Dehos Initiation au HPC - Généralités 6/49

Motivation du HPC Définition du HPC High Performance Computing (calcul à haute performance) typiquement : gros calculs réalisés sur des supercalculateurs mais également : systèmes distribués ou à accès concurrents, applications nécessitant beaucoup de calculs sur des ordinateurs personnels ou des appareils mobiles... Tianhe-2 (2013) plantronicsgermany Éric Ramat et Julien Dehos Initiation au HPC - Généralités 7/49

Motivation du HPC Notion de puissance de calcul quelques unités de mesure : MIPS : Million Instructions Per Second FLOPS : FLoating-point Operations Per Second GFLOPS : 10 9 FLOPS PFLOPS : 10 15 FLOPS quelques exemples : CPU intel Core i7-3770 (2013) : 200 GFLOPS GPU AMD Radeon R9 290X (2013) : 5 632 GFLOPS Sony PS4 (2013) : 102 GFLOPS CPU + 1 843 GFLOPS GPU Apple iphone 6 (2014) : 166 GFLOPS GPU le Pentium 90 de quand j étais jeune (1994) : 0,09 GFLOPS Tianhe-2 (2013) : 33,86 PFLOPS 200K iphone 6 300M P90 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 8/49

Motivation du HPC Besoin en puissance de calcul : prévisions Météo-France supercalculateur NEC SX9 (2009) : 40 TFLOPS en crête trois modèles de simulation couplés, différentes échelles réajustement toutes les 6 heures Éric Ramat et Julien Dehos Initiation au HPC - Généralités 9/49

Motivation du HPC Besoin en puissance de calcul : jeu d échecs nombre de feuilles estimé de l arbre de jeu : 10 123 en considérant qu un ordinateur à 100 PFLOPS peut calculer une feuille en 1 opération, il faudrait plus de 10 96 siècles pour tout calculer Éric Ramat et Julien Dehos Initiation au HPC - Généralités 10/49

Motivation du HPC Besoin en puissance de calcul : jeux vidéo calculer des images 1920 1080 en 17 ms 124M pixels/s à partir de scènes 3D de plusieurs millions de polygones et en gérant l éclairage, les physics... Crysis 3 (2013) Éric Ramat et Julien Dehos Initiation au HPC - Généralités 11/49

Motivation du HPC Évolution de la puissance de calcul la fréquence d horloge plafonne à 3 GHz depuis 2005 le nombre de transistors continue à doubler tous les 2 ans (loi de Moore, 1975) nouvelles contraintes : limites de miniaturisation, dissipation thermique, consommation électrique nécessité du parallélisme Éric Ramat et Julien Dehos Initiation au HPC - Généralités 12/49

Motivation du HPC Disponibilité de la puissance de calcul systèmes multi-processeurs processeurs multi-coeurs cartes graphiques interconnexion à base de réseaux rapides mais nécessité d adapter les logiciels Éric Ramat et Julien Dehos Initiation au HPC - Généralités 13/49

Plan du cours 1 Présentation du module 2 Motivation du HPC 3 Architectures parallèles/distribuées 4 Critères de performances 5 Notions et problématiques de base 6 Programmation parallèle/concurrente Éric Ramat et Julien Dehos Initiation au HPC - Généralités 13/49

Architectures parallèles/distribuées Systèmes distribués noeuds hétérogènes de calcul ou de stockage traitement de tâches hétérogènes exemple : services web (HTTP+BD+traitements) contraintes de fiabilité, capacité, charge, temps de réponse... Data center Facebook Éric Ramat et Julien Dehos Initiation au HPC - Généralités 14/49

Architectures parallèles/distribuées Calculateurs massivement parallèles supercalculateurs, grilles de calcul, ordinateurs en réseau, nombre de processeurs important calculs sur des gros volumes de données exemple : prévisions météo, synthèse d images, cryptanalyse... Éric Ramat et Julien Dehos Initiation au HPC - Généralités 15/49

Architectures parallèles/distribuées Systèmes multi-processeurs plusieurs processeurs dans une même machine CPU, GPU... intérêts : mémoire partagée, interconnexion haute performance mais nombre de processeurs faible CXT8000 (nvidia Tesla) Éric Ramat et Julien Dehos Initiation au HPC - Généralités 16/49

Architectures parallèles/distribuées Processeurs multi-coeurs plusieurs coeurs parallèles dans un même processeur spécifique par coeur : unités de contrôle/calcul + mémoire partagé : unités de contrôle communes + mémoire partagée Éric Ramat et Julien Dehos Initiation au HPC - Généralités 17/49

Architectures parallèles/distribuées Processeurs vectoriels calculer une instruction sur plusieurs données en même temps avec des registres 128 bits, on peut traiter 4 données 32 bits à la fois sur les processeurs x86 : SSE, AVX permet d accélérer les calculs mais nécessite une programmation particulière (minimiser les chargements et déchargements) Éric Ramat et Julien Dehos Initiation au HPC - Généralités 18/49

Architectures parallèles/distribuées Architecture pipeline réaliser un calcul nécessite plusieurs étapes sans pipeline : on effectue toutes les étapes d un calcul puis on passe au calcul suivant avec pipeline : lorsqu un calcul passe à l étape suivante, on remplit l étape libérée avec un nouveau calcul, sans attendre permet d accélérer les calculs mais nécessite une programmation particulière (garder le pipeline plein) Éric Ramat et Julien Dehos Initiation au HPC - Généralités 19/49

Architectures parallèles/distribuées Clock Cycle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Waiting Instructions UNPIPELINED Stage 1: Fetch Stage 2: Decode Stage 3: Execute Stage 4: Write-back Completed Instructions Éric Ramat et Julien Dehos Initiation au HPC - Généralités 20/49

Architectures parallèles/distribuées Clock Cycle 0 1 2 3 4 5 6 7 8 Waiting Instructions PIPELINED Stage 1: Fetch Stage 2: Decode Stage 3: Execute Stage 4: Write-back Completed Instructions Éric Ramat et Julien Dehos Initiation au HPC - Généralités 21/49

Architectures parallèles/distribuées Ces architectures sont complémentaires calculateur à N 1 noeuds noeuds à N 2 processeurs processeurs à N 3 coeurs coeurs à N 4 unités de calcul (UC) = N 1 N 2 N 3 N 4 unités de calcul + de la mémoire spécifique à chaque niveau + des techniques de programmation spécifiques à chaque niveau une grande puissance de calcul et une bonne migraine pour programmer tout çà Éric Ramat et Julien Dehos Initiation au HPC - Généralités 22/49

Plan du cours 1 Présentation du module 2 Motivation du HPC 3 Architectures parallèles/distribuées 4 Critères de performances 5 Notions et problématiques de base 6 Programmation parallèle/concurrente Éric Ramat et Julien Dehos Initiation au HPC - Généralités 22/49

Critères de performances Mesures des performances temps de calculs : durée, MIPS, FLOPS, nombre de polygones rendus par seconde... se méfier des chiffres annoncés : FLOPS en simple ou double précision puissance moyenne ou en crête prise en compte des initialisations, transferts de données... comparaison d implémentations avec le même degré d optimisation... Éric Ramat et Julien Dehos Initiation au HPC - Généralités 23/49

Critères de performances Objectif de la parallélisation exécution séquentielle : 0 T(1) exécution parallèle (idéale) : 1 unité de calcul t P unités de calcul 0 T(P) t accélération (speed-up) : S(P) = T(1) T(P) objectif : S(P) = P c est-à-dire T(P) = T(1) P Éric Ramat et Julien Dehos Initiation au HPC - Généralités 24/49

Critères de performances Passage à l échelle (scalability) S(P) seuil d optimalité S(P) = P P évolution du speed-up en fonction du nombre d unités de calcul cas idéal : S(P) = P avec peu d UC, la parallélisation est souvent efficace à partir d un certain seuil, utiliser plus d UC n accélère pas le calcul, voire le ralentit (coût de gestion de la parallélisation, limite de parallélisation du calcul...) Éric Ramat et Julien Dehos Initiation au HPC - Généralités 25/49

Critères de performances Loi d Amdahl décrit le passage à l échelle théorique selon le calcul à réaliser le calcul peut être décomposé en : une partie parallélisable sur P unités de calcul (de proportion τ) une partie séquentielle résiduelle (de proportion 1 τ) calcul : 1 2... P τ 1 τ partie P-parallélisable partie séquentielle résiduelle on a : T(P) = τt(1) P + (1 τ)t(1) d où (loi d Amdahl) : S(P) = T(1) T(P) = 1 τ P +1 τ un calcul passe bien à l échelle uniquement si τ est très proche de 1 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 26/49

Critères de performances 20.00 Amdahl s Law 18.00 16.00 14.00 12.00 Parallel Portion 95% 90% 75% 50% Speedup 10.00 8.00 6.00 4.00 2.00 0.00 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 Number of Processors Éric Ramat et Julien Dehos Initiation au HPC - Généralités 27/49

Plan du cours 1 Présentation du module 2 Motivation du HPC 3 Architectures parallèles/distribuées 4 Critères de performances 5 Notions et problématiques de base 6 Programmation parallèle/concurrente Éric Ramat et Julien Dehos Initiation au HPC - Généralités 27/49

Notions et problématiques de base Parallélisme de tâches ou de données parallélisme de tâches : le système effectue en parallèle des tâches/calculs différents exemples : services web, ordinateur personnel multi-tâche programmation concurrente parallélisme de données : le système effectue le même calcul, sur des données différentes exemples : supercalculateurs, GPU programmation parallèle Éric Ramat et Julien Dehos Initiation au HPC - Généralités 28/49

Notions et problématiques de base Taxinomie de Flynn classification des architectures d ordinateurs (1966) : Single Data Multiple Data Single Instruction SISD SIMD Multiple Instruction MISD MIMD aujourd hui, on utilise plutôt les termes SPMD et MPMD (Program) Éric Ramat et Julien Dehos Initiation au HPC - Généralités 29/49

Notions et problématiques de base Taxinomie de Flynn : SISD SISD Instruction Pool Data Pool PU instruction unique sur donnée unique c est-à-dire pas de parallélisme exemple : architecture Von Neumann Éric Ramat et Julien Dehos Initiation au HPC - Généralités 30/49

Notions et problématiques de base Taxinomie de Flynn : SIMD SIMD Instruction Pool Data Pool PU PU PU instruction unique sur données multiples c est-à-dire parallélisme de données exemples : GPU, processeurs vectoriels PU Éric Ramat et Julien Dehos Initiation au HPC - Généralités 31/49

Notions et problématiques de base Taxinomie de Flynn : MISD MISD Instruction Pool instructions multiples sur donnée unique Data Pool PU PU peu utilisé en pratique exemple : systèmes critiques Éric Ramat et Julien Dehos Initiation au HPC - Généralités 32/49

Notions et problématiques de base Taxinomie de Flynn : MIMD MIMD Data Pool Instruction Pool PU PU PU PU PU PU PU PU instructions multiples sur données multiples c est-à-dire parallélisme de tâches et de données exemples : CPU multi-coeurs, architectures distribuées Éric Ramat et Julien Dehos Initiation au HPC - Généralités 33/49

Notions et problématiques de base Processus, thread processus : programme en cours d exécution espace mémoire réservé au processus communication entre processus par messages/signaux thread : duplication légère d un processus espace mémoire partagé par tous les threads du processus communication entre threads d un processus par appels systèmes Éric Ramat et Julien Dehos Initiation au HPC - Généralités 34/49

Notions et problématiques de base appels systèmes messages instructions thread 1 instructions thread 2 instructions mémoire processus 1 mémoire processus 2 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 35/49

Notions et problématiques de base Équilibrage de charge paralléliser revient à décomposer en plusieurs processus/threads exécutés en parallèle, sur des unités de calculs différentes objectif : répartir la charge de calcul de façon équilibrée (pour réduire le temps de calcul global) charge équilibrée : S(P) = P charge non équilibrée : S(P) < P difficultés : temps de calcul différents, accès concurrents, communication entre processus/thread... Éric Ramat et Julien Dehos Initiation au HPC - Généralités 36/49

Notions et problématiques de base attente attente attente 0 T(P) t 0 T(P) t charge équilibrée S(P) = P charge non équilibrée S(P) < P Éric Ramat et Julien Dehos Initiation au HPC - Généralités 37/49

Notions et problématiques de base Synchrone/asynchrone opérations synchrones : les opérations sont coordonnées dans le temps (cycles d horloge, exécution séquentielle) exemples : instructions vectorielles opérations asynchrones : les opérations s exécutent indépendamment exemples : systèmes multi-tâches programmation parallèle/concurrente principalement asynchrone avec des mécanismes de synchronisation (barrière, mutex) Éric Ramat et Julien Dehos Initiation au HPC - Généralités 38/49

Notions et problématiques de base t t attente synchrone asynchrone asynchrone + barrière t Éric Ramat et Julien Dehos Initiation au HPC - Généralités 39/49

Notions et problématiques de base Accès concurrent (race condition) plusieurs processus/threads accèdent à une ressource (périphérique, mémoire partagée...) en même temps problèmes possibles : calculs incorrects (utilisation de données obsolètes) interblocages (attente mutuelle)... Éric Ramat et Julien Dehos Initiation au HPC - Généralités 40/49

Notions et problématiques de base #omp parallel for num_threads(2) for (int i=0; i<n; i++) { int x = rand(); // appel système bloquant et concurrent T[i] = f(x); } thread 1 attente réponse att. appel att. réponse système rand() rand() rand() thread 2 attente appel att. réponse att. appel Éric Ramat et Julien Dehos Initiation au HPC - Généralités 41/49

Notions et problématiques de base Section critique, mutex, sémaphore en temps normal : un processus doit pouvoir être mis en pause puis repris section critique : section de code qui doit s exécuter sans interruption (e.g. mise à jour d une ressource partagée) mutex, sémaphore : primitives de synchronisation (permet de vérouiller temporairement l accès à une donnée) Éric Ramat et Julien Dehos Initiation au HPC - Généralités 42/49

Plan du cours 1 Présentation du module 2 Motivation du HPC 3 Architectures parallèles/distribuées 4 Critères de performances 5 Notions et problématiques de base 6 Programmation parallèle/concurrente Éric Ramat et Julien Dehos Initiation au HPC - Généralités 42/49

Programmation parallèle/concurrente Architecture Von Neumann composition : UAL/UC + mémoires + entrées/sorties distinction implicite des instructions et des données bus de données central parallélisation : à quelle échelle (UAL, CPU...)? quelles mémoires? montée en charge du bus? Éric Ramat et Julien Dehos Initiation au HPC - Généralités 43/49

Programmation parallèle/concurrente Choix de conception des architectures parallèles synchronisation des unités de calculs : calculs synchrones (processeurs vectoriels) synchronisation par le système (appels systèmes, messages locaux ou réseaux) accès mémoire : différents types de mémoire : registres, caches distribués/partagés, RAM distribuée/partagée problème de gestion mémoire (cohérence de cache, accès concurrents) et de temps d accès Éric Ramat et Julien Dehos Initiation au HPC - Généralités 44/49

Programmation parallèle/concurrente Architecture à mémoire partagée toutes les unités de calcul accèdent à la même mémoire exemples : multi-cpu, CPU multi-coeurs, GPU également appelé SMP (Symmetric Multi-Processing) efficace et simple à utiliser mais peu évolutif accès mémoire pas forcément uniforme programmation : thread, OpenMP Éric Ramat et Julien Dehos Initiation au HPC - Généralités 45/49

Programmation parallèle/concurrente Architecture à mémoire distribuée chaque unité de calcul accède à sa propre mémoire exemples : systèmes distribués, grilles de calcul, supercalculateurs plus évolutif mais moins efficace et plus difficile à utiliser programmation : socket, MPI Éric Ramat et Julien Dehos Initiation au HPC - Généralités 46/49

Programmation parallèle/concurrente Méthode générale de programmation parallèle/concurrente caractériser le problème à paralléliser prévoir une solution (architecture, technologies, algorithme) conception et implémentation validation (correction, performances) Éric Ramat et Julien Dehos Initiation au HPC - Généralités 47/49

Programmation parallèle/concurrente Avant de paralléliser/distribuer/optimiser du code est-ce nécessaire (performances insuffisantes)? l algorithme déjà implémenté est-il optimal? gestion mémoire correcte (structures de données, allocation...)? options de compilation, assertions, logs...? profilage de code (où est consommé le temps)? efficacité des optimisations réalisées (mesurer)? Éric Ramat et Julien Dehos Initiation au HPC - Généralités 48/49

Fin Éric Ramat et Julien Dehos Initiation au HPC - Généralités 49/49