Réduction des communications dans l'outil STEP Alain Muller

Slides:



Advertisements
Présentations similaires
Programmation parallèle
Advertisements

CHAftITREI ARCHITECTURE de BASE. Modèle de Von Neumann Langage d’assemblage1 John Von Neumann est à l'origine d'un modèle de machine universelle de traitement.
Introduction à la notion de fonction 1. Organisation et gestion de données, fonctions 1.1. Notion de fonction ● Déterminer l'image d'un nombre par une.
Séminaire BTS pilotage de procédés BTS PILOTAGE de PROCÉDÉS ÉCOLE BOULLE 11 MAI 2016 PARIS.
UE2 - M22 Licence acoustique
Algorithmique et programmation
AMUE – SIFAC Gestion des services fait sur SIFAC WEB
Découvrir le monde avec les mathématiques *Se repérer dans l’espace
Ch3 : Les Processeurs Superscalairs
Les Instructions Itératives (Les Boucles)
INTERFACE 3 DELL POWEREDGE 2850.
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
6GEN720 Réseaux d’ordinateurs
Un Algorithme , c'est Quoi ?
LES TABLEAUX EN JAVA.
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
Algorithme et programmation
Instructions de contrôle
Techniques de décomposition
Ajouter le code dans une page html
MOUTON Marielle - DUMETZ François - LEVECQUE Alain
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
L’Instruction de Test Alternatif
Javadoc et débogueur Semaine 03 Version A16.
Les Instructions – Organigramme
Architecture de machines Le microprocesseur
Soit la fonction f (x) = x2 + 1
Tableaux à plusieurs dimensions en langage C
Tableaux à plusieurs dimensions en langage C
Plans d’expériences: Plans factoriels
fonctionnalités iiS iis
Algorithmique & Langage C
Cyber-Sphinx Séance 2.
Programmation parallèle
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Vérification de l'architecture abstraite
Vérification avec Uppaal de l'architecture
Transport et Distribution de l’électricité
Présentation de la carte graphique
PROGRAMMATION ET ENSEIGNEMENT
Détecteurs et descripteurs
Composantes principales des ordinateurs
La Station de pompage.
Mémoire: cache, RAM, disque dur
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
Assembleur, Compilateur et Éditeur de Liens
Introduction aux microprocesseurs
Indicateurs de la cellule
Semaine #2 INF130 par Frédérick Henri.
De Scratch à Python : une transition douce… COMMUNICATION
Filière Génie Civil – 2018 Langage C Tableaux – Exercices de révision
Le code de Huffman: est une méthode de compression statistique de données qui permet de réduire la longueur du codage d'un alphabet. Le code de Huffman.
Présentation 4 : Sondage stratifié
Projet gestion des subventions
PRO1026 Programmation et enseignement
H. Wertz -- Exécution Symbolique
Programmation Scratch
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Tris Simples/Rapides.
PROGRAMMATION ET ENSEIGNEMENT
Quelle est la valeur de S après exécution des instructions suivantes :
Tableaux Cours 06.
Le langage C# : Partie 1.
Proposer, déployer et assurer la diffusion des procédures RH
Encadré par : M. Mohammad EL GHABZOURI Elaboré par : - AZEGAMOUT Mohamed - ABOULKACEM abdelouahed - GOUN Ayoub EXPOSÉ Sous le thème : SER 2018 Parallélisme.
PROGRAMMATION SOUS R. PRESENTE PAR : ACHETTOU ISMAIL LAARICH TARIQ ENCADRE PAR : Pr. EXPOSÉ SUR LA PROGRAMMATION SUR R 2.
National Instruments Leadership Seminar
Type Tableau Partie 1 : Vecteurs
4 - 2 – 5 Ecris les nombres de 2 chiffres possibles avec les chiffres
Transcription de la présentation:

Réduction des communications dans l'outil STEP Alain Muller PIPS Developer Day, Paris 25 octobre 2010

STEP : OpenMP → MPI OMP !$omp parallel !$omp do do i= 1 , N A(i)=... Enddo !$omp enddo !$omp end parallel P A T1 T2 T3 OMP → MPI !$omp parallel !$omp do do i= 1 , N A(i)=... enddo !$omp enddo !$omp end parallel P1 P2 P3 A A A

Génération des communications FULL P1 P2 P3 !$omp do do i= 1 , N A(i)=... enddo !$omp enddo A A A SEND = WRITE ∩ OUT Communications en fin de construction OpenMP Chaque processus envoie sa région SEND à tous les autres processus

Limitation des communications FULL !$omp parallel !$omp do do i= 1 , N A[i]=... enddo !$omp enddo A[i]=f(A[i-1],A[i+1]) !$omp endparallel P1 P2 P3 A A A Mise à jour complète des tableaux en fin de construction OpenMP Génération des communications indépendamment des calculs suivants

Génération des communications PARTIAL !$omp parallel !$omp do do i= 1 , N A[i]=... enddo !$omp enddo A[i]=f(A[i-1],A[i+1]) !$omp endparallel P1 P2 P3 A A A Calcul des régions RECV pour chaque construction OpenMP Prise en compte des données à jour localement Limitation des données échangées : COM(Pi→Pj) = ( SEND(Pi) ∩ RECV(Pj) ) / Uptodate(Pj)

Choix du type de communication !$omp parallel !$omp do do i= 1 , N A[i]=f(A[i-1],A[i+1]) enddo !$omp enddo !$omp endparallel P1 P2 P3 while end while A A A Dans le DG: instructions suivant un bloc OpenMP pour déterminer le type de communication FULL ou PARTIAL

Comparaison entre les deux versions FULL FULL / PARTIAL Analyses Régions SEND Régions SEND et RECV DG A l'exécution Instanciation des régions SEND Instanciation des régions SEND et RECV Calcul COM(Pi → Pj) Gestion des régions UPTODATE Mise à jour des données Complète Partielle

Cas test : Solveur itératif Tableau des données 10 000 000 REAL*4 Plate-forme Bull NOVA 16 noeuds 4 Intel Xeon quad-core E7350 (2.93GHz) par noeud 48GB DDR2 SDRAM par noeud Interconnexion InfiniBand (20GB/s) Deux mesures de performance 1 itération 12 itérations

Solveur itératif : 1 itération 90 000 real*4 2 500 000 real*4 1 ms 72 ms

Solveur itératif : 12 itérations 1 ms 72 ms

Solveur itératif - Speedup Passage à l'échelle possible

Futur Générer des communications optimisées entre plusieurs modules Propagation des régions SEND et RECV au niveau CALLERS en se basant sur le DG Calculer les communications Pi → Pj statiquement lors de la transformation Décrire explicitement les données à échanger dans le code généré Possible sur la plupart de nos cas tests Restreint aux cas de découpage des itérations de boucle statique : clause OpenMP schedule(static) Traiter des programmes en C et Fortran90

Réduction des communications dans l'outil STEP Alain Muller STEP : OpenMP → MPI Génération des communications FULL Limitation des communications FULL Génération des communications PARTIAL Choix du type de communication Comparaison entre les deux versions Cas test : Solveur itératif Solveur itératif : 1 itération Solveur itératif : 12 itérations Solveur itératif - Speedup Futur 25 octobre 2010