Vous êtes sur la page 1sur 105

Techniques dordonnancement pour les SoC

Pierre Boulet quipe WEST e


Pierre.Boulet@lifl.fr

Ordonnancement DEA informatique Lille p. 1/10

Plan
Ordonnancement de tches a Placement sur SoC Ordonnancement de nids de boucles Cas du traitement de signal systmatique e

Ordonnancement DEA informatique Lille p. 2/10

Ordonnancement de tches a

Ordonnancement DEA informatique Lille p. 3/10

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

Ordonnancement DEA informatique Lille p. 4/10

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

Ordonnancement DEA informatique Lille p. 5/10

Exemple : programme squentiel e


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

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

Ordonnancement DEA informatique Lille p. 6/10

Exemple : graphe de tches a


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

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

Ordonnancement DEA informatique Lille p. 7/10

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 ) =

Ordonnancement DEA informatique Lille p. 8/10

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

Ordonnancement DEA informatique Lille p. 9/10

Ord. sans communications


Entre : e graphe de tches G = (V, E, w) a dnition du probl`me e e

nombre de sommets (|V |) ni artes (E) = contraintes de prcdence e e 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

Ordonnancement DEA informatique Lille p. 10/10

Ord. sans communications


nombre de processeurs limit ou non e un processeur nexcute quune tche ` la fois e a a
alloc(T ) = alloc(T )

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 )

Ordonnancement DEA informatique Lille p. 11/10

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)

Ordonnancement DEA informatique Lille p. 12/10

Sans limite de ressources


nombre de processeurs illimit e dnitions e facile

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 DEA informatique Lille p. 13/10

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

remarque : free nest pas le seul ordonnancement optimal


ordonnancement au plus tard

Ordonnancement DEA informatique Lille p. 14/10

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

Ordonnancement DEA informatique Lille p. 15/10

Avec p processeurs
mauvaise nouvelle NP-complet bonne nouvelle heuristiques garanties (au plus 2optimal) heuristiques de liste dicile

Ordonnancement DEA informatique Lille p. 16/10

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

tche libre ` linstant t a a


v FREE(, t) (v) t et u PRED(v), (u) + w(u) t

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

Ordonnancement DEA informatique Lille p. 17/10

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

complexit = O(|V | log |V | + |E|) e

Ordonnancement DEA informatique Lille p. 18/10

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

priorit = niveau bas e n = 6, p = 2, L(chemin critique , p) = 17

Ordonnancement DEA informatique Lille p. 19/10

Ord. avec communications


complique normment les choses e e
probl`me NP-complet mme sans contrainte de ressources e e

modlisation habituelle e

O si alloc(T ) = alloc(T ) comm(T, T ) = c(T, T ) sinon

cot de communication indpendant des processeurs u e de plus en plus raliste e

contraintes sur lordonnancement


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

Sans limite de ressources


heuristique de Hanen et Munier garantie ` au plus 4 de loptimal a 3 programmation linaire e
relaxation en rationnels (polynomial) dun programme en entiers (NP-dicile)

base sur lide de successeur favori e e lunique successeur de T vriant e (T ) < (T ) + w(T ) + c(T, T )

Ordonnancement DEA informatique Lille p. 21/10

Avec p processeurs
bien videmment NP-complet e deux classes dheuristiques (la plupart non garanties) heuristiques de liste heuristiques de regroupement (clustering )

Ordonnancement DEA informatique Lille p. 22/10

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

Ordonnancement DEA informatique Lille p. 23/10

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

Ordonnancement DEA informatique Lille p. 24/10

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 :-(

Ordonnancement DEA informatique Lille p. 25/10

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

Ordonnancement DEA informatique Lille p. 26/10

Placement sur SoC

Ordonnancement DEA informatique Lille p. 27/10

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

mthodologie Adquation Algorithme Architecture (AAA) e e


dveloppe ` lINRIA Rocquencourt, projet Sosso, puis action Ostre e e a implmente dans le logiciel SynDEx 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

Ordonnancement DEA informatique Lille p. 28/10

Dmarche e
graphe de description de larchitecture graphe de description de lalgorithme
ot de donnes e

placement et ordonnancement automatique


