Produit de matrices Strassen, Winograd et parallélisme mixte en récursif?!

Documents pareils
CORBA haute performance

Évaluation et implémentation des langages

Logiciel Libre Cours 3 Fondements: Génie Logiciel

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Programmation parallèle et distribuée

DG-ADAJ: Une plateforme Desktop Grid

Compilation (INF 564)

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

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

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

Gestion des Clés Publiques (PKI)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Object Removal by Exemplar-Based Inpainting

WEA Un Gérant d'objets Persistants pour des environnements distribués

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

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

Solution logicielle pour le pilotage et l ERM. Journées d études IARD 26 mars mars 2010

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

Plus courts chemins, programmation dynamique

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

THÈSE. pour obtenir le grade de. Spécialité : "Informatique : Systèmes et Communications"


Exemple d implantation de fonction mathématique sur ST240

Utilisation du Cloud StratusLab dans le cadre d application astroparticule à l APC

Limitations of the Playstation 3 for High Performance Cluster Computing

Contribution à la conception par la simulation en électronique de puissance : application à l onduleur basse tension

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Simulation de graphes de tâches

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A)

Introduction à MATLAB R

Initiation à l algorithmique

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB.

Conventions d écriture et outils de mise au point

Introduction à la Programmation Parallèle: MPI

Les BRMS Business Rules Management System. Groupe GENITECH

Mesurer les performances (CPU) sous Linux

Apprentissage Automatique

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Une bibliothèque de templates pour CUDA

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Recherche dans un tableau

STREAMCORE. Gestion de Performance et Optimisation Réseau

Votre Réseau est-il prêt?

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

Rappels d architecture

Les suites numériques

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Conception de réseaux de télécommunications : optimisation et expérimentations

Cours 7 : Utilisation de modules sous python

Certificat Big Data - Master MAthématiques

Estimation des charges. «Le travail se dilate jusqu à remplir le temps disponible»

Présentation du PL/SQL

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

Critique des conditions de la durabilité: application aux indices de dév...

Entraînement au concours ACM-ICPC

Éléments de programmation et introduction à Java

Master Informatique Aix-Marseille Université

Laboratoire d informatique Gaspard-Monge UMR Journée Labex Bézout- ANSES

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

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Gestion hybride de la mémoire dynamique dans les systèmes Java temps-réel

physicien diplômé EPFZ originaire de France présentée acceptée sur proposition Thèse no. 7178

Cours d Algorithmique et de Langage C v 3.0

Joueur B Pierre Feuille Ciseaux Pierre (0,0) (-1,1) (1,-1) Feuille (1,-1) (0,0) (-1,1) Ciseaux (-1,1) (1,-1) (0.0)

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

Programmes des classes préparatoires aux Grandes Ecoles

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Architecture des ordinateurs

Urbanisation des Systèmes d Information Architecture d Entreprise. 04 Architecture du SI : identifier et décrire les services, structurer le SI

Mathcad Ces capacités font de Mathcad l outil de calcul technique le plus utilisé au monde.

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

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Conception Electronique (CEL) Prof. Maurizio Tognolini

Accès instantané aux mots et aux locutions Le dictionnaire électronique offre une traduction rapide d'un mot ou d'une locution

Intelligence Artificielle Planification

Cours de Master Recherche

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

IV- Comment fonctionne un ordinateur?

Masses de données. 1. Introduction 2. Problématiques 3. Socle de formation (non présenté) 4. Liens avec Formation INSA

CUOMO PC Route d Oron Lausanne 021/

1 Description générale de VISFIELD

Cours de Génie Logiciel

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Data Mining. Vincent Augusto École Nationale Supérieure des Mines de Saint-Étienne. Data Mining. V. Augusto.

Programme détaillé BTS INFORMATIQUE DE GESTION DIPLÔME D ETAT. Objectifs de la formation. Les métiers. Durée de la formation

Demande d'ap informatique 2012

