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