1 / 32

Modèle polyédrique: fondements et application à la parallélisation de programmes réguliers

Modèle polyédrique: fondements et application à la parallélisation de programmes réguliers. Tanguy Risset DIF 2001/2002. Pr é sentation. Tanguy Risset CR INRIA Projet ReMaP/CompSys B. 311, Tel. 85 48, Tanguy.Risset@ens-lyon.fr Plan Introduction à la parallélisation automatique

bin
Télécharger la présentation

Modèle polyédrique: fondements et application à la parallélisation de programmes réguliers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Présentation • Tanguy Risset • 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

  3. 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

  4. 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

  5. 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)

  6. Tendances

  7. Tendances, suite • Grappes de machines SMP • 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.

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

  9. 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 Distante Grappe Mémoire distribuée Cache Interne Bus données Registres 10,000,000,000s (10s sec) 10,000,000 s (10s ms) 10,000,000s (10s ms) 100,000 s (.1s ms) 1s Vitesse (ns): 10s 100s 100s Taille (octets): Ks Ms Gs Ts

  10. 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

  11. 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

  12. 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)

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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.

  18. 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

  19. 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

  20. 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.

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

  22. 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.

  23. Alignement et distribution

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

  25. 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]

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

  27. 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

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

  29. Compaan

  30. FPGA ASIC Alpha VHDL MMAlpha Uniformisation Ordonnancement Dérivation RTL

  31. 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

  32. 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

More Related