Techniques d ordonnancement pour les SoC



Documents pareils
Annexe 6. Notions d ordonnancement.

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

Chapitre 5 : Flot maximal dans un graphe

Programmation linéaire

Définitions. Numéro à préciser. (Durée : )

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

ADÉQUATION ALGORITHME-ARCHITECTURE APPLIQUÉE AUX CIRCUITS RECONFIGURABLES

Sanity Check. bgcolor mgcolor fgcolor

Résolution de systèmes linéaires par des méthodes directes

Ordonnancement temps réel

Conception des systèmes répartis

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

MABioVis. Bio-informatique et la

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Les diagrammes de modélisation

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Problèmes d ordonnancement dans les systèmes de production. Journée Automatique et Optimisation Université de Paris Mars 2003

Rappels sur les suites - Algorithme

Jean-Philippe Préaux

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Organigramme / Algorigramme Dossier élève 1 SI

Initiation au HPC - Généralités

Performances et optimisations

Programmation linéaire

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Mémoire de Fin d Etudes

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

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Parallélisme et Répartition

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

La classification automatique de données quantitatives

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

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

Métriques de performance pour les algorithmes et programmes parallèles

Architecture des Systèmes d Information Architecture des Systèmes d Information

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Cours de Master Recherche

Programmation Linéaire - Cours 1

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

Quelques Algorithmes simples

Théorie et codage de l information

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Les algorithmes de base du graphisme

Polynômes à plusieurs variables. Résultant

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Étude des Corrélations entre Paramètres Statiques et Dynamiques des Convertisseurs Analogique-Numérique en vue d optimiser leur Flot de Test

Résolution d équations non linéaires

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Contrainte de flot pour RCPSP avec temps de transfert

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

Big Data et Graphes : Quelques pistes de recherche

THÈSE. En vue de l obtention du DOCTORAT DE L UNIVERSITÉ DE TOULOUSE. Touria CHAFQANE BEN RAHHOU

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Cours d analyse numérique SMI-S4

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

ASR1 TD7 : Un microprocesseur RISC 16 bits

Model checking temporisé

Big Data et Graphes : Quelques pistes de recherche

Cours de Génie Logiciel

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing


Intérêt du découpage en sous-bandes pour l analyse spectrale

MEAD : temps réel et tolérance aux pannes pour CORBA

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Modélisation et Simulation

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Fonctions de plusieurs variables

Efficacité énergétique des réseaux de cœur et d accès


Ordonnancement robuste et décision dans l'incertain

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Le Guide Pratique des Processus Métiers

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

Programmes des classes préparatoires aux Grandes Ecoles


Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

WHITEPAPER. Quatre indices pour identifier une intégration ERP inefficace

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Plus courts chemins, programmation dynamique

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

MIS 102 Initiation à l Informatique

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Optimisation Discrète

Calcul différentiel. Chapitre Différentiabilité

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

4.2 Unités d enseignement du M1

FIMA, 7 juillet 2005

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

Problème 1 : applications du plan affine

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Transcription:

Techniques d ordonnancement pour les SoC Pierre Boulet équipe WEST Pierre.Boulet@lifl.fr Ordonnancement DEA informatique Lille p. 1/104

Plan Ordonnancement de tâches Placement sur SoC Ordonnancement de nids de boucles Cas du traitement de signal systématique Ordonnancement DEA informatique Lille p. 2/104

Ordonnancement de tâches Ordonnancement DEA informatique Lille p. 3/104

Le problème dans un contexte informatique ordonnancer des tâches sous-programmes processus fils d exécution affecter à chaque tâche une date d exécution (un processeur) avec contraintes de ressources ou non problème fondamental gestion efficace de la concurrence sur les architectures modernes Ordonnancement DEA informatique Lille p. 4/104

Références Computer and Job-Shop Scheduling Theory par Coffman chez John Willey & Sons, 1976 Task Scheduling in Parallel and Distributed Systems par El-Rewini, Lewis et Ali chez Prentice Hall, 1994 Scheduling Theory and Its Applications coordonné par Chrétienne, Coffman, Lenstra et Liu chez John Willey & Sons, 1995 Scheduling and Automatic Parallelization par Darte, Robert et Vivien chez Birkhäuser, 2000 Ordonnancement DEA informatique Lille p. 5/104

Exemple : programme séquentiel DO i = 1, n T^ache T i,i : x(i) = b(i) / a(i,i) DO j = i+1, n T^ache T i,j ENDDO : b(j) = b(j) - a(j,i) * x(i) ENDDO Résolution d un système triangulaire Ax = b A matrice de taille n n b et x vecteurs de taille n ordre séquentiel (< s ) des tâches : T 1,1 < s T 1,2 < s... < s T 1,n < s T 2,2 < s... < s T 2,n < s T 3,3 < s... < s T n,n Ordonnancement DEA informatique Lille p. 6/104

Exemple : graphe de tâches DO i = 1, n T^ache T i,i : x(i) = b(i) / a(i,i) DO j = i+1, n T^ache T i,j ENDDO : b(j) = b(j) - a(j,i) * x(i) ENDDO quelles tâches peuvent être calculées indépendamment? dépendances de données identifier les variables communes T i,i produit x(i) utilisé par T i,j, i < j n T i,j produit b(j) utilisé par T i+1,j Ordonnancement DEA informatique Lille p. 7/104

