Chargé de recherches au CNRS

Slides:



Advertisements
Présentations similaires
Yassine Lakhnech Prof. UJF Verimag
Advertisements

E-learning Evolutif Albarelli Corinne Behem Patrice Guillot Jérôme
Placement de Motifs Architecture Application Contraintes: - Charge
Tests et Validation du logiciel
Architecture de machines Le microprocesseur
Un exemple de système EDA d'index supérieur distillation réactive avec réactions chimiques instantanément équilibrées Dr. Karim Alloula (ingénieur informatique.
Calculs de complexité d'algorithmes
Présentation des programmes de terminale STG Juin 2006.
Compilation avancée: analyse de programmes, optimisations de code.
Algorithmique du Network Calculus Participants : Laurent Jouhet et Eric Thierry Le Network CalculusLes objetsLes opérations Etat de lartObjectifs Premiers.
Objectif de l’exposé.
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Piecewise Affine Registration of Biological Images
Bibliothèques Scientifiques
Synthèse Stage Algorithmique Académie de la Réunion.
Informatique parallèle hautes performances
Modèle polyédrique: fondements et application à la parallélisation de programmes réguliers Tanguy Risset DIF 2001/2002.
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Introduction : Compilation et Traduction
Architecture de machines Principes généraux
Chapitre II.Rappels mathématiques et complexité
CALCUL PARALLELE PRODUIT : MATRICE – VECTEUR 10 pages Exposé par :
Animation de solides en contact par modèle physique
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Initiation à la programmation et algorithmique
Introduction : Compilation et Traduction
Démarche de résolution de problèmes
Chaire UNESCO - Calcul numérique intensif
ALGORITHMIQUE en classe de seconde
Structure de la famille de DSP Motorola 56300
Architecture des Ordinateurs
Optimisation et Complexité
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Systèmes Pipeline – opérations multicycles Nous avons vu jusquà maintenant comment faire un.
Systèmes Superscalaires et VLIW
Présentation du mémoire
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Détection du meilleur format de compression pour une matrice creuse dans un environnement parallèle hétérogène Olfa HAMDI-LARBI.
1 Protection des arbres multicast avec une forêt duale Mohand Yazid SAIDI Bernard COUSIN Miklós MOLNÁR 15 Février 2006.
Procédures et fonctions
L’adaptativité pour un solveur de l’équation de Vlasov
MAXIMISER les RESULTATS
Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau.
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
Algorithmes Parallèles et Systèmes Réparties
PROJET CAPS Compilation, Architecture, Processeurs Superscalaires et Spécialisées.
Amélioration de la simulation stochastique
8INF856 Programmation sur architectures parallèles
TD0 - Rappels. Acquis du programme 1 ère année Analyser et modéliser : un problème, une situation ; Imaginer et concevoir : une solution algorithmique.
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes IRISA - Projet Solidor Antoine COLIN.
Journées d'études Faible Tension Faible Consommation 14, 15, 16 mai Gwenolé CORRE, Nathalie JULIEN, Eric SENN, Eric MARTIN LESTER, Université de.
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
Les Machines RAM.
Modèles Mathématiques et représentation discrètes pour la description des images couleur Luc Brun.
PROJET CAPS Compilation, Architecture, Parallélisme et Système.
Université Pierre et Marie Curie Laboratoire d’Informatique de Paris VI Département ASIM Analyse et résultats sur le dimensionnement des mémoires pour.
Construction d'une hiérarchie mémoire faible consommation
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Introduction et Généralités sur l’Algorithmique
Optimisation pour la Conception de Systèmes Embarqués
PROJET CAPS Compilation, Architecture, Processeurs Superscalaires et Spécialisées.
- 5 - Optimisation linéaire et non-linéaire
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.
L T I Laboratoire de Téléinformatique 2 Projet de semestre Parseur XML basé sur la DTD : Buts –Utiliser la grammaire définissant un type de fichiers XML.
M1Info-ASE 1 Pipeline logiciel. M1Info-ASE 2 Pipeline logiciel Le déroulage de boucle a ses limites Approcher des perf optimales  facteurs de déroulage.
Département Informatique L’optimisation Laurent JEANPIERRE IUT de CAEN – Campus 3.
Transcription de la présentation:

