Modèle polyédrique: fondements et application à la parallélisation de programmes réguliers Tanguy Risset DIF 2001/2002.

Slides:



Advertisements
Présentations similaires
Le micro-ordinateur.
Advertisements

Module Systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Les systèmes dexploitation en général (Tanenbaum 1.1 et 1.3)
Architecture de machines Le microprocesseur
Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle.
Systèmes, algorithmes et applications: Efficacité du parallélisme. Gaétan Hains LIFO, Université d'Orléans Janvier 2001.
Journée projet CGP2P Laboratoire ID / Projet APACHE (URM 5132) Equipe G3 Grappe & Grille de Grappe 3 Enseignant-Chercheurs 7 Doctorants DEAs.
A NETWORK-AWARE DISTRIBUTED STORAGE CACHE FOR DATA INTENSIVE ENVIRONMENTS Brian L. TIERNEY, Jason LEE, Brian CROWLEY, Mason HOLDING Computing Sciences.
Master de recherche informatique Université de Montpellier 2
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Types des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) III (Tanenbaum 2.3)
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
Architectures Matérielles
CLUSTERING Grappe d'ordinateurs.
PLAN du COURS Introduction Structure des Systèmes Informatiques
Chargé de recherches au CNRS
Objectif de l’exposé.
2.Les différentes architectures (Louis)
Jean-François Deverge, Sébastien Monnet
Informatique parallèle hautes performances
Parallélisation d’un Algorithme CNFT
Architecture de machines Principes généraux
Contrôle d ’Accès et Hauts Débits
Restriction daccès aux logiciels et aux matériels Problème de licence Nicolas CHABANOLES Matière : SRR Lieu: UFRIMA.
Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO.
Architecture des Ordinateurs
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
Pr. Alain Greiner (LIP6 - ASIM) Daniel Millot, Philippe Lalevee (INT)
Les systèmes multiprocesseurs Ph. Sèvre le 19/12/08.
©Frédéric Bastien 2006 Université de Montréal 1 LISATek LISATek pour concevoir des processeurs.
Franck Cappello CNRS, LRI, Université Paris-sud
Introduction Objectifs du cours Évaluation Références
Les systèmes multiplateformes
Architectures parallèles
Détection du meilleur format de compression pour une matrice creuse dans un environnement parallèle hétérogène Olfa HAMDI-LARBI.
Chap. 2 - Structure d’un ordinateur
Programmation non procédurale Le projet ECOLE 2000
Réunion de collaboration du 9-10 Juillet 2008 J.L. Béney 1 Logiciel At  Client-Serveur Tcp/ip de la station autonome  Influence de l'architecture matérielle.
L’adaptativité pour un solveur de l’équation de Vlasov
Informatique 1. Les applications de l’informatique
Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau.
MMAlpha Un outil pour la compilation sur silicium.
GDS – Paris, 13 Octobre 2006 Un outil de monitoring pour le déploiement dynamique de JuxMem Loïc Cudennec IRISA / INRIA, PARIS project-team Stage de M2RI.
Partage de mémoire à très grande échelle sur des réseaux pair-à-pair
Cours Architecture des Systèmes Informatiques
Algorithmes Parallèles et Systèmes Réparties
Présentation rapide d’
8INF856 Programmation sur architectures parallèles
André Seznec Caps Team IRISA/INRIA 1 Processeurs Hautes Performances Panorama et Nouveaux Défis André Seznec IRISA/INRIA
Plate-forme MIRAGE Méso-Informatique Répartie pour des Applications en Géophysique et Environnement.
Les systèmes mono-puce
Modèles et protocoles de cohérence des données en environnement volatil Grid Data Service IRISA (Rennes), LIP (Lyon) et LIP6 (Paris) Loïc Cudennec Superviseurs.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
D. E ZEGOUR Institut National d ’Informatique
PARALLÉLISATION AUTOMATIQUE D’ALGORITHMES
PROJET CAPS Compilation, Architecture, Parallélisme et Système.
Construction d'une hiérarchie mémoire faible consommation
1. Introduction Le traitement informatisé de données requiert un dialogue, une communication entre l’homme et la machine, et parfois, entre plusieurs.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Introduction aux solutions Microsoft pour le HPC.
Optimisation pour la Conception de Systèmes Embarqués
PROJET CAPS Compilation, Architecture, Processeurs Superscalaires et Spécialisées.
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
PROJET CAPS Compilation, Architecture, Parallélisme et Système.
Module calcul parallèle
Introduction aux architectures parallèles
Algorithmes parallèles
Systèmes à microprocesseur Les mémoires
Transcription de la présentation:

Modèle polyédrique: fondements et application à la parallélisation de programmes réguliers Tanguy Risset DIF 2001/2002