TP1 : Initiation à Java et Eclipse

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Cours Informatique Master STEP

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

Projet audio. Analyse des Signaux ELE2700

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

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

Transcription:

Produit de matrices Strassen, Winograd et parallélisme mixte en récursif?! Frédéric SUTER Projet ReMaP Laboratoire de l Informatique du Parallélisme UMR CNRS-INRIA-ENS Lyon 5668 Lyon, France

Plan de l exposé Introduction Versions mixtes non-récursive des algorithmes de Strassen et Winograd Comparaisons théorique et expérimentale Un point sur la récursivité Conclusion et perspectives

Introduction : Contexte Ordonnancement des travaux dans Scilab// C = A x B + D x E Serveurs de calculs disponibles à travers un réseau Trouver de «bons» algorithmes candidats Si possible parallèles Utilisation de bibliothèques numériques parallèles Développer de nouveaux paradigmes de programmation Automatiser! http:www.ens-lyon.fr/~desprez/ouragan/

Introduction : parallélisme mixte (1) Parallélisme mixte : Exploitation simultanée du parallélisme de données et du parallélisme de tâches Graphes de tâches data-parallèles Découpage de l ensemble des processeurs en sousensembles Switched parallelism Ordonnancement de Divide and Conquer Trees Détermination d un seuil avant Parallélisme de données (sur tous les processeurs) après Parallélisme de tâches (une tâche par processeur)