Chargé de recherches au CNRS Compilation avancée: parallélisation et transformations de programmes. A suivre de préférence après (ou en parallèle avec) les cours d’Yves Robert, Tanguy Risset et Paul Feautrier Alain Darte Chargé de recherches au CNRS Équipe Compsys LIP, ENS-Lyon

Plan Introduction. Pipeline logiciel. Transformations de boucles. Problématique, questions. Quelques thèmes abordés. Outils mathématiques rencontrés. Organisation du cours. Pipeline logiciel. Transformations de boucles. Équations récurrentes uniformes.

Problématique Comprendre ce qui peut se faire automatiquement dans le domaine de la compilation (souvent avec des problèmes liés à la mémoire et au parallélisme): Formalisation des problèmes (modèle, fonction objective). Étude des problèmes (NP-complétude?, algorithmes). Étude des modèles (limites, contre-exemples). Établir des liens entre différents problèmes/théories. Applications: Parallélisation automatique (et compilation de HPF). Optimisations avancées en compilation “traditionnelle”. Compilation de circuits (ex: compilateur PICO des HP Labs). 18 systems on TOP 500 list for year 2000capable of teraflop or more peak 7 yield sustained teraflop performance on benchmarks

Évolution de la thématique Équations récurrentes uniformes Réseaux systoliques Vectorisation de boucles Parallélisation automatique Transformations de boucles High Performance Fortran 18 systems on TOP 500 list for year 2000capable of teraflop or more peak 7 yield sustained teraflop performance on benchmarks Langages de haut niveau (Matlab, F90) Parallélisme au niveau des instructions Compilation de circuits spécialisés

Sujets abordés Rappels d’ordonnancement « de base »: graphes de tâches acycliques, contraintes de ressources, “deadlines”. Ordonnancement cyclique et pipeline logiciel: liens avec le retiming et l’algorithme “out-of-kilter”. Fonctionnalités des processeurs modernes: registres rotatifs, de prédication, avec spéculation. Passage en et hors SSA, allocation de registres. Compilation-parallélisation; premier pas: transformations de boucles. Algorithmes d’Allen et Kennedy, de Lamport. Transformation unimodulaires. Réécriture de code. Systèmes d’équations récurrentes uniformes: calculabilité, ordonnancement, liens avec la parallélisation. Synthèse de circuits: méthode systolique de base et extensions. Localité et allocation mémoire: fusion de boucles, contraction de tableaux, repliement mémoire. 18 systems on TOP 500 list for year 2000capable of teraflop or more peak 7 yield sustained teraflop performance on benchmarks

Outils mathématiques Modélisation: Analyse: Systèmes d’équations récurrentes uniformes. Graphes de toutes sortes (control-flow, de dominance, d’ínterférence, de dépendances, etc.). Polyèdres, réseaux (« lattices »). Analyse: NP-complétude. Algorithmes de graphes. Techniques d’ordonnancement. Algèbre linéaire. Formes d’Hermite et de Smith. Calculs sur polyèdres, programmation linéaire. 18 systems on TOP 500 list for year 2000capable of teraflop or more peak 7 yield sustained teraflop performance on benchmarks

Organisation du cours Choix des thèmes du cours en fonction de ce que vous savez déjà (Mim2 notamment) et du nombre de participants. Une grosse moitié de cours « magistraux » pour donner les bases, présenter quelques techniques en détails, et introduire quelques problèmes. Une seconde partie de découverte de sujets plus pointus par lecture et présentation d’articles. Évaluation: 1 devoir à la maison, 1 examen final éventuel (mais peu probable), attitude en cours, rapport + exposé. 18 systems on TOP 500 list for year 2000capable of teraflop or more peak 7 yield sustained teraflop performance on benchmarks

Plan Introduction. Pipeline logiciel: Transformations de boucles. exemple du LANai 3.0 Transformations de boucles. Équations récurrentes uniformes. Mention remaining parts of talk for first outline.