Présentation Tanguy Risset Plan CR INRIA Projet ReMaP/CompSys B. 311, Tel. 85 48, Tanguy.Risset@ens-lyon.fr Plan Introduction à la parallélisation automatique Modèle polyédrique: fondements Ordonnancement de boucles Parallélisation de programmes réguliers Application: compilation pour FPGA

Plan Introduction à la parallélisation automatique Historique Types de machines parallèles Modèles pour les machines parallèles Langage de programmation parallèle Un modèle simple: les architectures systoliques

Historique Classification des machines parallèles (Flynn) En fonction du contrôle de séquences d’instrutions Single Instruction Multiple Data : SIMD Multiple Instruction Multiple Data : MIMD En fonction de l’organisation de la mémoire Shared Memory: SM Distributed Memory: DM

Historique Classification des machines parallèles En fonction du réseau d’interconnexion réseaux d’interconnexion dynamique pour SM (crossbar switch, réseaux à base de bus, interconnection multi-étage) réseaux d’interconnexion statique pour DM (grille, arbre, hypercube) En fonction de l’organisation de la mémoire Autres types: réseaux de neuronnes,processor in memory (circuits reconfigurables)

Tendances

Tendances, suite Grappes de machines SMP Processeurs du commerce. PCs multiprocesseurs (Pentium,Alpha) Nœuds de machines parallèles (SP-3) Connexions de gros serveurs (Origin2K,SUN E10K). Processeurs du commerce. Logiciels standards performants. Linux, NT.

Ecart Processeur/Mémoire 60%/an. (2X/1.5an) 1 10 100 1000 DRAM CPU 1980 1981 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 1982 Ecart de Performance Processeur-Mémoire: (croissance 50% / an) Performance Temps “Loi de Moore” 9%/an. (2X/10ans)

Hiérarchies mémoires profondes Processeur Stockage tertiaire (Disque/ bande) Stockage second. (Disque) Contrôle Cache Niveau 2 (SRAM) Mémoire principale (DRAM) Mémoire distribuée Mémoire Distante Grappe Bus données Interne Cache Registres 10,000,000s (10s ms) 100,000 s (.1s ms) 10,000,000,000s (10s sec) 10,000,000 s (10s ms) Vitesse (ns): 1s 10s 100s Taille (octets): 100s Ks Ms Gs Ts

Plan Introduction à la parallélisation automatique Historique Types de machines parallèles Modèles pour les machines parallèles Langage de programmation parallèle Un modèle simple: les architectures systoliques

Modèle P-RAM P processeurs, une mémoire partagée (modèle SIMD-SM) Les processeurs communiquent à travers la mémoire partagée Chaque opération prend une unité de temps

Modèle BSP BSP: bulk synchronous parallelism (modèle MIMD-DM) Un ensemble de paires processeurs-mémoires L ’exécution consite en succession de super-step séparés par des phases de communications (synchronisation)

Modèle plus précis Modélisation des coûts de communication coût-envoi(L)=+L Modélisation de la hiérarchie mémoire Modélisation du matériel spécifique de la machine ALU spécifique registres

Limites de la modélisation En général, un modèle est soit peu réaliste, soit trop spécifique La modélisation ne permet pas de se passer d ’expérimentation pour évaluer un programme parallèle. Mais… elle aide à comprendre la structure du calcul parallèle elle permet de formaliser la notion de parallélisation

Plan Introduction à la parallélisation automatique Historique Types de machines parallèles Modèles pour les machines parallèles Langage de programmation parallèle Un modèle simple: les architectures systoliques

Langage de programmation parallèle Les langages sont à la charnière des modèles et des machines Le langage idéal serait: simple à programmer (et debugger!) efficace portable …….. Il n ’existe pas

Exprimer le parallélisme Parallélisme de données il exploite la régularité des données et applique en parallèle un même calcul à des données différentes Parallélisme de contrôle il consiste à faire des tâches différentes simultanément Parallélisme de flux technique du travail à la chaine chaque donnée subit une séquence de traitement réalisés en mode pipeline.

Programmer les machines Mémoire partagées espace d ’adressage commun mécanisme d’exclusion mutuelle Mémoire distibuée communication par passage de message librairie de communication

Les langages data-parallèles Fortran 77/90/95 + directives L’utilisateur spécifie une partie du parallélisme et la répartition des données Présenté comme la boite noire pour la parallélisation d’applications Bonnes performances pour les codes réguliers Quelques vraies applications parallélisées Beaucoup de ré-écriture de codes Outil important pour l’avenir du calcul numérique parallèle

Programmation data-parallèle Style de programmation caractérisé par: un flot de contrôle unique: un seul programme définit les opérations data-parallèles, un espace de nommage global: le programmeur voit une seule mémoire, des opérations parallèles: le parallélisme découle des opérations appliquées aux données distribuées sur les processeurs, des directives de compilation. Les détails de bas niveau (distribution effective des données, communications) sont transférés du programmeur au compilateur. But : s’écarter des spécificités de la machine et encourager une diffusion plus large du parallélisme.