Dépendances exprimer la concurrence en respectant la sémantique du programme deux tâches sont dépendantes ( ) si elles accèdent à une même variable un des accès est une écriture conditions de Bernstein T T ou ou Lectures(T ) Ecritures(T ) Ecritures(T ) Lectures(T ) Ecritures(T ) Ecritures(T ) Ordonnancement DEA informatique Lille p. 8/104

Graphe de dépendances en cas de dépendance, respect de l ordre séquentiel construction d un ordre partiel ( ) (< s ) + clôture transitive de l intersection de la relation de dépendance et de l ordre séquentiel représentation par un DAG (graphe direct acyclique) omission habituelle des arcs de transitivité Ordonnancement DEA informatique Lille p. 9/104

Ord. sans communications définition du problème Entrée : graphe de tâches G = (V, E, w) nombre de sommets ( V ) fini arêtes (E) = contraintes de précédence sommets étiquetés par temps de calcul de la tâche (w : V N) Sortie : affectation (σ : V N) de dates de début d exécution pour chaque sommet respectant les contraintes de dépendances σ(u) + w(u) σ(v) pour tout (u, v) E Ordonnancement DEA informatique Lille p. 10/104

Ord. sans communications contraintes nombre de processeurs limité ou non un processeur n exécute qu une tâche à la fois alloc(t ) = alloc(t ) σ(t ) + w(t ) σ(t ) ou σ(t ) + w(t ) σ(t ) objectif : minimier la latence temps total d exécution L(σ) = max v V (σ(v) + w(v)) min v V σ(v) Ordonnancement DEA informatique Lille p. 11/104

Accélération définition : s(σ, p) = Seq L(σ, p) avec Seq = v V w(v) propriétés s(σ, p) p Seq = L opt (1)... L opt (p) L opt (p + 1)... L opt ( ) Ordonnancement DEA informatique Lille p. 12/104

Sans limite de ressources nombre de processeurs illimité définitions PRED(v) = prédécesseurs immédiats de v SUCC(v) = successeurs immédiats de v v est une entrée du DAG ssi PRED(v) = v est une sortie du DAG ssi SUCC(v) = niveau haut de v, nh(v) = plus grand poids d un chemin d une entrée à v (sans compter v) facile niveau bas de v, nb(v) = plus grand poids d un chemin de v à une sortie (en incluant v) Ordonnancement DEA informatique Lille p. 13/104

Ordonnancement optimal définition : σ free (v) = nh(v), v V ordonnancement au plus tôt théorème : σ free est optimal corrolaire : on peut trouver un ordonnancement optimal en temps O( V + E ) pas de délais de communication nombre de processeurs illimité remarque : σ free n est pas le seul ordonnancement optimal ordonnancement au plus tard Ordonnancement DEA informatique Lille p. 14/104

Exemple DO i = 1, n T^ache T i,i : x(i) = b(i) / a(i,i) DO j = i+1, n T^ache T i,j ENDDO ENDDO temps de calcul : w(t i,i ) = 2 w(t i,j ) = 1, i < j n L(σ free, ) = 3n 1 : b(j) = b(j) - a(j,i) * x(i) Ordonnancement DEA informatique Lille p. 15/104

Avec p processeurs mauvaise nouvelle NP-complet bonne nouvelle heuristiques garanties (au plus 2 optimal) heuristiques de liste difficile Ordonnancement DEA informatique Lille p. 16/104

Heuristiques de liste définition heuristiques gloutonnes à chaque pas de temps, démarrer le plus de tâches possible plusieurs choix possibles priorités tâche libre à l instant t v FREE(σ, t) σ(v) t et u PRED(v), σ(u) + w(u) t ordonnancement de liste aucun processeur n est laissé délibérément inactif t, FREE(σ, t) = r 1 et q processeurs disponibles démarrer min(r, q) tâches Ordonnancement DEA informatique Lille p. 17/104

Heuristiques de liste structures de données graphe G tableau A : # de prédécesseurs de chaque tâche tas Q : tâches prêtes valuées par priorité tas P : processeurs valués par date de fin d exécution pseudo-code Q=entrées(G); P =vide; t=-1; tant_que Q<>vide faire t =événement_suivant(p,t); Mise_à_jour(t,A,Q); Allocation(t,P,Q); t=t ; fin_tant_que complexité = O( V log V + E ) implémentation Ordonnancement DEA informatique Lille p. 18/104

Exemple DO i = 1, n T^ache T i,i : x(i) = b(i) / a(i,i) DO j = i+1, n T^ache T i,j ENDDO ENDDO temps de calcul : w(t i,i ) = 2 : b(j) = b(j) - a(j,i) * x(i) w(t i,j ) = 1, i < j n priorité = niveau bas n = 6, p = 2, L(σ chemin critique, p) = 17 Ordonnancement DEA informatique Lille p. 19/104

Ord. avec communications complique énormément les choses problème NP-complet même sans contrainte de ressources modélisation habituelle comm(t, T ) = O si alloc(t ) = alloc(t ) c(t, T ) sinon coût de communication indépendant des processeurs de plus en plus réaliste contraintes sur l ordonnancement e = (u, v) E, σ(u) + w(u) σ(v) si alloc(u) = alloc(v) σ(u) + w(u) + c(u, v) σ(v) sinon Ordonnancement DEA informatique Lille p. 20/104