heuristique de liste ordonnancement statique, non premptif e placement des calculs placement des donnes e placement des communications objectif = minimiser la latence

gnration dun excutif e e e

Ordonnancement DEA informatique Lille p. 29/10

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

Ordonnancement DEA informatique Lille p. 30/10

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)

liens reprsentent transferts possibles de donnes e e


orients e

Ordonnancement DEA informatique Lille p. 31/10

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

Ordonnancement DEA informatique Lille p. 32/10

Communicateurs
squenceur autonome doprations de transfert de donnes e e e
ncessite connexion ` une RAM contenant ces oprations e a e

modlise un canal de DMA e


+ sa programmation par le processeur pas dquivalent matriel direct e e

permet ordonnancement communications en concurrence avec calculs

Ordonnancement DEA informatique Lille p. 33/10

Exemples simples darchitectures


architectures monoprocesseur gnrales e e
Von Neumann Harvard DSP pouvant accder simultanment ` deux oprandes et une e e a e opration e

architectures multiprocesseurs rguli`res e e


SIMD, MIMD ` mmoire partage/distribue a e e e

Ordonnancement DEA informatique Lille p. 34/10

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

C1 b7 operateur b8 R1 C4 C5 C6 b11 Rloc R0 b9 C2 C3

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

Ordonnancement DEA informatique Lille p. 35/10

1.3. EXEMPLES DE MODELISATIONS DE MACHINES


TMS320C40 - 1

Architecture quadri TMS320C40


TMS320C40 - 2
C1 R0 operateur R1 C4 C5 C6 S4 S5 S4 S5 C4 C5 C6 C2 C3 S2 S3 S1 S2 S3 C1 C2 C3 R1 R0 operateur

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

Ordonnancement DEA informatique Lille p. 37/10

Modlisation de lalgorithme e
graphe de ot de donnes e
sommets = oprations atomiques e arcs = dpendances de donnes e e

rptition innie implicite (ot) e e


sommets retards pour dpendances inter-rptitions e e e

graphe acyclique sauf prsence de retards e

Ordonnancement DEA informatique Lille p. 38/10

Factorisation
regroupement doprations rptitives e e e
moins puissant quArray-OL pour le SPMD exprime aussi des dpendances inter-rptitions e e e

utilise des sommets particuliers


D (Diusion) : diusion ` toutes les rptitions a e e F (Fork) : dcoupage e J (Join) : regroupement I (Iterate) : dpendance inter-rptition e e e ncessite une valeur initiale e

exemple : produit matrice-vecteur

Ordonnancement DEA informatique Lille p. 39/10

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

Ordonnancement DEA informatique Lille p. 40/10

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

pour chaque dpendance e


type de donnes e taille

Ordonnancement DEA informatique Lille p. 41/10

Mod`le dimplantation e
reprsente une implantation particuli`re e e
dune application sur une architecture

rsultat de lheuristique de placement e construit par


ranements successifs tiquetage e du graphe dalgorithme

Ordonnancement DEA informatique Lille p. 42/10

Etape prliminaire : routage e


construction des chemins de communication entre les oprateurs e
suite de sommets bus, RAM, SAM et communicateurs

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

Ordonnancement DEA informatique Lille p. 43/10

Allocation spatiale : distribution


partitionnement
allocation des oprations aux oprateurs e e allocation des dpendances aux routes 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

Ordonnancement DEA informatique Lille p. 44/10

Exemple dalgorithme distribu e


Graphe darchitecture: Graphe dalgorithme partitionn (avant communication) :
Opr2 Opr3 Opr1 OPR2 d1 R1 a1 C11 C12 S1 C21 R2 a2 C22 C23 S2 R3 A a3 C31 C32 OPR1 S3 aP D aD D /R2 a : sommets allocation donnes aP aP: sommets allocation programme E A aD aD sommets allocation donnes (variables internes) E : A i : sommets identit s,r : sommets SENDs et RECEIVEs /R2 d2 B d3 C d6 OPR3 d5 D d4 E

Graphe dalgorithme aprs distribution :


i /a2
a /S1
s r

/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

/c31 /Opr1 a /s3


r

A
/Opr1 a /R1

/a3 a/R3

E
/opr3

aD E /R3

/Opr1 aP C /R1 aD C /R1 a /R1

/c11 /a1

a /R3 /a3

/c32

Ordonnancement DEA informatique Lille p. 45/10

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

Ordonnancement DEA informatique Lille p. 46/10

Exemple dalgorithme ordonnanc e


Graphe darchitecture: Graphe dalgorithme avant distribution :
Opr2 Opr3 d1 R1 a1 C11 C12 S1 C21 R2 a2 C22 C23 S2 R3 A a3 C31 C32 d2 B d3 C d6 a : sommets allocation donnes aP aP: sommets allocation programme E A aD aD sommets allocation donnes (variables internes) E : A i : sommets identit s,r : sommets SENDs et RECEIVEs : dpendances de donnes : prcdences d5 Opr1

OPR2
D d4 E

OPR3

OPR1

S3 aP D aD D /R2 /R2

Graphe dalgorithme aprs distribution :


a /S1
s r

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

/c12 a /s1 aD B a /R1 /R1

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

Ordonnancement DEA informatique Lille p. 47/10

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

Ordonnancement DEA informatique Lille p. 48/10

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

Ordonnancement DEA informatique Lille p. 49/10

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

restriction liste candidats


suppression candidats dont date de dbut au plus tt date de n e o au plus tt de celui qui a la plus petite date de dbut au plus tt o e o

fonction de cot, urgence u


allongement chemin critique sinon oppos exibilit dordonnancement 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

Ordonnancement DEA informatique Lille p. 51/10

Bilan
heuristique dordonnancement/placement
architecture htrog`ne ee e graphe de ot de donnes e prend en compte communications et allocation mmoire e

