Académique Documents
Professionnel Documents
Culture Documents
Plan
Ordonnancement de tches a Placement sur SoC Ordonnancement de nids de boucles Cas du traitement de signal systmatique e
Ordonnancement de tches a
Le probl`me e
dans un contexte informatique ordonnancer des tches a sous-programmes processus ls dexcution e aecter ` chaque tche a a une date dexcution e (un processeur) avec contraintes de ressources ou non probl`me fondamental e gestion ecace de la concurrence sur les architectures modernes
Rfrences ee
Computer and Job-Shop Scheduling Theory par Coman 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 e Chrtienne, Coman, Lenstra et Liu chez John Willey & e Sons, 1995 Scheduling and Automatic Parallelization par Darte, Robert et Vivien chez Birkhuser, 2000 a
Rsolution dun syst`me triangulaire Ax = b e e A matrice de taille n n b et x vecteurs de taille n ordre squentiel (<s ) des tches : e a
T1,1 <s T1,2 <s ... <s T1,n <s T2,2 <s ... <s T2,n <s T3,3 <s ... <s Tn,n
quelles tches peuvent tre calcules indpendamment ? a e e e dpendances de donnes e e identier les variables communes Ti,i produit x(i) utilis par Ti,j , i < j n e Ti,j produit b(j) utilis par Ti+1,j e
Dpendances e
exprimer la concurrence en respectant la smantique du e programme deux tches sont dpendantes () si a e elles acc`dent ` une mme variable e a e un des acc`s est une criture e e conditions de Bernstein
T T Lectures(T ) Ecritures(T ) = ou Ecritures(T ) Lectures(T ) = ou Ecritures(T ) Ecritures(T ) =
Graphe de dpendances e
en cas de dpendance, respect de lordre squentiel e e construction dun ordre partiel ( ) (<s )+ clture transitive de lintersection de la relation de o dpendance et de lordre squentiel e e reprsentation par un DAG (graphe direct acyclique) e omission habituelle des arcs de transitivit e
sommets tiquets par temps de calcul de la tche e e a (w : V N) Sortie : aectation ( : V N) de dates de dbut dexcution e e pour chaque sommet respectant les contraintes de dpendances e
(u) + w(u) (v) pour tout (u, v) E
contraintes
(T ) + w(T ) (T )
objectif : minimier la latence temps total dexcution e L() = maxvV ((v) + w(v)) minvV (v)
ou (T ) + w(T ) (T )
Acclration ee
dnition : e Seq s(, p) = L(, p) proprits ee
s(, p) p Seq = Lopt (1) ... Lopt (p) Lopt (p + 1) ... Lopt ()
avec Seq =
vV
w(v)
PRED(v) = prdcesseurs immdiats de v e e e SUCC(v) = successeurs immdiats de v e v est une entre du DAG ssi PRED(v) = e v est une sortie du DAG ssi SUCC(v) = niveau haut de v, nh(v) = plus grand poids dun chemin dune entre ` v (sans compter v) e a niveau bas de v, nb(v) = plus grand poids dun chemin de v ` une a sortie (en incluant v)
Ordonnancement optimal
dnition : free(v) = nh(v), v V e
ordonnancement au plus tt o
thor`me : free est optimal e e corrolaire : on peut trouver un ordonnancement optimal en temps O(|V | + |E|)
pas de dlais de communication e nombre de processeurs illimit e
Exemple
DO i = 1, n T^che Ti,i : x(i) = b(i) / a(i,i) a DO j = i+1, n T^che Ti,j : b(j) = b(j) - a(j,i) * x(i) a ENDDO ENDDO
temps de calcul :
w(Ti,i ) = 2 w(Ti,j ) = 1, i < j n
L(free, ) = 3n 1
Avec p processeurs
mauvaise nouvelle NP-complet bonne nouvelle heuristiques garanties (au plus 2optimal) heuristiques de liste dicile
Heuristiques de liste
heuristiques gloutonnes dnition e
` chaque pas de temps, dmarrer le plus de tches possible a e a plusieurs choix possibles priorits e
ordonnancement de liste
aucun processeur nest laiss dlibrment inactif e e ee t, | FREE(, t)| = r 1 et q processeurs disponibles dmarrer min(r, q) tches e a
Heuristiques de liste
structures de donnes e implmentation e
graphe G tableau A : # de prdcesseurs de chaque tche e e a tas Q : tches prtes values par priorit a e e e tas P : processeurs valus par date de n dexcution e e
pseudo-code
Q=entres(G); P =vide; t=-1; e tant_que Q<>vide faire t=vnement_suivant(P ,t); Mise_`_jour(t,A,Q); e e a Allocation(t,P ,Q); t=t; fin_tant_que
Exemple
DO i = 1, n T^che Ti,i : x(i) = b(i) / a(i,i) a DO j = i+1, n T^che Ti,j : b(j) = b(j) - a(j,i) * x(i) a ENDDO ENDDO
temps de calcul :
w(Ti,i ) = 2 w(Ti,j ) = 1, i < j n
modlisation habituelle e
base sur lide de successeur favori e e lunique successeur de T vriant e (T ) < (T ) + w(T ) + c(T, T )
Avec p processeurs
bien videmment NP-complet e deux classes dheuristiques (la plupart non garanties) heuristiques de liste heuristiques de regroupement (clustering )
Heuristiques de liste
chemin critique na f priorit = niveau bas calcul en supposant e e communication systmatique e chemin critique amlior e e allouer une tche libre au processeur qui permet son a excution le plus tt e o en tenant compte des dcisions dj` prises e ea on peut allouer ` un processeur non libre a
Exemple
DO i = 1, n T^che Ti,i : x(i) = b(i) / a(i,i) a DO j = i+1, n T^che Ti,j : b(j) = b(j) - a(j,i) * x(i) a ENDDO ENDDO
temps de calcul : w(Ti,i ) = 2, w(Ti,j ) = 1, i < j n temps de communication uniformes = 4 n = 6, p = 2, L(chemin critique amlior, p) = 28 e e moins bon que tous sur le mme processeur ! (Seq = 26) e
Heuristiques de regroupement
deux tapes e
regrouper des tches a allouer ces groupes et dcider de lordonnancement nal e
regroupement
toujours itratif e faire diminuer le temps parall`le estim e e plusieurs stratgies e selon les plus longs chemins annuler les communications coteuses u une arte ` la fois sur le plus long chemin courant e a
heuristiques aussi pour la deuxi`me phase e peu darguments pour choisir :-(
Rcapitulation e
graphe de dpendance e ordonnancement sans communications sans limite de ressources algorithme polynomial optimal ` p processeurs a NP-complet, heuristiques garanties ` 2optimal a ordonnancement avec communications sans limite de ressources NP-complet, heuristique garantie ` 4 optimal a 3 ` p processeurs a NP-complet, heuristiques non garanties
Contexte
placement et ordonnancement
dapplications de contrle/commande ou de traitement de signal o contraintes temps rel e sur architectures htrog`nes, distribues, embarques ee e e e
rfrences ee
web AAA : http://www-rocq.inria.fr/syndex/ th`se de Thierry Grandpierre : e http://www.inria.fr/rrrt/tu-0666.html
Dmarche e
graphe de description de larchitecture graphe de description de lalgorithme
ot de donnes e
Description de larchitecture
objectif
permettre lordonnancement granularit adapte e e reprsenter d`lement le comportement de larchitecture e e prendre en compte les moyens de communications exprimer tout le paralllisme potentiel e modliser nement les arbitrages des ressources partages e e
graphe orient e
sommets = machines ` tats nis ae
Mod`le darchitecture e
cinq types de sommets
oprateurs e mmoires RAM (registres, RAM partages ou non) e e contenant donnes, programmes ou les deux e memoires SAM (FIFOs) bus (bus/mux/demux/arbitres) communicateurs (DMA)
Principes de modlisation e
minimiser nombre de sommets
encapsuler squence de bux/mux/demux/arbitres dans un seul e sommet encapsuler arbitre dans sommet RAM ou SAM
r`gles e
chaque oprateur connect ` une RAM programme et au moins e ea une RAM donnes e chaque RAM partage ou SAM connecte ` au moins deux e e a sommets oprateurs ou communicateurs e pas de connexion directe entre RAM/SAM insertion de bus/arbitre l` o` ncessaire a u e
Communicateurs
squenceur autonome doprations de transfert de donnes e e e
ncessite connexion ` une RAM contenant ces oprations e a e
DSP TMS320C40
a un communicateur et dautre part a lop rateur. Le Bus/Mux/Demux ` ` e permet de s lectionner laquel e des SAM est acc d e par lop rateur. Les deux ports de m moires externes permettent a lop rateur et au e e e e ` e communicateurs dacc der aux deux m moires externes, il y a donc arbitrage que nous mod lisons par deu e e e sommets Bus/Mux/Demux/Arbitre ( et ) entre les RAM externes, lop rateur et les communicateur e Les Bus/Mux/Demux a mod lise la capacit , pour chaque communicateur, dacc der soit a une SAM ` e e e ` soit a la m moire externe. ` e
b10
b1 b2 b3 b4 b5 b6
S1 S2 S3 S4 S5 S6
b12 R0,R1 : mmoires RAM internes partages Rloc,R glob: mmoires RAM externes partages C0 C6 : communicateurs S1 S6 : mmoires SAM b1 b8, b10 : bus/mux/demux b9, b11, b12 : bus/mux/demux /arbitre
R glob
Rloc
Rloc
S6
R glob
S6
Rloc
Rloc
C6 C5 C4 R1 C3 operateur R0 C2 C1 S1 S2 S2 S3 S3 S5 S4 S5 S4
C6 C5 C4 R1 C3 operateur C2 C1 R0
TMS320C40 - 4
TMS320C40 - 3
F IG . 1.39: Mod lisation dune architecture compos e de 4 TMS320C40 e e Ordonnancement DEA informatique Lille p. 36/10
Caractrisation e
tiquetage des sommets par indications de capacits e e sommet caractristiques e liste oprations et dures e e bande passante dacc`s aux mmoires e e communicateur liste doprations e bande passante dacc`s aux mmoires e e mmoire e capacit et bande passante max e RAM partage politique darbitrage e mesures ou estimations oprateur e
Modlisation de lalgorithme e
graphe de ot de donnes e
sommets = oprations atomiques e arcs = dpendances de donnes e e
Factorisation
regroupement doprations rptitives e e e
moins puissant quArray-OL pour le SPMD exprime aussi des dpendances inter-rptitions e e e
Autres caractristiques e
ot inni = factorisation implicite
E = capteurs correspond ` F a S = actionneur correspond ` J a $ = retard correspond ` I a
sommets constantes
param`tres calculs une seule fois e e
conditionnelles
arcs de conditionnement destination excute seulement si entre vraie et autres donnes e e e e prsentes e sommet merge pour fusionner rsultats doprations exclusives e e
Caractrisation e
pour chaque opration e
dure dexcution sur chaque oprateur qui peut lexcuter e e e e taille mmoire programme ncessaire e e taille mmoire donnes ncessaire e e e
Mod`le dimplantation e
reprsente une implantation particuli`re e e
dune application sur une architecture
deux types
iso-oprateur e une par RAM connecte ` loprateur e a e inter-oprateurs e conservation des plus courtes uniquement sil y en a plusieurs, communications parall`les possibles e
communication
ajout de sommets dans graphe dalgorithme avec association avec lments du graphe darchitecture ee communication communicateurs (read/write, send/receive, sync) allocation mmoires (donnes, programmes, communications) e e identit bus/mux/demux e cas des conditionnelles
/R2
D
/opr2
a /R2
i /a2
s
/c21
/c23
a /s2
r
i
a /R1 aP/R1 A aD A /R1
/a1
/c12 a /s1
s r
i /a3
a /R3 aP E /R3
aP B /R1 a /R1
aD B /R1
i
a /R1
i
/c21
/a1
/a2 a /R2
s
a /s2 /c23
r
/c31
/c12
B C
A
/Opr1 a /R1
/a3 a/R3
E
/opr3
aD E /R3
/c11 /a1
a /R3 /a3
/c32
Ordonnancement
proposer un ordre total des oprations sur e
oprateurs e communicateurs
ralisation : e
ajout darcs de prcdence supplmentaires e e e entre oprations e aectes au mme oprateur e e e
contraintes
ordre des oprations dans une SAM e ajout ventuel de sommets de synchronisation e
OPR2
D d4 E
OPR3
OPR1
S3 aP D aD D /R2 /R2
i /a2 a /R2
D
/opr2
a /R2
i /a2
s
/c21
/c23
a /s2
r
i
a /R1 aP/R1 A aD A /R1 /Opr1 a /R1
/a1
i /a3
a /R3 aP E /R3
i
r
aP B /R1 a /R1
/a2 a /R2
s
/a1
a /s2 /c23
r
/c31
/c12
/c21
B
/Opr1 a
s
/c31
/a3 a/R3
E
/opr3
aD E /R3
C
aP C /R1 aD C /R1 a /R1
/s3
r
/c11 /a1
a /R3 /a3
/c32
Optimisation
construction dun graphe dimplantation
` partir dun graphe dalgorithme a et dun graphe darchitecture avec un objectif
objectif
respect de contraintes de temps latence = cadence minimisation latence
heuristique
Heuristique de liste
routage initialisation liste avec oprations sans prdcesseurs e e e tant que liste non vide
slectionner opration dans la liste e e choix meilleur oprateur pour chaque opration e e restriction liste candidats pour viter inactivit oprateurs e e e choix candidat en fonction de son urgence mettre ` jour liste a suppression candidat choisi ajout de ses successeurs ordonnanables c
Dtails heuristique e
choix meilleur oprateur pour une opration e e
ordonnancement sur tous les oprateurs possibles e construction des communications associes e calcul des fonctions de cot u si galit, choix en fonction de la mmoire libre restante e e e
dirence entre ordonnancement au plus tard et ordonnancement au e plus tt o Ordonnancement DEA informatique Lille p. 50/10
Cas particuliers
sommets constantes
considrs ordonnancs par lheuristique ee e ` la n, allocation sur chaque oprateur consommant leurs donnes a e e duplication ventuelle e ordonnancement avant toutes les autres oprations e
sommets retards
dpendances inter-itrations e e implants par une copie de donnes e e ordonnanables apr`s prdcesseurs et successeurs c e e e
Bilan
heuristique dordonnancement/placement
architecture htrog`ne ee e graphe de ot de donnes e prend en compte communications et allocation mmoire e
extensions possibles
mod`les applications et architectures SPMD (` la Array-OL) e a mod`les matriels de FPGA ou dASIC e e autres objectifs (consommation, surface, tolrance aux pannes) e heuristique plus sophistique e
Nids de boucles
DO i=1,N DO j=i,N+1 DO k=j-i,N S1 S2 ENDDO ENDDO DO r=1,N S3 ENDDO ENDDO
domaine ditration e
domaine des indices englobants
oprations e
instances des instructions
3 cas :
si si si I <lex J alors S(I) <seq T (J) J <lex I alors T (J) <seq S(I) I = J alors S(I) <seq T (J) S <text J
Mod`le de boucles e
instructions dcrites par e leur vecteur ditration e leur position dans le texte domaines ditration = poly`dres e e un point entier dans ce poly`dre = un vecteur e ditration possible e boucles correspondant au mod`le : e bornes = fonctions anes des indices des boucles englobantes pas = 1
Dpendances de donnes e e
conditions de Bernstein
il y a dpendance de donnes entre S(I) et T (J) e e ssi acc`s ` la mme variable et un acc`s en criture e a e e e
trois types de dpendances de donnes, toujours entre e e deux acc`s conscutifs dans lordre squentiel e e e
dpendance de ot : criture pour S(I), lecture pour T (J) e e anti-dpendance : lecture pour S(I), criture pour T (J) e e dpendance de sortie : criture pour S(I), criture pour T (J) e e e
Exemple
DO i=1,N DO j=1,N a(i+j)=a(i+j-1)+1 ENDDO ENDDO
Analyse de dpendances e
de nombreuses mthodes proposes en une vingtaine e e dannes e direntes abstractions e
distances de dpendance e niveaux de dpendance e vecteurs de direction poly`dres/cnes de dpendance e o e graphes de ot de donnes e formules de Presburger
Vecteur/ensemble de distance
distance de dpendance e p correspondant ` une dpendance S(I) T (J) a e
due ` une paire p de rfrences a ee
= J I( NnS,T ) toujours lexicographiquement positive ensemble de distances (de dpendance) e p p I) | (I, J) NnS NnT , S(I) T (J)} ES,T = {(J
Niveaux de dpendance e
dpendance S(I) T (J) indpendante des boucles e e si I = J niveau dpendance porte par une boucle e e si I = J niveau = rang de la premi`re coordonne non nulle de e e J I
Vecteurs de direction
vecteur de dpendance uniforme e quand la taille de lensemble de distances associ est de e taille indpendante de la taille de lespace ditration e e sinon, vecteur de direction vecteur de dimension nS,T ` valeurs dans Z {, +, } (Z {+, }) a chaque coordonne = approximation de toutes les e valeurs de la coordonne correspondante des vecteurs e de distance z+ si toujours z (+ = 1+) z si toujours z ( = 1) si valeurs dans Z
Exemple de GDR
DO i=2,N S1 : s(i)=0 DO j=1,i-1 S2 : s(i)=s(i)+a(i,j)*b(j) ENDDO S3 : b(i)=b(i)-s(i) ENDDO
Distribution de boucles
toutes les instances de S peuvent tre excutes avant toutes les e e e instances de T sil ny a pas de dpendance de T vers S e cas simple : une boucle autour de S1 et S2 S1 S2 , distribution de S1 avant S2 S2 S1 , distribution de S2 avant S1 pas de dpendance, tous codes valides e S1 S2 et S2 S1 , pas de distribution valide
inversion des instructions possible si toutes dpendances portes e e
cas gnral : e e calculer les composantes fortement connexes du RDG les trier topologiquement distribuer les boucles autour
Allen-Kennedy(G,k)
appeler Allen-Kennedy(GDR par niveaux, 1)
enlever de G toutes les artes de niveau < k e calculer les composantes fortement connexes de G pour chaque composante C, dans lordre topologique faire si C est une seule instruction, S, sans arte e alors gnrer boucles // autour de S e e sinon soit l = mineC l(e) (l(e) =niveau de e) gnrer boucles // du niveau k ` l 1 e e a gnrer boucle squentielle au niveau l e e e appeler Allen-Kennedy(C,l + 1)
Exemple Allen-Kennedy
DO i=...,... DO j=...,... DO k=...,... S1 S2 ENDDO S3 S4 ENDDO ENDDO
2 S1 1 S4 2 3 2 2
3 S2 1 S3 1
Transformations unimodulaires
principalement pour les boucles parfaitement imbriques e changement de lordre ditration e considrer corps de boucle indivisible e caractris par une matrice unimodulaire e e matrice enti`re e ` inverse enti`re a e parcours dans lordre lexicographique de I = T.I formalisme englobe de nombreuses transformations permutation renversement torsion
Gnration de code e e
code de dpart e
DO I D S(I) ENDDO
Validit e
conserver lordre des dpendances e dpendances indpendantes des boucles e e inchanges e dpendances portes par les boucles e e Si (I) Sj (J) implique T.I <lex T.J soit T.(J I) >lex 0
Mthode de lhyperplan e
ide : choisir T telle que e pour chaque vecteur d de dpendance e T.d >lex 0 et mme premi`re composante de T.d > 0 e e
une boucle squentielle englobant des boucles parall`les e e
si s est la 1re ligne de T , s.d 1 s est la normale ` un hyperplan dquation s.x = 0 a e ordonnancement selon s.I = t thor`me : un tel vecteur s existe toujours e e preuve constructive il faut encore construire la matrice unimodulaire utilisation de la forme normale de Hermite
Exemple hyperplan
DO i=1,N DO j=1,N a(i+j)=a(i+j-1)+1 ENDDO ENDDO
vecteurs de dpendance : {(1, 1); (1, 2); (1, 0); (0, 1)} e vecteur dhyperplan : 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
Etat de lart
de nombreuses mthodes e direntes modlisations e e optimalit de lalgorithme relatif ` la modlisation e a e seulement une tape e analyse de dpendances : plusieurs mod`les e e dcouvrir le paralllisme : ordonnancement bien compris e e placement : pas mr u adaptation de la granularit : nombreux travaux e applicabilit restreinte e
Contexte
langage Array-OL
deux niveaux de description global : graphe de tches a local : itrations data-parall`les e e
rfrences ee
th`se de Julien Soula e Principe de Compilation dun Langage de Traitement de Signal http://www.lifl.fr/west/publi/Soul01phd.pdf rapport LIFL02-11 de Philippe Dumont Etude des transformations dun code Array-OL dans Gaspard http://www.lifl.fr/west/publi/Dumo02rr11.ps.gz informatique Lille p. 80/10 Ordonnancement DEA
Probl`me tudi e e e
transformations de code Array-OL
rsultat = code Array-OL e
objectif :
permettre lordonnancement et le placement
Architectures cibles
syst`mes sur silicium e
htrog`nes ee e parall`les e
Mod`le dexcution e e
mod`le global : e
tches indivisibles a allocation compl`te des tableaux intermdiaires e e
mod`le local : e
excution parall`le des itrations e e e choix de lordre dexcution e
Transformations de code
proposer une forme de lapplication
permettant lordonnancement selon le mod`le dexcution choisi e e en restant dans le formalisme Array-OL pour permettre lencha nement des transformations
optimiser
temps dexcution e taille mmoire ncessaire e e
Transformations exemple
Transformations exemple
ODT
Oprateurs de Distribution de Tableaux e formalisme mathmatique de reprsentation des e e dpendances e
relations entre points du tableau produit et points des tableaux arguments ncessaires au calcul e
ODT lmentaires ee
gabarit
dnition des bornes des tableaux e
dcalage e
origine
projection et segmentation
transformation linaire e
modulo et clatement e
modulo et son symtrique e
arrondi et fractionneur
prise en compte des rationnels
Exemple dODT
forme standard dune tche Array-OL a
. . P o Fo 0 . Do . P r 0 F r . Dr
G
Mo
So
Mr
FFT de la VBL
512 1 0 0 0 512 1 0 0 0 . . . 0 0 0 1 . 256 0 512 1 0 512 M 0 1 0 0 256
G
512
Transformations lmentaires ee
transformations sur les expressions ODT
partir de lexpression dun encha nement de tches a retrouver une expression de tches Array-OL a
2 transformations lmentaires ee
fusion changement de pavage
Fusion
base du processus de transformation remplacer une suite de 2 tches par une hirarchie a e
tches lies par un unique tableau a e pour diminuer la taille du tableau intermdiaire e
Evaluation de la fusion
rduction des ressources temporaires e
peut ncessiter une rindexation du macro-motif (compaction, e e alignement)
rduction de la latence e
rsultats disponibles d`s le calcul du premier macro-motif e e pipelinage possible
Changement de pavage
objectif : diminuer les recalculs
recouvrement entre deux motifs calculs multiples de la mme tche e a
Adaptation de granularit e
autre cas dutilisation du changement de pavage
pas forcment de recouvrement e
Aplatissement de hirarchie e
cas extrme du changement de pavage e
macro-motif = tableau hirarchie inutile e
changement de pavage
rduction des recalculs de la formation de voies e dus ` lutilisation cyclique dune dimension de tableau a
Niveau suprieur e
Niveau ot temporel
Travaux en cours
implmentation des transformations e mesure des transformations
taille mmoire e taux de recalcul
Perspectives
dnition dun ordonnancement e
tiquetage dun niveau par un mode dexcution e e SPMD pipeline squentiel e pilotage des transformations
Alternative
modlisation application, architecture, contraintes e temporelles
principalement programmation linaire en nombres entiers e ncessite des choix restrictifs e architectures cibles (SPMD ou rguli`res) e e classe dordonnancements recherchs (anes) e dicult modlisation (ou rsolution) contraintes de temps e e e
rsolution globale par PLC (Programmation Logique par e Contraintes) travail eectu par e
THALES (TUS, LCR) CRI ENSMP