Sans limite de ressources heuristique de Hanen et Munier garantie à au plus 4 3 de l optimal programmation linéaire relaxation en rationnels (polynomial) d un programme en entiers (NP-difficile) basée sur l idée de successeur favori l unique successeur de T vérifiant σ(t ) < σ(t ) + w(t ) + c(t, T ) Ordonnancement DEA informatique Lille p. 21/104

Avec p processeurs bien évidemment NP-complet deux classes d heuristiques (la plupart non garanties) heuristiques de liste heuristiques de regroupement (clustering) Ordonnancement DEA informatique Lille p. 22/104

Heuristiques de liste chemin critique naïf priorité = niveau bas calculé en supposant communication systématique chemin critique amélioré allouer une tâche libre au processeur qui permet son exécution le plus tôt en tenant compte des décisions déjà prises on peut allouer à un processeur non libre Ordonnancement DEA informatique Lille p. 23/104

Exemple DO i = 1, n T^ache T i,i : x(i) = b(i) / a(i,i) DO j = i+1, n T^ache T i,j ENDDO : b(j) = b(j) - a(j,i) * x(i) ENDDO temps de calcul : w(t i,i ) = 2, w(t i,j ) = 1, i < j n temps de communication uniformes = 4 n = 6, p = 2, L(σ chemin critique amélioré, p) = 28 moins bon que tous sur le même processeur! (Seq = 26) Ordonnancement DEA informatique Lille p. 24/104