suite de la cha de traitement de SynDEx ne


compaction de la mmoire e gnration de code excutable e e 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

Ordonnancement DEA informatique Lille p. 52/10

Ordonnancement de nids de boucles

Ordonnancement DEA informatique Lille p. 53/10

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

boucles non parfaitement imbriques e vecteur ditration e


valeur des indices englobants

domaine ditration e
domaine des indices englobants

oprations e
instances des instructions

Ordonnancement DEA informatique Lille p. 54/10

Ordre squentiel (1/2) e


ordre dexcution des oprations e e oprations dune mme instruction e e S(I) <seq S(J) I <lex J <lex = ordre lexicographique
ou ou ou ou {I1 < J1 } {I1 = J1 et I2 < J2 } ... {I1 = J1 et ... et In1 = Jn1 et In < Jn }

entre instructions du mme bloc e ordre textuel <text

Ordonnancement DEA informatique Lille p. 55/10

Ordre squentiel (2/2) e


cas gnral : oprations S(I) et T (J) e e e notations :
S (resp. T ) englob par nS (resp. nT ) boucles e nS,T boucles englobantes communes I (resp. J) = I (resp. J) tronqu aux nS,T premi`res composantes e e

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

Ordonnancement DEA informatique Lille p. 56/10

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

Ordonnancement DEA informatique Lille p. 57/10

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

dpendance oriente selon ordre squentiel e e e


notation : S(I) T (J)

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

Ordonnancement DEA informatique Lille p. 58/10

Exemple
DO i=1,N DO j=1,N a(i+j)=a(i+j-1)+1 ENDDO ENDDO

espace ditration ? e dpendances de donnes e e dpendances de ot ? e anti-dpendances ? e dpendances de sortie ? e

Ordonnancement DEA informatique Lille p. 59/10

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

` chaque abstraction son ou ses analyses (tests) a

Ordonnancement DEA informatique Lille p. 60/10

Graphe de dpendance tendu (GDE) e e


le graphe de dpendance gnral (voir cours prcdent) e e e e e sommets = toutes les oprations e ne peut pas tre gnr ` la compilation e e eea taille proportionnelle au nombre doprations e dpend des valeurs des param`tres de taille du probl`me e e e pas forcment adapt au calcul de lordonnancement e e dans certains cas reprsentable de faon compacte e c programmes ` contrle statique a o taille proportionnelle au nombre dinstructions

Ordonnancement DEA informatique Lille p. 61/10

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

Ordonnancement DEA informatique Lille p. 62/10