Parallélisation d’applications numériques Algorithme séquentiel Distribution de données Algorithme parallèle programme HPF/OpenMP Bibliothèques de calcul séquentielles parallèles HPF/OpenMP programme F77 + MP Bibliothèques de communication F77/90 Etude perfs + monitoring

High Performance Fortran Issu d’un forum réunissant chercheurs, constructeurs et développeurs d ’applications. Basé sur Fortran 90 et destiné aux machines MIMD DM. Directives de placement des données sur les processeurs. Constructions data-parallèles (FORALL) et spécification du parallélisme (INDEPENDENT et PURE). Fonctions intrinsèques et bibliothèque standard. HPF-2 pour les applications irrégulières. Nombreux compilateurs et outils. Performances moyennes en général.

Alignement et distribution

Parallélisme implicite Langage fonctionnels Langages déclaratifs Parallélisation de programmes séquentiels

Parallélisation automatique: difficultés Analyse de dépendences Do i=1,N a=0 Do j=1,N a=a+B[i,j] C[i]=a DoAll i=1,N a[i]=0 Do j=1,N a[i]=a[i]+B[i,j] C[i]=a[i]

Parallélisation automatique: difficultés Pointeurs Contrôle dynamique Do i=1,N A[i]=… B[i]=A[C[i]] While C>0 Do ……….

Parallélisation automatique: difficultés Granularité Partitionnement des calculs en fonctions du rapport de coût calcul/communication Génération de code Compilation descommunications

Outils utilisant le modèle polyédrique Pico (HP Palo Alto) Compaan (U. Leiden, Berkeley) MMAlpha (INRIA Rennes)

Compaan 1.MatParser. MatParser is a sequential to parallel compiler. It extracts all available parallelism present in a Matlab description. The Matlab however needs to be confined to a particular type called Nested Loop Programs. MatParser uses a very advance parametric integer programming (PIP) technique to find all available parallelism in terms of the parameters of the original program. 2.DgParser DgParser converts a single assignment program, generated by MatParser, into a Polyhedral Reduced Dependence Graph (PRDG) representation. A PRDG representation is much more amenable to mathematical manipulation. 3.Panda. Panda transforms the PRDG description of an algorithm into a network of parallel running Processes, the desired Kahn Process Network. This tool uses the Polylib library extensively. Using Polylib, Panda can generate Ehrhart polynomials that give a symbolic expression for the number of integer points available in arbitrary polyhedra. The conversion from the PRDG to a Process Network happens in three steps; domain scanning, domain reconstruction and linearization. The process networks that are being created by Compaan need to be made accessible in some kind, such that it can be simulated and analyzed. We use the Ptolemy II framework, developed at UC Berkeley. We make a process network available in the PN-domain. Compaan generates the network description in MoML, which is a modeling markup language based on XML used in Ptolemy II for specifying interconnections of parameterized components. The process generation step in this case, generates the Ptolemy II actors in the PN-domain. A MoML description can be executed as an application using a command-line interface or as a visual rendition in the Ptolemy II block diagram editor Vergil. Two examples will show screen dumps of PN networks in Ptolemy II. Vergil screen dump of the process network of the QR algorithm. Vergil screen dumps of the process network of the Faddeev algorithm. The Ptolemy II framework enables us to combine the derived process network descriptions with predefined actors like sources to read Matrices and sinks to read and visualize Matrices. It also let us combine process networks with other domains, enabling the description and simulation of more complex systems.

MMAlpha Uniformisation Ordonnancement Dérivation RTL Alpha VHDL FPGA ASIC Uniformisation Ordonnancement Le flot de conception avec MMAlpha est décomposé en trois grande phase, ine phase d ’uniformisation une phase d ’ordonnancement et une phase de dérivation d ’une spécification de niveau transfert de registre. A partir d ’un programme Alpha tel que celui que je vous ai présenté, on génère une description du circuit réalisant le traitement en VHDL synthétisable. On peut ensuite finir la conception grâce aux outils commerciaux pour une cible VLSI ou FPGA Dérivation RTL

Références cours 1 Transparent et Exos sur Www.ens-lyon.fr/trisset P. Quinton et Y. Robert, Algorithmes et architectures systoliques, Masson, 1989. commence à dater, mais la partie algorithmique et les chapitres 11 et 12 sont toujours d'actualité. V. Kumar, A. Grama, A. Gupta et G. Karypis, Introduction to Parallel Computing, Benjamin Cummings, 1994. Bonne introduction générale

Plan Introduction à la parallélisation automatique Historique Types de machines parallèles Modèles pour les machines parallèles Langage de programmation parallèle Un modèle simple: les architectures systoliques