Qu’est-ce que le pipeline logiciel? Exemple du LANai 3.0: une unité séquentielle (pipelinée) effectuant loads, stores, branches, moves et opérations arithmétiques. latence apparente: 1 cycle sauf pour le load et les branches (2 cycles). 1 seul type de “control hazard”: r1 = load (toto) r1 = r2 + 1  priorité pour le move entre registres. Mention remaining parts of talk for first outline.

Exemple d’ordonnancement de code Code initial L400: ld[r26]  r27 nop add r27, 6740  r26 ld 0x1A54[r27]  r27 sub.f r27, r25  r0 bne L400 L399: Temps 8+8n Code compacté L400: ld[r26]  r27 nop ld 0x1A54[r27]  r27 add r27, 6740  r26 sub.f r27, r25  r0 bne L400 L399: Temps 7+7n ! Code “sofware pipeliné” ld[r26], r27 nop add r27, 6740  r26 L400: ld 0x1A54[r27]  r27 ld[26]  r27 sub.f r27, r25  r0 bne L400 L399: Temps 8+5n !!! Mention remaining parts of talk for first outline.

Plan Introduction. Pipeline logiciel. Transformations de boucles. Détection du parallélisme. Fusion, décalage et mémoire. Équations récurrentes uniformes. Allocation de registres. Mention remaining parts of talk for first outline.

Détection de parallélisme Quelles sont les transformations valides? Comment représenter les contraintes? Analyse et représentation des dépendances  voir le cours du DIF de Paul Feautrier. Quel parallélisme peut-on espérer? Algorithmes de plus en plus complexes en fonction des représentations des dépendances (Allen-Callahan-Kennedy, Lamport, Wolf-Lam, Feautrier, ...)  suite du cours d’Yves Robert en Mim2. Optimalité, dans quel sens? Complexité? Généralité des méthodes? Extensibilité? Mention remaining parts of talk for first outline.

Exemple, Allen-Callahan-Kennedy doseq k = 1, n a(k,k) = sqrt(a(k,k)) dopar i = k+1, n a(i,k) = a(i,k)/a(k,k) enddo dopar j = k+1, i a(i,j) = a(i,j) – a(i,k)*a(j,k) do k = 1, n a(k,k) = sqrt(a(k,k)) do i = k+1, n a(i,k) = a(i,k)/a(k,k) do j = k+1, i a(i,j) = a(i,j) – a(i,k)*a(j,k) enddo doseq k = 1, n a(k,k) = sqrt(a(k,k)) doseq i = k+1, n a(i,k) = a(i,k)/a(k,k) dopar j = k+1, i a(i,j) = a(i,j) – a(i,k)*a(j,k) enddo doseq k = 1, n a(k,k) = sqrt(a(k,k)) do i = k+1, n a(i,k) = a(i,k)/a(k,k) do j = k+1, i a(i,j) = a(i,j) – a(i,k)*a(j,k) enddo i j Mention remaining parts of talk for first outline. f,  f, , 2 f, a, o, 1 f,  f, , 2

Allen-Callahan-Kennedy (suite) Dépendances: par niveau. Transformations de boucles: marquage (doseq/dopar) et distribution. Forces: optimal pour les niveaux de dépendances: pourquoi? souvent suffisant en pratique. Faiblesses: insuffisant pour une description des dépendances plus fine, insuffisant pour appliquer plus de transformations. Exemple: toutes les transformations unimodulaires, le décalage d’instructions et la fusion de boucles. Mention remaining parts of talk for first outline.

Autres transformations (exemples) do i = 1,n do j = 1,n a(i,j) = a(i,j-1)+a(i-1,j-1) enddo do j = 1,n dopar i = 1,n a(i,j) = a(i,j-1)+a(i-1,j-1) enddo do i = 1,n+1 dopar j = 1,n+1 if (i  1) & (j  1) b(i-1,j-1) = a(i-1,j-1) + a(i-1,j-2) if (i  n) & (j  n) a(i,j) = b(i-1,j-1) enddo do i = 1,n dopar j = 1,n a(i,j) = b(i-1,j-1) enddo b(i,j) = a(i,j)+a(i,j-1) do i = 1,n do j = 1,n a(i,j) = b(i-1,j-1) b(i,j) = a(i,j)+a(i,j-1) enddo Mention remaining parts of talk for first outline.