Graphe de dpendance rduit (GDR) e e


reprsentation compacte mais approximative du GDE e
exacte dans le cas des programmes ` contrle statique a o

sommets = instructions arte entre S et T e


si (I, J) NnS NnT | S(I) T (J) une arte par paire p de rfrences e ee tiquete par une sur-approximation De des ensembles de distances e e si S(I) T (J) dans le GDE alors e = (S, T ) dans le RDG telle que J I De

graphe de dpendance apparent (GDA) e


dpendances apparaissant si on droule le GDR e e GDA = GDE si analyse exacte

Ordonnancement DEA informatique Lille p. 63/10

Approximations des ensembles de distance


niveaux de dpendance e utiliss dans lalgorithme de dtection du paralllisme e e e dAllen et Kennedy vecteurs de direction utiliss dans lalgorithme de Wolf et Lam e poly`dres de dpendance e e utiliss dans lalgorithme de partition en super-nuds e dIrigoin et Triolet

Ordonnancement DEA informatique Lille p. 64/10

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

Ordonnancement DEA informatique Lille p. 65/10

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

Ordonnancement DEA informatique Lille p. 66/10

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

GDR par niveaux GDR par vecteurs de direction

Ordonnancement DEA informatique Lille p. 67/10

Limites des approximations


rduisent le nombre dordonnancements possibles e analyse exacte des dpendances pas toujours possible ou trop coteuse e u dveloppement dun algorithme de dtection du paralllisme e e e capacit limite par cette approximation e e en gnral on ignore la forme de lespace ditration e e e optimalit par rapport ` lapproximation e a algorithme de Feautrier programmes ` contrle statique a o travaille sur lanalyse exacte des dpendances e tient compte de la forme de lespace ditration e limit par les transformations de boucles recherches e e le plus puissant ` lheure actuelle a

Ordonnancement DEA informatique Lille p. 68/10

Algorithme dAllen et Kennedy


utilise les niveaux de dpendance e but : pour chaque instruction dtecter le nombre maximal de boucles englobantes e parall`les e transformations de code utilises : e distribution de boucles son inverse, la fusion de boucles optimal par rapport ` lapproximation choisie a

Ordonnancement DEA informatique Lille p. 69/10

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

Ordonnancement DEA informatique Lille p. 70/10

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)

Ordonnancement DEA informatique Lille p. 71/10

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

Ordonnancement DEA informatique Lille p. 72/10

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

Ordonnancement DEA informatique Lille p. 73/10

Gnration de code e e
code de dpart e
DO I D S(I) ENDDO

apr`s transformation par T e


DO I T (D) S(T 1 .I ) ENDDO

algorithmes de gnration du code ditration e e e


bass sur de la programmation linaire en nombres entiers e e ou llimination de Fourier-Motzkin e

Ordonnancement DEA informatique Lille p. 74/10

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

Ordonnancement DEA informatique Lille p. 75/10

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

Ordonnancement DEA informatique Lille p. 76/10

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

Ordonnancement DEA informatique Lille p. 77/10

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

Ordonnancement DEA informatique Lille p. 78/10

Cas du traitement de signal systmatique e

Ordonnancement DEA informatique Lille p. 79/10

Contexte
langage Array-OL
deux niveaux de description global : graphe de tches a local : itrations data-parall`les e e

placement et ordonnancement sur SoC


architecture htrog`ne ee 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

respecter les contraintes de temps

Ordonnancement DEA informatique Lille p. 81/10

Architectures cibles
syst`mes sur silicium e
htrog`nes ee e parall`les e

architectures ` plusieurs niveaux a


curs de processeurs SIMD DSP relis par moyens de communication e

architecture mmoire importante e

Ordonnancement DEA informatique Lille p. 82/10

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

quid des tableaux innis ?


excution pipeline e e ou hirarchisation e

Ordonnancement DEA informatique Lille p. 83/10

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

Ordonnancement DEA informatique Lille p. 84/10

Transformations exemple

Ordonnancement DEA informatique Lille p. 85/10

Transformations exemple

peut tre transform en e e

Ordonnancement DEA informatique Lille p. 85/10

Expression des dpendances e


