Introduction au Calcul Haute Performance PDF
Document Details
Uploaded by Deleted User
Mme OUKFIF
Tags
Summary
Ce document présente les bases du calcul haute performance (HPC) et les concepts clés de la programmation parallèle. Il décrit les architectures de HPC, les applications et les modèles de programmation utilisés dans ce domaine. Il est adapté aux cours universitaires.
Full Transcript
INTRODUCTION AU CALCUL HAUTE PERFORMANCE Programmation parallèle M1-RMSE Mme OUKFIF OBJECTIFS Introduire le calcul haute performance (HPC High Performance Computing) Dénombrer les différentes architectures du HPC Identifier les applications du HPC Répertorier...
INTRODUCTION AU CALCUL HAUTE PERFORMANCE Programmation parallèle M1-RMSE Mme OUKFIF OBJECTIFS Introduire le calcul haute performance (HPC High Performance Computing) Dénombrer les différentes architectures du HPC Identifier les applications du HPC Répertorier les modèles de programmation parallèle Concevoir un programme parallèle Implémenter des programmes parallèles avec mémoire distribuée en utilisant MPI 2 Programmation Paralléle M1-RMSE CONTENU DU CHAPITRE Qu’est-ce que le calcul haute performance (HPC) ? Machines haute performance Les applications du HPC Les architectures parallèles Les modèles de programmation parallèle Conception d’un programme parallèle 3 Programmation Paralléle M1-RMSE CALCUL HAUTE PERFORMANCE (HPC) HPC désigne l’utilisation de traitements parallèles sur des ordinateurs puissants pour une exécution efficace, fiable et rapide d’applications de divers domaines académiques et industriels HPC répond à un besoin concret : calculer + et + vite Traitements parallèles Ordinateurs puissants (machines haute performance) 4 Programmation Paralléle M1-RMSE MACHINES HAUTE PERFORMANCE Les machines hautes performance ont des caractéristiques clé : Nombre et complexité des CPU individuels Disponibilité de mémoires partagées ou communes Topologie d’interconnexion Performance des réseaux d’interconnexion Dispositifs d’Entrés/Sorties, etc. 5 Programmation Paralléle M1-RMSE MACHINES HAUTE PERFORMANCE Des multicœurs d’un supercalculateur 6 Programmation Paralléle M1-RMSE MACHINES HAUTE PERFORMANCE Plusieurs cœurs avec des unités vectorielles avec un processeur graphique GPU 7 Programmation Paralléle M1-RMSE MACHINES HAUTE PERFORMANCE Des multicœurs au supercalculateur 8 Programmation Paralléle M1-RMSE Multiprocesseur/Nœud MACHINES HAUTE PERFORMANCE Des multicœurs au supercalculateur Cluster 9 Programmation Paralléle M1-RMSE MACHINES HAUTE PERFORMANCE Des multicœurs au supercalculateur Supercalculateur 10 Programmation Paralléle M1-RMSE MACHINES HAUTE PERFORMANCE Des multicœurs au supercalculateur Supercalculateur + accélérateurs matériels 11 Programmation Paralléle M1-RMSE MACHINES HAUTE PERFORMANCE 12 Programmation Paralléle M1-RMSE MACHINES HAUTE PERFORMANCE Fugaku – Avec ses 442 Pflop/s, ce système affiche la même puissance que celle obtenue dans le précédent classement de novembre. Construit par Fujitsu, le Fugaku possède 7 630 848 cœurs processeurs Arm A64FX. Il est hébergé au RIKEN Center for 13 Programmation Paralléle M1-RMSE Computational Science (R-CCS) de Kobe, au Japon. MACHINES HAUTE PERFORMANCE Top500.org , juin 2021 14 Programmation Paralléle M1-RMSE MACHINES HAUTE PERFORMANCE Top500.org , juin 2024 15 Programmation Paralléle M1-RMSE MACHINES HAUTE PERFORMANCE 16 Programmation Paralléle M1-RMSE Top500.org , juin 2024 LES APPLICATIONS DU HPC HPC agit directement sur divers domaines clé connus par leur impact sur l’économie, tels que : L’industrie Les biotechnologies L’industrie pharmaceutique Les finances La météorologie, etc. Tous ces domaines emploient des simulations 17 Programmation Paralléle M1-RMSE LES APPLICATIONS DU HPC 18 Programmation Paralléle M1-RMSE LES APPLICATIONS DU HPC Exemple d’application en météorologie sur un supercalculateur Météo-France s'équipe de deux supercalculateurs ( Belenos et Taranis) Fournis par Atos, ils développent 21,48 pétaflops de puissances et sont équipés de 300 000 coeurs de calcul. Grâce à ces nouveaux appareils, Météo-France souhaite affiner ses prévisions météorologiques et mieux anticiper les évolutions climatiques. 19 Programmation Paralléle M1-RMSE MACHINES HAUTE PERFORMANCE 20 Programmation Paralléle M1-RMSE Avant de concevoir un programme parallèle, il est nécessaire de : Comprendre et connaître l’architecture des ressources disponibles Connaître les modèles de programmation parallèle 21 Programmation Paralléle M1-RMSE LES ARCHITECTURES PARALLÈLES 22 Programmation Paralléle M1-RMSE LES ARCHITECTURES PARALLÈLES 23 Programmation Paralléle M1-RMSE LES ARCHITECTURES PARALLÈLES 24 Programmation Paralléle M1-RMSE LES ARCHITECTURES PARALLÈLES 25 Programmation Paralléle M1-RMSE LES ARCHITECTURES PARALLÈLES 26 Programmation Paralléle M1-RMSE LES ARCHITECTURES PARALLÈLES 27 Programmation Paralléle M1-RMSE LES ARCHITECTURES PARALLÈLES 28 Programmation Paralléle M1-RMSE LES MODÈLES DE PROGRAMMATION PARALLÈLE Qu’est-ce que le parallélisme ? Exécuter plusieurs actions coordonnées en même temps Les architectures parallèles sont les ordinateurs sur lesquels ce paradigme est utilisable Les modèles de programmation parallèles sont les techniques de programmation qui permettent de l’exploiter 29 Programmation Paralléle M1-RMSE LES MODÈLES DE PROGRAMMATION PARALLÈLE Deux classifications des modèles de programmation parallèles, selon : 1) La décomposition du problème Parallélisme de tâches Parallélisme de données 2) L’interaction des processus Modèle à mémoire partagée Modèle à mémoire distribuée Modèle hybride 30 Programmation Paralléle M1-RMSE LES MODÈLES DE PROGRAMMATION PARALLÈLE Parallélisme de tâches (parallélisme de traitements) Décomposition du programme en fonctions indépendantes qui réalisent une opération spécifique Distribution des fonctions entre différents processeurs Exécution simultanée par des processus ou des threads 31 Programmation Paralléle M1-RMSE LES MODÈLES DE PROGRAMMATION PARALLÈLE Parallélisme de données Un ensemble de tâches travaillent collectivement sur une même structure de données Chaque tâche effectue la même opération, mais sur une partie différente de la structure Distribution des données sur les différents processeurs 32 Programmation Paralléle M1-RMSE LES MODÈLES DE PROGRAMMATION PARALLÈLE Modèle à mémoire partagée Les tâches partagent un espace d’adressage commun (ont accès à toutes les données) Nécessite des mécanismes de synchronisation pour l’accès à la mémoire partagée (sémaphores, verrous, etc.) Peut être implémenté par PThreads, OpenMP, Intel TBB 33 Programmation Paralléle M1-RMSE LES MODÈLES DE PROGRAMMATION PARALLÈLE Modèle à Modèle à mémoire distribuée (modèle passage de messages) Chaque tâche a accès à ses propres données (mémoires locales) Les tâches échangent des données via des communications de messages (send/receive) Peut être implémenté par PVM, MPI (OpenMPI) 34 Programmation Paralléle M1-RMSE LES MODÈLES DE PROGRAMMATION PARALLÈLE Modèle hybride Modèle distribué pour répartir sur plusieurs nœuds Modèle à mémoire partagée au sein d’un nœud Permet de tirer partie de la topologie Cluster Un processus MPI par nœud NUMA + threads OpenMP Un processus MPI par nœud NUMA + Cuda 35 Programmation Paralléle M1-RMSE CONCEPTION D’UN PROGRAMME PARALLÈLE Penser parallèle Identifier les tâches indivisibles (on parle de décomposition ou partitionnement) Lister les dépendances de ces tâches Evaluer (si possible) la taille des tâches (choix de la granularité) en conséquence, réaliser une association entre unités de calcul et tâches à réaliser, en respectant les dépendances (placement) Synchroniser régulièrement les unités de calcul (ordonnancement) Gérer les lectures/écritures de données communes 36 (communication) Programmation Paralléle M1-RMSE CONCEPTION D’UN PROGRAMME PARALLÈLE Décomposition du problème Décomposition de domaine Les données associées au problème sont décomposées Décomposition fonctionnelle Le problème est décomposé en fonction du travail à effectuer Chaque tâche exécute une portion de la totalité du travail Le choix de la méthode est dicté par la nature du problème 37 Programmation Paralléle M1-RMSE CONCEPTION D’UN PROGRAMME PARALLÈLE Décomposition du problème Décomposition de domaineModèle à mémoire partagée au sein d’un nœud Les données associées au problème sont décomposées Chaque tâche parallèle fonctionne ensuite sur une partie des données 38 Programmation Paralléle M1-RMSE CONCEPTION D’UN PROGRAMME PARALLÈLE Décomposition du problème Décomposition de domaineModèle à mémoire partagée au sein d’un nœud Les données associées au problème sont décomposées 39 Programmation Paralléle M1-RMSE CONCEPTION D’UN PROGRAMME PARALLÈLE Décomposition du problème Décomposition fonctionnelle Groupes d’instructions indépendants que l’on affecte à différentes tâches Le placement des calculs détermine le placement des données 40 Programmation Paralléle M1-RMSE CONCEPTION D’UN PROGRAMME PARALLÈLE Décomposition du problème Choix de la granularité (quel enjeu ?) Grain fin : décomposition en un grand nombre de petites tâches Augmentation du degré de parallélisme Surcharge de communication et de synchronisation Gros Grain : décomposition en grandes tâches Déséquilibrage de charge Décomposition fine suivie d’un regroupement (ou agrégation) 41 Programmation Paralléle M1-RMSE CONCEPTION D’UN PROGRAMME PARALLÈLE Placement C’est le choix de ‘’quel processeur exécute quelle tâche’’ L’enjeu est de garantir un équilibrage de charge car le temps parallèle est le temps du processeur le plus lent 42 Programmation Paralléle M1-RMSE CALCUL INTENSIF EN ALGÉRIE Le calcul intensif est un des critères de crédibilité scientifique d’un établissement de recherche. Le CERIST vise le leadership du calcul intensif en Algérie afin de répondre aux besoins des applications scientifiques académiques et industrielles http://www.rx-racim.cerist.dz/ Plateforme de Calcul Haute Performance (IBNBADIS) composée de 32 nœuds bi-processeurs de 8 cœurs chacun, totalisant un nombre de 512 cœurs. La puissance de cette plateforme est estimée à 8,7 Tflops. 43 Programmation Paralléle M1-RMSE ASELKAM Cluster de notre université Université Mouloud Mammeri de Tizi Ouzou ASELKAM est une Unité de Calcul Intensif (HPC) composée d’un ensemble nœuds dotées chacun de 12 processeurs et de 24 Go de RAM, conncetés par un réseau très performant de type Infiniband. Aselkam est dédié au calcul scientifique intensif utilisant des logiciels de calcul parallélisés Le système d'exploitation d'Aselkam est Linux - bullx Linux Server 6.3 (une distribution basée sur Red Hat Entreprise Linux, fournie par Bull et dédiée aux applications HPC. Compilateurs installés: C, C++ et Fortran. (Intel et GNU)... Librairies pour calculs parallèles: MKL (Math Kernel Library)... bullx MPI, OpenMP. https://www.ummto.dz/calcul_intensif/ 44 Programmation Paralléle M1-RMSE AUTRES CALCULATEURS Autres unités ALTAIR (Université Aboubekr Belkaïd de Tlemcen) HAYTHEM (Université d’Oran) FARABI (ENP d’Oran) UCI-Médéa (université de Médéa) UCI-Emir , KEPLER, USTOMB 45 Programmation Paralléle M1-RMSE