Introduction : parallélisme mixte (2) Au niveau langages et compilateurs Du Task dans du Data (Fx, Paradigm, TwoL, ext. HPF, etc.) ajout de structures de contrôle et de communications explicites dans un langage data-parallèle Du Data dans du Task (Data//-Orca, etc.) ajout de structures data-parallèles dans un langage à parallélisme de tâches Thèse de Ramaswamy Extraire un graphe de tâches data-parallèles d un code C, Fortran ou Matlab trouver découpages, ordonnancement et placement qui minimisent le temps d exécution

Introduction : Strassen et Winograd Algorithmes de produit de matrices Réduction du nombre de multiplications dans le produit de matrices 2 x 2 Strassen : 7 multiplications et 18 additions/soustractions Winograd : 7 multiplications et 15 additions/soustractions Algorithme classique : 8 multiplications et 4 additions Complexité en O(2 log(7) ) = O(2 2.807 ) par récursivité Applicables à des matrices blocs 2 x 2 C C 11 12 = A C 21 C22 A A A 11 12 21 22 * B B B 11 12 B 21 22

T1 = A11+A22 T2 = T1-A11 T3 = A11-A21 T4 = A12-T2 Q1 = A11*B11 Q2 = A12*B21 Q3 = T1*T5 Q4 = T2*T6 Algorithme et graphe de tâches Phase 1 Phase 2 Phase 3 C11 = Q1+Q2 T5 = B12-B21 T6 = B22-T5 T7 = B22-B12 T8 = B21-T6 Q5 = T3*T7 Q6 = T4*B22 Q7 = A22*T8 C12= Q1+Q3+Q4+Q6 C21 = Q1+Q4+Q5+Q7 C22=Q1+Q3+Q4+Q5 - + - - - - * - START * * * * * * + + + + + + + STOP -

Introduction : cadre de travail AA C Matrices carrées Nombre de lignes M = 2kp B Grilles disjointes carrées Nombre de lignes p = 2 j 0 1 4 5 Grille virtuelle Numérotation globale de 0 à (2*p*p)-1 2 3 Définition de contextes de calcul Ctxt 1 Ctxt 2 6 7

Qu espère-t-on obtenir? On ne cherche pas à ridiculiser ScaLAPACK En revanche on espère s en approcher Validation du paradigme utilisé Si le surcoût est faible Possibilité d étendre le cas homogène au cas hétérogène Passage d algorithmes data-// en hétérogène difficile Autres extensions possibles Placement automatique de tâches data-// Utilisation par un ordonnanceur dans le cadre d un environnement à base de serveurs de calculs

Distributions des données Intérêt de Strassen : additions en temps linéaire et sans communications Chaque Distribution processeur full-block doit ne convient posséder pas un morceau : génère des chaque communications quart Distribution cyclique par blocs bidimensionnelle Taille des blocs : M/2p Processeur 0 Processeur 1 Processeur 2 Processeur 3 Calcul de A11 + A22

Placement des tâches : Winograd START Phase 1 - - + - - - Phase 2 * - - * * * * * * + + + Phase 3 CTXT 1 + + + + CTXT 2 Copie inter-contextes STOP

Algorithmes comparés Strassen et Winograd mixte PDGEMM sur la moitié des processeurs, avec la redistribution de ScaLAPACK PDGEMM sur l ensemble des processeurs, avec la redistribution de ScaLAPACK PDGEMM sur l ensemble des processeurs, avec une redistribution optimisée

Utilisation Algorithme de la chenille 0 1 2 3 7 6 5 4 7 0 1 2 6 5 4 3 7 0 1 2 6 5 4 3 6 7 0 1 6 7 0 1 2 5 4 3 5 4 3 2 5 6 7 0 4 3 2 1 5 6 4 3 2 7 0 1 4 5 6 3 2 7 1 0

Schéma de communication effectif 0 1 2 3 4 5 6 7 Copie mémoire Communication

Comparatif théorique (résumé) Version «PDGEMM sur la moitié des processeurs» 2x plus de produits/processeurs Autres algorithmes Différences au niveau des latences Strassen vs Winograd Plus de calcul mais moins de comm. pour Winograd Winograd vs «PDGEMM + redistribution optimisée» Moins de comm. pour Winograd si p 2

Plate-forme de test Grappe homogène Processeurs «lents» 8 Pentium Pro 200 MHz Mais réseau rapide Myrinet

Résultats expérimentaux Confirmation du facteur 2 La chenille en fait trop Temps proches pour Strassen, Winograd et Pdgemm avec optimisation

Conclusion sur le non-récursif Implémentations mixtes de Strassen et Winograd Meilleures que des programmes «pur ScaLAPACK» (moitié des processeurs ou redistribution ScaLAPACK) Au niveau de ScaLAPACK (si on optimise la redistribution) Validation de l approche utilisée Strassen et Winograd sont des algorithmes bien adaptés (tâches indépendantes et identifiées) Essayer sur d autres plates-formes (grappe HP Grenoble, SP3 CINES) Extension vers la récursivité à étudier

Récursivité? Bonne complexité obtenue par récursivité Nos algorithmes peuvent-ils être appliqués récursivement? Deux approches possibles Même ratio (nombre de processeurs / taille des matrices) Mêmes contextes de calcul et diminution des tailles

Première approche But : exécuter les produits en local Réduction et multiplication des contextes de calcul Problèmes Chemin critique : 4 produits Pas de diminution effective du nombre de produits Plus de communications Approche abandonnée! 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1

Deuxième approche Remarque sur les produits de la phase 2 Opérande 1 sur le contexte 1 Opérande 2 sur le contexte 2 Mêmes conditions que pour le produit initial Application du même algorithme Sur les mêmes contextes de calcul Mais sur matrices 4x plus petites Dernier appel récursif Utilisation de ScaLAPACK

Deuxième approche (suite) Taille des blocs fonction du nombre de pas Sans récursivité 1 pas de récursivité Plus de phases de comm. supplémentaires Réduction du nombre de produits effectués Étude et tests en cours

Perspectives A court terme : récursif Vérifier l approche récursive sur différentes plates-formes A moyen terme : hétérogène Processeurs de différentes puissances Déséquilibrer les calculs en fonction des puissances Réseaux de différents débits Optimiser les redistributions entre les contextes But : maximiser le débit du lien inter-contextes Combiner ces deux types Grappe de grappes A long terme Confirmer sur d autres algorithmes d algèbre linéaire

Questions?