Heuristiques de regroupement deux étapes regrouper des tâches allouer ces groupes et décider de l ordonnancement final regroupement toujours itératif faire diminuer le temps parallèle estimé plusieurs stratégies selon les plus longs chemins annuler les communications coûteuses une arête à la fois sur le plus long chemin courant heuristiques aussi pour la deuxième phase peu d arguments pour choisir :-( Ordonnancement DEA informatique Lille p. 25/104

Récapitulation graphe de dépendance ordonnancement sans communications sans limite de ressources algorithme polynomial optimal à p processeurs NP-complet, heuristiques garanties à 2 optimal ordonnancement avec communications sans limite de ressources NP-complet, heuristique garantie à 4 3 optimal à p processeurs NP-complet, heuristiques non garanties Ordonnancement DEA informatique Lille p. 26/104

Placement sur SoC Ordonnancement DEA informatique Lille p. 27/104

Contexte placement et ordonnancement d applications de contrôle/commande ou de traitement de signal contraintes temps réel sur architectures hétérogènes, distribuées, embarquées méthodologie Adéquation Algorithme Architecture (AAA) développée à l INRIA Rocquencourt, projet Sosso, puis action Ostre implémentée dans le logiciel SynDEx références web AAA : http://www-rocq.inria.fr/syndex/ thèse de Thierry Grandpierre : http://www.inria.fr/rrrt/tu-0666.html Ordonnancement DEA informatique Lille p. 28/104

Démarche graphe de description de l architecture graphe de description de l algorithme flot de données placement et ordonnancement automatique heuristique de liste ordonnancement statique, non préemptif placement des calculs placement des données placement des communications objectif = minimiser la latence génération d un exécutif Ordonnancement DEA informatique Lille p. 29/104

Description de l architecture objectif permettre l ordonnancement granularité adaptée représenter fidèlement le comportement de l architecture prendre en compte les moyens de communications exprimer tout le parallélisme potentiel modéliser finement les arbitrages des ressources partagées graphe orienté sommets = machines à états finis Ordonnancement DEA informatique Lille p. 30/104

Modèle d architecture cinq types de sommets opérateurs mémoires RAM (registres, RAM partagées ou non) contenant données, programmes ou les deux memoires SAM (FIFOs) bus (bus/mux/demux/arbitres) communicateurs (DMA) liens représentent transferts possibles de données orientés Ordonnancement DEA informatique Lille p. 31/104

Principes de modélisation minimiser nombre de sommets encapsuler séquence de bux/mux/demux/arbitres dans un seul sommet encapsuler arbitre dans sommet RAM ou SAM règles chaque opérateur connecté à une RAM programme et au moins une RAM données chaque RAM partagée ou SAM connectée à au moins deux sommets opérateurs ou communicateurs pas de connexion directe entre RAM/SAM insertion de bus/arbitre là où nécessaire Ordonnancement DEA informatique Lille p. 32/104

Communicateurs séquenceur autonome d opérations de transfert de données nécessite connexion à une RAM contenant ces opérations modélise un canal de DMA + sa programmation par le processeur pas d équivalent matériel direct permet ordonnancement communications en concurrence avec calculs Ordonnancement DEA informatique Lille p. 33/104

Exemples simples d architectures architectures monoprocesseur générales Von Neumann Harvard DSP pouvant accéder simultanément à deux opérandes et une opération architectures multiprocesseurs régulières SIMD, MIMD à mémoire partagée/distribuée Ordonnancement DEA informatique Lille p. 34/104

à un communicateur et d autre part à l opérateur. Le Bus/Mux/Demux permet de sélectionner laquelle des SAM est accédée par l opérateur. Les deux ports de mémoires externes permettent à l opérateur et aux communicateurs d accéder aux deux mémoires externes, il y a donc arbitrage que nous modélisons par deux sommets Bus/Mux/Demux/Arbitre ( et ) entre les RAM externes, l opérateur et les communicateurs. Les Bus/Mux/Demux à modélise la capacité, pour chaque communicateur, d accéder soit à une SAM, soit à la mémoire externe. DSP TMS320C40 b10 C1 b1 S1 operateur b7 b8 R0 R1 b9 C2 C3 b2 b3 S2 S3 C4 b4 S4 C5 b5 S5 C6 b6 S6 b11 R loc R0,R1 : mémoires RAM internes partagées R loc,r glob: mémoires RAM externes partagées C0 à C6 : communicateurs S1 à S6 : mémoires SAM b1 à b8, b10 : bus/mux/demux b9, b11, b12 : bus/mux/demux /arbitre b12 R glob Ordonnancement DEA informatique Lille p. 35/104

Architecture quadri TMS320C40 1.3. EXEMPLES DE MODÉLISATIONS DE MACHINES 45 TMS320C40-1 TMS320C40-2 C1 S1 C1 operateur R0 R1 C2 C3 C4 S2 S3 S4 S2 S3 S4 C2 C3 C4 R0 R1 operateur C5 S5 S5 C5 C6 C6 R loc R loc S6 R glob S6 R loc R loc C6 C6 C5 S5 S5 C5 operateur R1 R0 C4 C3 C2 S4 S3 S2 S4 S3 S2 C4 C3 C2 R1 R0 operateur C1 C1 S1 TMS320C40-4 TMS320C40-3 FIG. 1.39: Modélisation d une architecture composée de 4 TMS320C40 Ordonnancement DEA informatique Lille p. 36/104

Caractérisation étiquetage des sommets par indications de capacités sommet caractéristiques opérateur liste opérations et durées bande passante d accès aux mémoires communicateur liste d opérations bande passante d accès aux mémoires mémoire capacité et bande passante max RAM partagée politique d arbitrage mesures ou estimations Ordonnancement DEA informatique Lille p. 37/104

Modélisation de l algorithme graphe de flot de données sommets = opérations atomiques arcs = dépendances de données répétition infinie implicite (flot) sommets retards pour dépendances inter-répétitions graphe acyclique sauf présence de retards Ordonnancement DEA informatique Lille p. 38/104

Factorisation regroupement d opérations répétitives moins puissant qu Array-OL pour le SPMD exprime aussi des dépendances inter-répétitions utilise des sommets particuliers D (Diffusion) : diffusion à toutes les répétitions F (Fork) : découpage J (Join) : regroupement I (Iterate) : dépendance inter-répétition nécessite une valeur initiale exemple : produit matrice-vecteur Ordonnancement DEA informatique Lille p. 39/104

Autres caractéristiques flot infini = factorisation implicite E = capteurs correspond à F S = actionneur correspond à J $ = retard correspond à I sommets constantes paramètres calculés une seule fois conditionnelles arcs de conditionnement destination exécutée seulement si entrée vraie et autres données présentes sommet merge pour fusionner résultats d opérations exclusives Ordonnancement DEA informatique Lille p. 40/104

Caractérisation pour chaque opération durée d exécution sur chaque opérateur qui peut l exécuter taille mémoire programme nécessaire taille mémoire données nécessaire pour chaque dépendance type de données taille Ordonnancement DEA informatique Lille p. 41/104

Modèle d implantation représente une implantation particulière d une application sur une architecture résultat de l heuristique de placement construit par raffinements successifs étiquetage du graphe d algorithme Ordonnancement DEA informatique Lille p. 42/104

Étape préliminaire : routage construction des chemins de communication entre les opérateurs suite de sommets bus, RAM, SAM et communicateurs deux types iso-opérateur une par RAM connectée à l opérateur inter-opérateurs conservation des plus courtes uniquement s il y en a plusieurs, communications parallèles possibles Ordonnancement DEA informatique Lille p. 43/104

Allocation spatiale : distribution partitionnement allocation des opérations aux opérateurs allocation des dépendances aux routes communication ajout de sommets dans graphe d algorithme avec association avec éléments du graphe d architecture communication communicateurs (read/write, send/receive, sync) allocation mémoires (données, programmes, communications) identité bus/mux/demux cas des conditionnelles Ordonnancement DEA informatique Lille p. 44/104

Exemple d algorithme distribué Graphe d architecture: Graphe d algorithme partitionné (avant communication) : Opr1 Opr2 Opr3 OPR2 C11 R1 a1 C12 S1 C21 R2 a2 C22 C23 S2 C31 R3 a3 C32 A d1 d2 B d3 C OPR1 d6 D d5 d4 OPR3 E Graphe d algorithme après distribution : i /a1 /c12 a /S1 a /R1 ad i /a1 ap B B a ap A /R1 /R1 /R1 /R1 a /R1 B /Opr1 ad A A /R1 /Opr1 a /R1 C /Opr1 a i ap /R1 /a1 C ad C /R1 /R1 S3 s r i /c21 /a2 a /R2 ap D a /s1 i s r /c12 /c21 s /c11 ad D /R2 /R2 D /opr2 a /s3 a /R2 i /a2 a /R2 s /c23 /a2 s /c23 a /s2 r r /c31 /c32 a /s2 r /c31 i i /a3 a /R3 i a : sommets allocation données ap A à ap E : sommets allocation programme ad A à ad E : sommets allocation données (variables internes) i : sommets identité s,r : sommets SENDs et RECEIVEs /a3 a /R3 a /R3 /a3 E /opr3 ap E /R3 ad E /R3 Ordonnancement DEA informatique Lille p. 45/104

Ordonnancement proposer un ordre total des opérations sur opérateurs communicateurs réalisation : ajout d arcs de précédence supplémentaires entre opérations affectées au même opérateur contraintes ordre des opérations dans une SAM ajout éventuel de sommets de synchronisation Ordonnancement DEA informatique Lille p. 46/104

Exemple d algorithme ordonnancé Graphe d architecture: Graphe d algorithme avant distribution : Opr1 Opr2 Opr3 OPR2 C11 Graphe d algorithme après distribution : ad A /R1 /Opr1 a /R1 /R1 /a1 /c12 /Opr1 a /S1 ad ap B i B a ap /R1 A /R1 /R1 /R1 a /R1 A R1 a1 C12 a S1 i C21 C B ap C ad C /R1 /R1 R2 s a2 C22 S3 C23 /a1 a i /R1 /a1 r S2 i /c21 /a2 C31 R3 a3 a /R2 a /s1 i s r /c12 /c21 s /c11 C32 ap D ad D /R2 /R2 D /opr2 a /s3 A d2 B d3 a /R2 i /a2 a /R2 s OPR1 /c23 C /a2 s /c23 a /s2 r r d1 /c31 /c32 a /s2 r /c31 d6 D a : sommets allocation données ap A à ap E : sommets allocation programme ad A à ad E : sommets allocation données (variables internes) i : sommets identité s,r : sommets SENDs et RECEIVEs : dépendances de données : précédences i /a3 i /a3 a /R3 i d5 a /R3 a /R3 /a3 d4 ap E /R3 ad E /R3 /opr3 E E OPR3 Ordonnancement DEA informatique Lille p. 47/104

Optimisation construction d un graphe d implantation à partir d un graphe d algorithme et d un graphe d architecture avec un objectif objectif respect de contraintes de temps latence = cadence minimisation latence heuristique Ordonnancement DEA informatique Lille p. 48/104

Heuristique de liste routage initialisation liste avec opérations sans prédécesseurs tant que liste non vide sélectionner opération dans la liste choix meilleur opérateur pour chaque opération restriction liste candidats pour éviter inactivité opérateurs choix candidat en fonction de son urgence mettre à jour liste suppression candidat choisi ajout de ses successeurs ordonnançables Ordonnancement DEA informatique Lille p. 49/104

Détails heuristique choix meilleur opérateur pour une opération ordonnancement sur tous les opérateurs possibles construction des communications associées calcul des fonctions de coût si égalité, choix en fonction de la mémoire libre restante restriction liste candidats suppression candidats dont date de début au plus tôt date de fin au plus tôt de celui qui a la plus petite date de début au plus tôt fonction de coût, urgence allongement chemin critique sinon opposé flexibilité d ordonnancement différence entre ordonnancement au plus tard et ordonnancement au plus tôt Ordonnancement DEA informatique Lille p. 50/104

Cas particuliers sommets constantes considérés ordonnancés par l heuristique à la fin, allocation sur chaque opérateur consommant leurs données duplication éventuelle ordonnancement avant toutes les autres opérations sommets retards dépendances inter-itérations implantés par une copie de données ordonnançables après prédécesseurs et successeurs Ordonnancement DEA informatique Lille p. 51/104

Bilan heuristique d ordonnancement/placement architecture hétérogène graphe de flot de données prend en compte communications et allocation mémoire suite de la chaîne de traitement de SynDEx compaction de la mémoire génération de code exécutable extensions possibles modèles applications et architectures SPMD (à la Array-OL) modèles matériels de FPGA ou d ASIC autres objectifs (consommation, surface, tolérance aux pannes) heuristique plus sophistiquée Ordonnancement DEA informatique Lille p. 52/104

Ordonnancement de nids de boucles Ordonnancement DEA informatique Lille p. 53/104

Nids de boucles DO i=1,n DO j=i,n+1 DO k=j-i,n S 1 S 2 ENDDO ENDDO DO r=1,n boucles non parfaitement imbriquées vecteur d itération valeur des indices englobants domaine d itération domaine des indices englobants opérations instances des instructions S 3 ENDDO ENDDO Ordonnancement DEA informatique Lille p. 54/104

Ordre séquentiel (1/2) ordre d exécution des opérations opérations d une même instruction S(I) < seq S(J) I < lex J < lex = ordre lexicographique ou {I 1 < J 1 } ou {I 1 = J 1 et I 2 < J 2 } ou... ou {I 1 = J 1 et... et I n 1 = J n 1 et I n < J n } entre instructions du même bloc ordre textuel < text Ordonnancement DEA informatique Lille p. 55/104

Ordre séquentiel (2/2) cas général : opérations S(I) et T (J) notations : S (resp. T ) englobé par n S (resp. n T ) boucles n S,T boucles englobantes communes Ĩ (resp. J) = I (resp. J) tronqué aux ns,t premières composantes 3 cas : si Ĩ < lex J alors S(I) < seq T (J) si J <lex Ĩ alors T (J) < seq S(I) si Ĩ = J alors S(I) < seq T (J) S < text J Ordonnancement DEA informatique Lille p. 56/104

Modèle de boucles instructions décrites par leur vecteur d itération leur position dans le texte domaines d itération = polyèdres un point entier dans ce polyèdre = un vecteur d itération possible boucles correspondant au modèle : bornes = fonctions affines des indices des boucles englobantes pas = 1 Ordonnancement DEA informatique Lille p. 57/104

Dépendances de données conditions de Bernstein il y a dépendance de données entre S(I) et T (J) ssi accès à la même variable et un accès en écriture dépendance orientée selon ordre séquentiel notation : S(I) T (J) trois types de dépendances de données, toujours entre deux accès consécutifs dans l ordre séquentiel dépendance de flot : écriture pour S(I), lecture pour T (J) anti-dépendance : lecture pour S(I), écriture pour T (J) dépendance de sortie : écriture pour S(I), écriture pour T (J) Ordonnancement DEA informatique Lille p. 58/104

Exemple DO i=1,n DO j=1,n a(i+j)=a(i+j-1)+1 ENDDO ENDDO espace d itération? dépendances de données dépendances de flot? anti-dépendances? dépendances de sortie? Ordonnancement DEA informatique Lille p. 59/104

Analyse de dépendances de nombreuses méthodes proposées en une vingtaine d années différentes abstractions distances de dépendance niveaux de dépendance vecteurs de direction polyèdres/cônes de dépendance graphes de flot de données formules de Presburger à chaque abstraction son ou ses analyses (tests) Ordonnancement DEA informatique Lille p. 60/104

Graphe de dépendance étendu (GDE) le graphe de dépendance général (voir cours précédent) sommets = toutes les opérations ne peut pas être généré à la compilation taille proportionnelle au nombre d opérations dépend des valeurs des paramètres de taille du problème pas forcément adapté au calcul de l ordonnancement dans certains cas représentable de façon compacte programmes à contrôle statique taille proportionnelle au nombre d instructions Ordonnancement DEA informatique Lille p. 61/104

Vecteur/ensemble de distance distance de dépendance correspondant à une dépendance S(I) p T (J) due à une paire p de références = J Ĩ( Nn S,T ) toujours lexicographiquement positive ensemble de distances (de dépendance) E p S,T = {( J Ĩ) (I, J) Nn S Nn T, S(I) p T (J)} Ordonnancement DEA informatique Lille p. 62/104

Graphe de dépendance réduit (GDR) représentation compacte mais approximative du GDE exacte dans le cas des programmes à contrôle statique sommets = instructions arête entre S et T si (I, J) N n S N n T S(I) T (J) une arête par paire p de références étiquetée par une sur-approximation D e des ensembles de distances si S(I) T (J) dans le GDE alors e = (S, T ) dans le RDG telle que J Ĩ D e graphe de dépendance apparent (GDA) dépendances apparaissant si on déroule le GDR GDA = GDE si analyse exacte Ordonnancement DEA informatique Lille p. 63/104

Approximations des ensembles de distance niveaux de dépendance utilisés dans l algorithme de détection du parallélisme d Allen et Kennedy vecteurs de direction utilisés dans l algorithme de Wolf et Lam polyèdres de dépendance utilisés dans l algorithme de partition en super-nœuds d Irigoin et Triolet Ordonnancement DEA informatique Lille p. 64/104

Niveaux de dépendance dépendance S(I) T (J) indépendante des boucles si Ĩ = J niveau dépendance portée par une boucle si Ĩ J niveau = rang de la première coordonnée non nulle de J Ĩ Ordonnancement DEA informatique Lille p. 65/104

Vecteurs de direction vecteur de dépendance uniforme quand la taille de l ensemble de distances associé est de taille indépendante de la taille de l espace d itération sinon, vecteur de direction vecteur de dimension n S,T à valeurs dans Z {, +, } (Z {+, }) chaque coordonnée = approximation de toutes les valeurs de la coordonnée correspondante des vecteurs de distance z+ si toujours z (+ = 1+) z si toujours z ( = 1 ) si valeurs dans Z Ordonnancement DEA informatique Lille p. 66/104

Exemple de GDR DO i=2,n S 1 : s(i)=0 DO j=1,i-1 S 2 : s(i)=s(i)+a(i,j)*b(j) ENDDO : b(i)=b(i)-s(i) S 3 ENDDO GDR par niveaux GDR par vecteurs de direction Ordonnancement DEA informatique Lille p. 67/104

Limites des approximations réduisent le nombre d ordonnancements possibles analyse exacte des dépendances pas toujours possible ou trop coûteuse développement d un algorithme de détection du parallélisme capacité limitée par cette approximation en général on ignore la forme de l espace d itération optimalité par rapport à l approximation algorithme de Feautrier programmes à contrôle statique travaille sur l analyse exacte des dépendances tient compte de la forme de l espace d itération limité par les transformations de boucles recherchées le plus puissant à l heure actuelle Ordonnancement DEA informatique Lille p. 68/104

Algorithme d Allen et Kennedy utilise les niveaux de dépendance but : pour chaque instruction détecter le nombre maximal de boucles englobantes parallèles transformations de code utilisées : distribution de boucles son inverse, la fusion de boucles optimal par rapport à l approximation choisie Ordonnancement DEA informatique Lille p. 69/104

Distribution de boucles toutes les instances de S peuvent être exécutées avant toutes les instances de T s il n y a pas de dépendance de T vers S cas simple : une boucle autour de S 1 et S 2 S 1 S 2, distribution de S 1 avant S 2 S 2 S 1, distribution de S 2 avant S 1 pas de dépendance, tous codes valides S 1 S 2 et S 2 S 1, pas de distribution valide inversion des instructions possible si toutes dépendances portées cas général : calculer les composantes fortement connexes du RDG les trier topologiquement distribuer les boucles autour Ordonnancement DEA informatique Lille p. 70/104

Allen-Kennedy(G,k) appeler Allen-Kennedy(GDR par niveaux, 1) enlever de G toutes les arêtes de niveau < k calculer les composantes fortement connexes de G pour chaque composante C, dans l ordre topologique faire si C est une seule instruction, S, sans arête alors générer boucles // autour de S sinon soit l = min e C l(e) (l(e) =niveau de e) générer boucles // du niveau k à l 1 générer boucle séquentielle au niveau l appeler Allen-Kennedy(C,l + 1) Ordonnancement DEA informatique Lille p. 71/104

Exemple Allen-Kennedy DO i=...,... DO j=...,... DO k=...,... S 1 S 2 ENDDO S 3 S 4 ENDDO ENDDO 2 3 3 S 1 S 2 2 1 1 2 S 4 S 3 2 1 Ordonnancement DEA informatique Lille p. 72/104

Transformations unimodulaires principalement pour les boucles parfaitement imbriquées changement de l ordre d itération considérer corps de boucle indivisible caractérisé par une matrice unimodulaire matrice entière à inverse entière parcours dans l ordre lexicographique de I = T.I formalisme englobe de nombreuses transformations permutation renversement torsion Ordonnancement DEA informatique Lille p. 73/104

Génération de code code de départ DO I D S(I) ENDDO après transformation par T DO I T (D) S(T 1.I ) ENDDO algorithmes de génération du code d itération basés sur de la programmation linéaire en nombres entiers ou l élimination de Fourier-Motzkin Ordonnancement DEA informatique Lille p. 74/104

Validité conserver l ordre des dépendances dépendances indépendantes des boucles inchangées dépendances portées par les boucles S i (I) S j (J) implique T.I < lex T.J soit T.(J I) > lex 0 Ordonnancement DEA informatique Lille p. 75/104

Méthode de l hyperplan idée : choisir T telle que pour chaque vecteur d de dépendance T.d > lex 0 et même première composante de T.d > 0 une boucle séquentielle englobant des boucles parallèles si s est la 1 re ligne de T, s.d 1 s est la normale à un hyperplan d équation s.x = 0 ordonnancement selon s.i = t théorème : un tel vecteur s existe toujours preuve constructive il faut encore construire la matrice unimodulaire utilisation de la forme normale de Hermite Ordonnancement DEA informatique Lille p. 76/104

Exemple hyperplan DO i=1,n DO j=1,n a(i+j)=a(i+j-1)+1 ENDDO ENDDO vecteurs de dépendance : {(1, 1); (1, 2); (1, 0); (0, 1)} vecteur d hyperplan : s = (3, 1) matrice unimodulaire : T = ( 3 1 1 0 ) DO j=4,4*n DO// i=max(1,ceil((j-n)/3)),min(n,floor((j-1)/3)) a(j-2*i)=a(j-2*i-1)+1 ENDDO// ENDDO Ordonnancement DEA informatique Lille p. 77/104

État de l art de nombreuses méthodes différentes modélisations optimalité de l algorithme relatif à la modélisation seulement une étape analyse de dépendances : plusieurs modèles découvrir le parallélisme : ordonnancement bien compris placement : pas mûr adaptation de la granularité : nombreux travaux applicabilité restreinte Ordonnancement DEA informatique Lille p. 78/104

Cas du traitement de signal systématique Ordonnancement DEA informatique Lille p. 79/104

Contexte langage Array-OL deux niveaux de description global : graphe de tâches local : itérations data-parallèles placement et ordonnancement sur SoC architecture hétérogène références thèse de Julien Soula Principe de Compilation d un Langage de Traitement de Signal http://www.lifl.fr/west/publi/soul01phd.pdf rapport LIFL02-11 de Philippe Dumont Étude des transformations d un code Array-OL dans Gaspard http://www.lifl.fr/west/publi/dumo02rr11.ps.gz Ordonnancement DEA informatique Lille p. 80/104

Problème étudié transformations de code Array-OL résultat = code Array-OL objectif : permettre l ordonnancement et le placement respecter les contraintes de temps Ordonnancement DEA informatique Lille p. 81/104

Architectures cibles systèmes sur silicium hétérogènes parallèles architectures à plusieurs niveaux cœurs de processeurs SIMD DSP reliés par moyens de communication architecture mémoire importante Ordonnancement DEA informatique Lille p. 82/104

Modèle d exécution modèle global : tâches indivisibles allocation complète des tableaux intermédiaires modèle local : exécution parallèle des itérations choix de l ordre d exécution quid des tableaux infinis? exécution pipelinée ou hiérarchisation Ordonnancement DEA informatique Lille p. 83/104

Transformations de code proposer une forme de l application permettant l ordonnancement selon le modèle d exécution choisi en restant dans le formalisme Array-OL pour permettre l enchaînement des transformations optimiser temps d exécution taille mémoire nécessaire Ordonnancement DEA informatique Lille p. 84/104

Transformations exemple Ordonnancement DEA informatique Lille p. 85/104

Transformations exemple peut être transformé en Ordonnancement DEA informatique Lille p. 85/104

Expression des dépendances Array-OL = langage de spécification n exprime que des dépendances de données un niveau = une approximation des dépendances niveau global = dépendances entre tableaux graphe de tâches niveau local = dépendances entre motifs modèle polyédrique + modulos et dimensions infinies Ordonnancement DEA informatique Lille p. 86/104

ODT Opérateurs de Distribution de Tableaux formalisme mathématique de représentation des dépendances relations entre points du tableau produit et points des tableaux arguments nécessaires au calcul lien direct avec Array-OL représentation canonique d une tâche prise en compte des pavages, ajustages, modulos, dimensions infinies, hiérarchies, etc. Ordonnancement DEA informatique Lille p. 87/104

ODT élémentaires gabarit définition des bornes des tableaux décalage origine projection et segmentation transformation linéaire modulo et éclatement modulo et son symétrique arrondi et fractionneur prise en compte des rationnels loi interne de composition naturelle Ordonnancement DEA informatique Lille p. 88/104

Exemple d ODT forme standard d une tâche Array-OL ( M o ) M (. S o ) S. P o F o 0. Q D o. P r 0 F r. ( M r ) D r G FFT de la VBL 512 M. 1 0 0 0 0 512 1 0. 512 512 256 G. 1 0 0 0 0 0 0 1 0 1 0 0. 512 256 Ordonnancement DEA informatique Lille p. 89/104

Transformations élémentaires transformations sur les expressions ODT partir de l expression d un enchaînement de tâches retrouver une expression de tâches Array-OL 2 transformations élémentaires fusion changement de pavage Ordonnancement DEA informatique Lille p. 90/104

Fusion base du processus de transformation remplacer une suite de 2 tâches par une hiérarchie tâches liées par un unique tableau pour diminuer la taille du tableau intermédiaire direction par la consommation quels motifs opérandes sont nécessaires pour un motif résultat? construit les plus petits macro-motifs possibles cas du corner-turn? Ordonnancement DEA informatique Lille p. 91/104

Évaluation de la fusion réduction des ressources temporaires peut nécessiter une réindexation du macro-motif (compaction, alignement) réduction de la latence résultats disponibles dès le calcul du premier macro-motif pipelinage possible réduction des communications favorise la localité des données évite des redistributions possibilité de calculs redondants cas d un motif opérande nécessaire pour plusieurs motifs résultats inconvénient principal Ordonnancement DEA informatique Lille p. 92/104

Changement de pavage objectif : diminuer les recalculs recouvrement entre deux motifs calculs multiples de la même tâche moyen : agrandissement du macro-motif agrandissement partiel ou selon une dimension (cas cyclique) Ordonnancement DEA informatique Lille p. 93/104

Adaptation de granularité autre cas d utilisation du changement de pavage pas forcément de recouvrement adaptation de la taille du macro-motif à la hiérarchie mémoire au nombre de processeurs élémentaires Ordonnancement DEA informatique Lille p. 94/104

Aplatissement de hiérarchie cas extrême du changement de pavage macro-motif = tableau hiérarchie inutile peut-être intercalé entre des fusions d une liste de tâche permet la création d un niveau de hiérarchie par fusions enchaînées Ordonnancement DEA informatique Lille p. 95/104

Création d un niveau utilisation typique : compilation de l infini entée : un graphe de tâches manipulant des tableaux infinis sortie : une seule tâche hiérarchique avec entrées/sorties infinies enchaînement de fusions de 2 tâches et d aplatissements de hiérarchie dans quel ordre? combinatoire énorme question ouverte Ordonnancement DEA informatique Lille p. 96/104

Enchaînement de transformations toutes ces transformations restent dans le domaine d Array-OL enchaînement possible pilotage par l utilisateur selon architecture cible gains en taille mémoire taux de recalcul modèle d exécution etc. Ordonnancement DEA informatique Lille p. 97/104

Exemple d application transformée la Veille à Bande Large chaîne de traitement sonar voir annexe A de la thèse de Julien Soula hiérarchisation de toute l application dimension temporelle infinie hiérarchisation des 4 premières tâches réduction des ressources intermédiaires changement de pavage réduction des recalculs de la formation de voies dus à l utilisation cyclique d une dimension de tableau Ordonnancement DEA informatique Lille p. 98/104

Niveau supérieur Ordonnancement DEA informatique Lille p. 99/104

Niveau flot temporel Ordonnancement DEA informatique Lille p. 100/104

Niveau tâches coûteuses Ordonnancement DEA informatique Lille p. 101/104

Travaux en cours implémentation des transformations mesure des transformations taille mémoire taux de recalcul heuristique d enchaînement objectif? métaheuristique? Ordonnancement DEA informatique Lille p. 102/104

Perspectives définition d un ordonnancement étiquetage d un niveau par un mode d exécution SPMD pipeline séquentiel pilotage des transformations définition du placement sur une architecture placement des calculs placement des données optimisation des communications placement et ordonnancement conjoints? Ordonnancement DEA informatique Lille p. 103/104

Alternative modélisation application, architecture, contraintes temporelles principalement programmation linéaire en nombres entiers nécessite des choix restrictifs architectures cibles (SPMD ou régulières) classe d ordonnancements recherchés (affines) difficulté modélisation (ou résolution) contraintes de temps résolution globale par PLC (Programmation Logique par Contraintes) travail effectué par THALES (TUS, LCR) CRI ENSMP Ordonnancement DEA informatique Lille p. 104/104