Array-OL = langage de spcication e
nexprime que des dpendances de donnes e e

un niveau = une approximation des dpendances e


niveau global = dpendances entre tableaux e graphe de tches a niveau local = dpendances entre motifs e mod`le polydrique e e + modulos et dimensions innies

Ordonnancement DEA informatique Lille p. 86/10

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

lien direct avec Array-OL


reprsentation canonique dune tche e a prise en compte des pavages, ajustages, modulos, dimensions innies, hirarchies, etc. e

Ordonnancement DEA informatique Lille p. 87/10

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

loi interne de composition naturelle

Ordonnancement DEA informatique Lille p. 88/10

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

Ordonnancement DEA informatique Lille p. 89/10

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

Ordonnancement DEA informatique Lille p. 90/10

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

direction par la consommation


quels motifs oprandes sont ncessaires pour un motif rsultat ? e e e

construit les plus petits macro-motifs possibles


cas du corner-turn ?

Ordonnancement DEA informatique Lille p. 91/10

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

rduction des communications e


favorise la localit des donnes e e vite des redistributions e

possibilit de calculs redondants e


cas dun motif oprande ncessaire pour plusieurs motifs rsultats e e e inconvnient principal e

Ordonnancement DEA informatique Lille p. 92/10

Changement de pavage
objectif : diminuer les recalculs
recouvrement entre deux motifs calculs multiples de la mme tche e a

moyen : agrandissement du macro-motif


agrandissement partiel ou selon une dimension (cas cyclique)

Ordonnancement DEA informatique Lille p. 93/10

Adaptation de granularit e
autre cas dutilisation du changement de pavage
pas forcment de recouvrement e

adaptation de la taille du macro-motif


` la hirarchie mmoire a e e au nombre de processeurs lmentaires ee

Ordonnancement DEA informatique Lille p. 94/10

Aplatissement de hirarchie e
cas extrme du changement de pavage e
macro-motif = tableau hirarchie inutile e

peut-tre intercal entre des fusions dune liste de tche e e a


permet la cration dun niveau de hirarchie par fusions encha ees e e n

Ordonnancement DEA informatique Lille p. 95/10

Cration dun niveau e


utilisation typique : compilation de linni
ente : un graphe de tches manipulant des tableaux innis e a sortie : une seule tche hirarchique avec entres/sorties innies a e e

encha nement de fusions de 2 tches et daplatissements a de hirarchie e


dans quel ordre ? combinatoire norme e question ouverte

Ordonnancement DEA informatique Lille p. 96/10

Encha nement de transformations


toutes ces transformations restent dans le domaine dArray-OL
encha nement possible

pilotage par lutilisateur selon


architecture cible gains en taille mmoire e taux de recalcul mod`le dexcution e e etc.

Ordonnancement DEA informatique Lille p. 97/10

Exemple dapplication transforme e


la Veille ` Bande Large a
cha de traitement sonar ne voir annexe A de la th`se de Julien Soula e

hirarchisation de toute lapplication e


dimension temporelle innie

hirarchisation des 4 premi`res tches e e a


rduction des ressources intermdiaires e e

changement de pavage
rduction des recalculs de la formation de voies e dus ` lutilisation cyclique dune dimension de tableau a

Ordonnancement DEA informatique Lille p. 98/10

Niveau suprieur e

Ordonnancement DEA informatique Lille p. 99/10

Niveau ot temporel

Ordonnancement DEA informatique Lille p. 100/10

Niveau tches coteuses a u

Ordonnancement DEA informatique Lille p. 101/10

Travaux en cours
implmentation des transformations e mesure des transformations
taille mmoire e taux de recalcul

heuristique dencha nement


objectif ? mtaheuristique ? e

Ordonnancement DEA informatique Lille p. 102/10

Perspectives
dnition dun ordonnancement e
tiquetage dun niveau par un mode dexcution e e SPMD pipeline squentiel e pilotage des transformations

dnition du placement sur une architecture e


placement des calculs placement des donnes e optimisation des communications

placement et ordonnancement conjoints ?

Ordonnancement DEA informatique Lille p. 103/10

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

Ordonnancement DEA informatique Lille p. 104/10

Vous aimerez peut-être aussi