Un exemple de problème de fusion pour la mémoire: la contraction de tableaux But: transformer un tableau temporaire en scalaire. application: Matlab, Fortran90, etc. a = d + 1 b = a/2 c(1..n) = b(2..n+1) + a(1..n) do i = 1,n a(i) = d(i) + 1 enddo b(i) = a(i)/2 c(i) = b(i+1) + a(i) prologue do i = 2,n a(i) = d(i) + 1 b = a(i)/2 c(i-1) = b + a(i-1) enddo épilogue prologue do i = 2,n a(i) = d(i) + 1 b(i) = a(i)/2 c(i-1) = b(i) + a(i-1) enddo épilogue do i = 1,n a = d(i) + 1 b(i) = a/2 c(i) = b(i+1) + a enddo do i = 1,n a(i) = d(i) + 1 b(i) = a(i)/2 c(i) = b(i+1) + a(i) enddo do i = 1,n a = d(i) + 1 b(i) = a/2 c(i) = b(i+1) + a enddo Mention remaining parts of talk for first outline.

Plan Introduction. Pipeline logiciel. Transformations de boucles. Équations récurrentes uniformes. Principes. Exemple. Résultats et intérêts du modèle. Mention remaining parts of talk for first outline.

Équations récurrentes uniformes Pour 1 i,j,k  n a(i,j,k) = b(i,j-1,k) + a(i,j,k-1) b(i,j,k) = a(i-1,j,k) + b(i,j,k+1) 1 -1 1 1 Description à assignation unique. Dépendances uniformes. Principe de calcul: membre droit d’abord. Mention remaining parts of talk for first outline. Dépendances explicites. Ordre d’exécution implicite. Mémoire dépliée.

SUREs: principes généraux Analyse des unions de cycles de poids total nul: calculabilité du système. degré de parallélisme du système. Analyse “duale” (en termes de programmation linéaire): ordonnancement du système. Attribution d’une sémantique temps + espace: description d’une architecture systolique lorsque le “temps” est mono-dimensionnel. pas de mémoire globale mais des temporisations. Mention remaining parts of talk for first outline.

SURE, exemple Pour 1 i,j,k  n a(i,j,k) = b(i,j-1,k) + a(i,j,k-1) b(i,j,k) = a(i-1,j,k) + b(i,j,k+1) do i = 1,n do k = n,1,-1 dopar j = 1,n b(i,j,k) = a(i-1,j,k) + b(i,j,k+1) enddo do k = 1,n a(i,j,k) = b(i,j-1,k) + a(i,j,k-1) chemin de dépendance en N*N 1 -1 Mention remaining parts of talk for first outline.

Pourquoi ce modèle? Avantages: Inconvénients: Modèle simplifié, plus simple à analyser. Flot de calcul explicite. Correspondance calcul-mémoire. Dépendances uniformes  “délais” constants. Description “propre” à la fois proche de l’algorithme et de l’architecture. Possibilités de transformations dans le même formalisme. Inconvénients: Langage correspondant (Alpha) restrictif. Langage loin des habitudes des programmeurs. Mention remaining parts of talk for first outline.

Boucles, polyèdres, réseaux j 18 systems on TOP 500 list for year 2000capable of teraflop or more peak 7 yield sustained teraflop performance on benchmarks i

Outils mathématiques: exemple des transformations de boucles. Bornes de boucles  Polyèdres. Points entiers (itérations)  Réseaux, sous-réseaux. Transformations de boucles  Changement de base. Représentations des dépendances  Polyèdres. Allocation des données  Algèbre linéaire, réseaux. Analyse et génération des communications en HPF  Polyèdres + Presburger. Optimisations  Programmation linéaire. ... 18 systems on TOP 500 list for year 2000capable of teraflop or more peak 7 yield sustained teraflop performance on benchmarks